声明:部署DedeCMS,在网上搜了很多资料,包括这个论坛,几乎没有发现在linux下部署的现成资料可以参考。
遂,自己把整个部署过程中一些重要的点记录下来,一是算做自己的劳动成果,同时,期望对曾经和我一样迷茫,不知如何部署 的XDJM们一个参考。谢谢
DedeCMS部署--怎样去部署Apache+Mysql+PHP(LAMP)?
1. Linux OS:
Linux OS:Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
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.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
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步再检查一下。
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 \
--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.
<IfModule dir_module>
#DirectoryIndex index.html
DirectoryIndex index.php index.html index.shtml index.cgi
</IfModule>
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
5.遇到的问题以及解决办法
5.1 error: libpng.(a|so) not found.
现象描述:
编译apache的时候提示:
checking for floorf... yes
If configure fails try --with-jpeg-dir=<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/
5.2 error: Cannot find MySQL header files under yes
现象描述:
编译apache的时候提示:
checking for specified location of the MySQL UNIX soc