RedHat5/CentOS5源代码编译安装LAMP平台(Linux+Apache+MySQL+PHP)

RedHat5/CentOS5源代码编译安装Linux+Apache+MySQL+PHP的全过程,一直都想整理个教程出来的。刚好趁着现在当老师的机会整理出来一份文档,一来留给自己记录用,一来给学生讲解用。

知识普及:
1,LAMP一般指Linux Apache mysql php,其中p不光可以表示php,还可能是php/perl/python之一,这点儿需要注意。
2,本文中的php采用php-5.3.6版,最新版已经不再支持ZendOptimizer,而改用了ZendGuardLoader模块,本文也介绍了相应的安装方法。

一,安装并配置Apache
1,安装Apache

tar -zxvf httpd-2.2.9.tar.gz    #解压
cd httpd-2.2.9    #进入解压的目录
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make && make install    #编译与安装

可能出现的问题:
配置时出现configure failed for srclib/apr错误
解决方法:未安装gcc,请yum install gcc -y

2,配置Apache

cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd  #复制为系统服务
vim /etc/init.d/httpd    #编辑此服务,将前三行修改为
#!/bin/bash
# chkconfig: 35 85 15
#description:Apache httpd

service httpd start
chkconfig --add httpd
chkconfig --level 35 httpd on   #加入开机自启动

二,安装mysql
1,准备工作

useradd -M -s /sbin/nologin mysql    #创建运行用户,M表示不创建家目录

tar -zxvf mysql-5.1.55.tar.gz    #解包
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312 --with-unix-socket-path=/tmp/mysql.sock
make && make install    #编译,安装,需要10分钟

可能出现的错误:

(1),配置时出现configure: error: No curses/termcap library found
解决方法:yum install -y ncurses ncurses-devel

(2),编译时出现
../depcomp: line 571: exec: g++: not found
make[1]: *** [my_new.o] 错误 127
make[1]: Leaving directory `/root/mysql-5.1.55/mysys’
make: *** [all-recursive] 错误 1
解决办法:yum install -y gcc-c++

(3),如果configure时不加上–with-unix-socket-path=/tmp/mysql.sock项,会导致以下错误:
../include/my_global.h:1108: 错误:对 C++ 内建类型 ‘bool’ 的重声明
make[1]: *** [my_new.o] 错误 1
make[1]: Leaving directory `/root/mysql-5.1.55/mysys’
make: *** [all-recursive] 错误 1

2,配置Mysql

cp support-files/my-medium.cnf /etc/my.cnf    #复制主配置文件
/usr/local/mysql/bin/mysql_install_db --user=mysql    #初始化数据库

chown -R root:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/var

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
service mysqld start

ln -s /usr/local/mysql/bin/* /usr/local/bin/
ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
ln -s /usr/local/mysql/include/mysql/* /usr/include/

mysqladmin -uroot -p password 新密码    #修改MySQL的root密码

三,安装PHP
安装之前记得查询一下系统中是否已安装有PHP相关的软件包,如果有,得先卸载之。查询可以用 rpm -qa | grep php 命令,查到的每一个包都要卸载。

1,安装php扩展包
数据加密工具libmcrypt、mhash、mcrypt

tar zxf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/
./configure && make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/

tar zxf mhash-0.9.9.9.tar.gz && cd /usr/src/mhash-0.9.9.9/
./configure && make && make install
ln -s /usr/local/lib/libmhash* /usr/lib/

tar zxf mcrypt-2.6.8.tar.gz && cd /usr/src/mcrypt-2.6.8/
./configure && make && make install

可能出现的问题:

(1),安装mcryptJ时弹出如下错误:
*** Could not run libmcrypt test program, checking why…
……
configure: error: *** libmcrypt was not found
解决方法:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

(2)安装mcrypt时弹出如下错误:
rfc2440.c:23:18: 错误:zlib.h:没有那个文件或目录
……
make[2]: *** [rfc2440.o] 错误 1
make[2]: Leaving directory `/root/mcrypt-2.6.8/src’
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/mcrypt-2.6.8′
make: *** [all] 错误 2
解决方法:yum install -y zlib zlib-devel

2,安装php

tar -zxvf php-5.3.6.tar.gz && cd /root/php-5.3.6  #解包
./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql -with-config-file-path=/usr/local/php5 --enable-mbstring
make && make install

安装时可能出现的问题
(1),配置时出现configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法:yum install libxml2 libxml2-devel -y

3,配置php

cp php.ini-production /usr/local/php5/php.ini  #复制主配置文件

安装ZendGuardLoader优化模块(仅适用php5.3以上)

tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz  #解压
cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/  #进入解压以后的目录
cp ZendGuardLoader.so /usr/local/php5/lib/php/    #复制模块到php安装目录

vim /usr/local/php5/php.ini   #编辑php配置文件,查找extension=php段,在其后添加两段:
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

四,配置与测试

1,配置apache与php协同工作

vim /usr/local/apache2/conf/httpd.conf  #修改Apache主配置文件,添加如下几行
…………
LoadModule php5_module        modules/libphp5.so  #这一行默认应该存在
…………
AddType application/x-httpd-php .php     #添加这一行
DirectoryIndex index.html            #在这一行结尾添加一个index.php

2,测试配置
在网站目录下建立一个index.php,内容如下:
[code lang=”php”]


然后在浏览器访问,显示出PHP的组件信息,说明安装OK。

补充说明
网站根目录:/usr/local/apache2/htdocs/
PHP主配置文件:/usr/local/php5/php.ini
Apache主配置文件:/usr/local/apache2/conf/httpd.conf

发表评论

电子邮件地址不会被公开。