0

0

Apache+Mysql+PHP

php中文网

php中文网

发布时间:2016-06-23 14:37:28

|

1327人浏览过

|

来源于php中文网

原创

转载自:http://blog.csdn.net/buutterfly/article/details/5630203

DedeCMS部署--怎样去部署Apache+Mysql+PHP(LAMP)?

1. Linux OS:

Linux OS:Red Hat Enterprise Linux AS release 4 (Nahant Update 6)

 

立即学习PHP免费学习笔记(深入)”;

2.Deploy Apache 2.1  下载Apache

下载Apache2 source from http://httpd.apache.org/  ,直接下载在/root下,解压tar包php-5.2.13。

2.2  编译 apache

cd httpd-2.2.15,进行编译,生成Makefile

./configure --prefix=/usr/local/apache /  --指定apache安装目录

               --enable-so                    /

                 --enable-cgi                   /

                 --enable-info                 /

                 --enable-rewrite          /

                 --enable-speling           /

                 --enable-usertrack      /

                 --enable-deflate /

                 --enable-ssl                   /

--enable-mime-magic

2.3  make & make install

Make过程中可能会有一些问题,具体可以参考第5节。

Apache部署参考:http://dan.drydog.com/apache2php.html

3. Deploy Mysql 3.1下载mysql

下载mysql source from http://dev.mysql.com/ ,在Downloads页面选择 MySQL Community Server ,进入下载页面。选择 Red Hat Enterprise Linux。因为我的OS是REHL4.6 ,且为64位,则下载三个包:

MySQL-server-community-5.1.47-1.rhel4.x86_64.rpm MySQL-devel-community-5.1.47-1.rhel4.x86_64.rpm ?必须,否则apache编译的时候会出错MySQL-client-community-5.1.47-1.rhel4.x86_64.rpm

3.2 安装mysql server

rpm ?ivh MySQL-server-community-5.1.47-1.rhel4.x86_64.rpm

server安装完毕后,测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。

Mysql默认的端口是3306。命令如下: netstat ?nap |grep 3306

3.3 安装mysql client

rpm ?ivh MySQL-client-community-5.1.47-1.rhel4.x86_64.rpm

3.4 安装 mysql devel

rpm ?ivh MySQL-devel-community-5.1.47-1.rhel4.x86_64.rpm

3.5 登录Mysql

    [root@test1 local]# mysql

   Welcome to the MySQL monitor. Commands end with ; or /g.

   Your MySQL connection id is 1 to server version: 4.0.16-standard

   Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

   mysql>

   出现了“mysql>”提示符,恭喜你,安装成功!

   增加了密码后的登录格式如下:

   mysql -u root -p

   Enter password: (输入密码)

   其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

   注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

3.6 修改mysql 密码

 MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

   1、命令

   usr/bin/mysqladmin -u root password 'new-password'

   格式:mysqladmin -u用户名 -p旧密码 password 新密码

   2、例子

   例1:给root加个密码123456。

   键入以下命令 :

   [root@test1 local]# /usr/bin/mysqladmin -u root password 123456

  注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

   3、测试是否修改成功

   1)不用密码登录

   [root@test1 local]# mysql

   ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

   显示错误,说明密码已经修改。

   2)用修改后的密码登录

   [root@test1 local]# mysql -u root -p

   Enter password: (输入修改后的密码123456)

   Welcome to the MySQL monitor. Commands end with ; or /g.

   Your MySQL connection id is 4 to server version: 4.0.16-standard

   Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

   mysql>

   成功!

   这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

3.7 启动和停止

1、启动

   MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。

   [root@test1 init.d]# /etc/init.d/mysql start

   2、停止

   /usr/bin/mysqladmin -u root -p shutdown

   3、自动启动

   1)察看mysql是否在自动启动列表中

   [root@test1 local]# /sbin/chkconfig --list

   2)把MySQL添加到你系统的启动服务组里面去

   [root@test1 local]# /sbin/chkconfig ?- add mysql

   3)把MySQL从启动服务组里面删除。

   [root@test1 local]# /sbin/chkconfig ?-del mysql

Mysql部署 参考:http://www.linuxidc.com/Linux/2007-12/9962p3.htm

3.8 使用mysql

(对于我们LAMP环境部署来说,可选择性的使用本节)

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

   1、home目录下建立data目录

   cd /home

   mkdir data

   2、把MySQL服务进程停掉:

   mysqladmin -u root -p shutdown

   3、把/var/lib/mysql整个目录移到/home/data

   mv /var/lib/mysql /home/data/

   这样就把MySQL的数据文件移动到了/home/data/mysql下

   4、找到my.cnf配置文件

  如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

   5、编辑MySQL的配置文件/etc/my.cnf

  为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:

   vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)

   # The MySQL server

    [mysqld]

    port   = 3306

    #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)

    socket  = /home/data/mysql/mysql.sock   (加上此行)

   6、修改MySQL启动脚本/etc/rc.d/init.d/mysql

  最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。

   [root@test1 etc]# vi /etc/rc.d/init.d/mysql

   #datadir=/var/lib/mysql    (注释此行)

   datadir=/home/data/mysql   (加上此行)

   7、重新启动MySQL服务

   /etc/rc.d/init.d/mysql start

   或用reboot命令重启Linux

   如果工作正常移动就成功了,否则对照前面的7步再检查一下。

 

立即学习PHP免费学习笔记(深入)”;

4. Deploy PHP

PHP的部署是整个部署最困难的一个环节,这个环节也是让我耗时,在网络上查找答案最长的部分。

4.1 下载PHP

下载 PHP source from http://www.php.net/

注意:dedecms 5.6以上版本对php5.3支持有瑕疵!如果用php5.3版本,在安装cms安装成功后,系统后台页面会提示“针对于安装完成后出现安装完出现Deprecated: Function ereg_replace() is deprecated ....”。

解决有两种方法,见第5节。

4.2 编译PHP

cd php-5.2.13,进行编译,生成Makefile。注意:这个地方的配置项需要根据自己的需要选择。

./configure /

     --with-apxs2=/usr/local/apache/bin/apxs /

     --with-mysql /

     --prefix=/usr/local/apache/php /

     --with-config-file-path=/usr/local/apache/php /

     --enable-force-cgi-redirect /

点卡销卡源码
点卡销卡源码

点卡销卡源码是一个以php+MySQL进行开发的点卡回收平台源码。软件必须使用宝塔面板进行搭建,否则有可能会出现无法安装的问题。

下载

     --disable-cgi /

     --with-zlib /

     --with-gettext /

     --with-gdbm  /

  --with-gd

4.3 make & make install 4.4 cp -p .libs/libphp5.so /usr/local/apache/modules 4.5 cp php.ini

命令如下:  cp -p php.ini-recommended /usr/local/apache/php/php.ini

4.6 修改httpd.conf

修改 /usr/local/apache/conf/httpd.conf,加入以下内容:

1.

# Example:

# LoadModule foo_module modules/mod_foo.so

#

LoadModule php5_module        modules/libphp5.so

AddHandler php5-script php

2.

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

    #DirectoryIndex index.html

     DirectoryIndex index.php index.html index.shtml index.cgi

 

立即学习PHP免费学习笔记(深入)”;

3.

    # If the AddEncoding directives above are commented-out, then you

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

4.7 修改完成后重新启动apache

PHP安装参考:http://dan.drydog.com/apache2php.html

 

立即学习PHP免费学习笔记(深入)”;

5.遇到的问题以及解决办法 5.1 error: libpng.(a|so) not found.

现象描述:

编译apache的时候提示:

checking for floorf... yes

If configure fails try --with-jpeg-dir=

configure: error: libpng.(a|so) not found.

解决办法:

通过上面的搜索其实就知道一些原因了,configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib64中拷贝到/usr/lib/中去就可以了.

那么记得要在configure前执行如下的命令:

cp -frp /usr/lib64/libjpeg.* /usr/lib/

 

立即学习PHP免费学习笔记(深入)”;

5.2  error: Cannot find MySQL header files under yes

现象描述:

编译apache的时候提示:

checking for specified location of the MySQL UNIX socket... no

configure: error: Cannot find MySQL header files under yes.

Note that the MySQL client library is not bundled anymore!

解决办法:

这个是缺少了 mysql-devel 安装包,rpm ?ivh 安装devel包,前面提到过。

5.3 mysql-server,mysql-devel,mysql-client的异同

英文原版:

In most cases, you only need to install the MySQL-server and MySQL-client packages to get a functional MySQL installation. The other packages are not required for a standard installation. If you want to run a MySQL-Max server that has additional capabilities, you should also install the MySQL-Max RPM. However, you should do so only after installing the MySQL-server RPM.

 

立即学习PHP免费学习笔记(深入)”;

If you get a dependency failure when trying to install the MySQL 4.0 packages (for example, ``error: removing these packages would break dependencies: libmysqlclient.so.10 is needed by ...''), you should also install the package MySQL-shared-compat, which includes both the shared libraries for backward compatibility (libmysqlclient.so.12 for MySQL 4.0 and libmysqlclient.so.10 for MySQL 3.23).

 

立即学习PHP免费学习笔记(深入)”;

The following RPM packages are available:

MySQL-server-VERSION.i386.rpm The MySQL server. You will need this unless you only want to connect to a MySQL server running on another machine. Note: Server RPM files were called MySQL-VERSION.i386.rpm before MySQL 4.0.10. That is, they did not have -server in the name.

MySQL-Max-VERSION.i386.rpm The MySQL-Max server. This server has additional capabilities that the one provided in the MySQL-server RPM does not. You must install the MySQL-server RPM first, because the MySQL-Max RPM depends on it.

MySQL-client-VERSION.i386.rpm The standard MySQL client programs. You probably always want to install this package.

MySQL-bench-VERSION.i386.rpm Tests and benchmarks. Requires Perl and the DBD::mysql module.

MySQL-devel-VERSION.i386.rpm The libraries and include files that are needed if you want to compile other MySQL clients, such as the Perl modules.

MySQL-shared-VERSION.i386.rpm This package contains the shared libraries (libmysqlclient.so*) that certain languages and applications need to dynamically load and use MySQL.

MySQL-shared-compat-VERSION.i386.rpm This package includes the shared libraries for both MySQL 3.23 and MySQL 4.0. Install this package instead of MySQL-shared if you have applications installed that are dynamically linked against MySQL 3.23 but you want to upgrade to MySQL 4.0 without breaking the library dependencies. This package has been available since MySQL 4.0.13.

MySQL-embedded-VERSION.i386.rpm The embedded MySQL server library (from MySQL 4.0).

MySQL-VERSION.src.rpm This contains the source code for all of the previous packages. It can also be used to rebuild the RPMs on other architectures (for example, Alpha or SPARC).

 

立即学习PHP免费学习笔记(深入)”;

中文翻译:

MySQL-VERSION.i386.rpm MySQL服务器。除非你只是想要与运行在其他机器上MySQL服务器连接,否则你将需要它。

MySQL-client-VERSION.i386.rpm 标准MySQL客户程序。你可能总是需要安装这个包。

MySQL-bench-VERSION.i386.rpm 测试和基准程序。需要Perl和msql-mysql-modules RPM。

MySQL-devel-VERSION.i386.rpm 所需的库和包含文件。如果你想要编译其他MySQL客户程序, 例如Perl模块。

MySQL-VERSION.src.rpm 包含上述所有包的源代码。它也能被用来尝试为其他硬件平台构造RPM(例如,Alpha或SPARC)。

查看一个RPM包中的所有文件:

shell>; rpm - qpl  MySQL-VERSION.i386.rpm

实施一个标准的最小安装,运行这个命令:

shell>; rpm -i MySQL-VERSION.i386.rpm  MySQL-client-VERSION.i386.rpm

 

立即学习PHP免费学习笔记(深入)”;

5.4 error: Cannot find libmysqlclient under /usr

现象描述:

error: Cannot find libmysqlclient under /usr

解决办法:

其实,和5.1解决办法相同。把/usr/lib64/mysql copy to /usr/lib/。

 

立即学习PHP免费学习笔记(深入)”;

5.5 CMS目录权限问题

现象描述:

进入install页面后,提示有些目录没有读写权限,如下:

/usr/local/apache/htdocs/uploads

目录名           读取权限       写入权限

/      [√]读       [X] 写   ----指的是 /usr/local/apache/htdocs/uploads

/plus/*    [√]读       [X] 写

/dede/* [√]读       [X] 写

/data/*   [√]读       [√] 写

/a/*         [√]读       [√] 写

/install    [√]读       [√] 写

/special   [√]读       [√] 写

/uploads/*      [√]读       [√] 写

解决办法:

安装CMS时候,提示权限不够,需要修改uploads目录权限

 Chmod 777 uploads -R

5.6 Deprecated: Function ereg_replace() is deprecated

注意:dedecms 5.6以上版本对php5.3支持有瑕疵!如果用php5.3版本,在安装cms安装成功后,系统后台页面会提示“针对于安装完成后出现安装完出现Deprecated: Function ereg_replace() is deprecated ....”。

解决有两种方法,见第5节。

第一种:

dedecms由于技术人员的习惯问题可能针对php5.3甚至更高版本的php支持会有些错误,大家可以打开文件dede/config.php

找到define('DEDEADMIN', ereg_replace("[///]{1,}", '/', dirname(__FILE__) ) );

没有必要删除,只要在这句前面加入"//"将其隐掉就好了,然后在下面加一句

define('DEDEADMIN',strtr(dirname(__FILE__),'///','//'));

就可以了!上传覆盖,然后更新下在看看,应该解决问题!

第二种:

重新下载php5.2的包。其实这样使用也不麻烦,就是重新编译罢了,但是解决问题最直接的方法。为了防止后续再有什么问题,我就使用了php5.2重新编译了一遍。

 

立即学习PHP免费学习笔记(深入)”;

对以上操作正则表达式的解释如下:

在正则表达式中,反斜线通常与其它字符一起构成特殊的结构,譬如‘/d’用来匹配数字字符,‘/s’用来匹配空白字符,‘/1’用来反向引用第一个分组捕获的文本。

可是,如果我们在正则表达式中,仅仅需要表示“反斜线”字符本身,该如何做呢?

其实,正则表达式对这个问题的处理,与字符串的处理是一样的,也就是说,在正则表达式中,必须用转义序列‘//’来表示单个反斜线。

这个规定会带来一个有趣的问题:正则表达式中单独出现的反斜线字符,在正则表达式的层面,必须以转义序列‘//’来表示,然而,每个反斜线,在表示正则表达 式的字符串中,又必须以转义序列‘//’来表示。所以,在字符串中,必须写出四个反斜线‘////’,才能对应到正则表达式中单独出现的一个反斜线字符: 在字符串处理层面,它们会被识别为两个反斜线‘//’,在正则表达式的层面,它们会被识别为单个反斜线字符‘/’。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

928

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

307

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

183

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

29

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

103

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

54

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

764

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

92

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP+MySQL基础入门课程
PHP+MySQL基础入门课程

共113课时 | 8.5万人学习

PHP MySQL基础编程课
PHP MySQL基础编程课

共111课时 | 9.6万人学习

PHP编程(基础知识点汇总)
PHP编程(基础知识点汇总)

共85课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号