以下是本人以centos5.3下安装配置php5的整个过程的记录。整理好,以方便自己日后查阅,有需要者可参阅。
(须先安装好了gcc)
需要的软件列表:
ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
curl-7.19.5.tar.gz
freetype-2.3.9.tar.gz
gd-2.0.35.tar.gz
httpd-2.2.13.tar.gz
jpegsrc.v7.tar.gz
libmcrypt-2.5.8.tar.gz
libpng-1.2.40.tar.gz
libxml2-2.6.30.tar.gz
libxslt-1.1.22.tar.gz
mcrypt-2.6.8.tar.gz
mhash-0.9.9.9.tar.gz
mysql-5.1.30.tar.gz
php-5.3.0.tar.gz
phpMyAdmin-3.1.2-all-languages.tar.gz
zlib-1.2.3.tar.gz
把以上软件下载到 ~/software目录下。再创建解压目录~/software/unzip/,
在~/software目录下执行:
tar -zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz -C unzip/ &&
tar -zxvf curl-7.19.5.tar.gz -C unzip/ &&
tar -zxvf freetype-2.3.9.tar.gz -C unzip/ &&
tar -zxvf gd-2.0.35.tar.gz -C unzip/ &&
tar -zxvf httpd-2.2.13.tar.gz -C unzip/ &&
tar -zxvf jpegsrc.v7.tar.gz -C unzip/ &&
tar -zxvf libmcrypt-2.5.8.tar.gz -C unzip/ &&
tar -zxvf libpng-1.2.40.tar.gz -C unzip/ &&
tar -zxvf libxml2-2.6.30.tar.gz -C unzip/ &&
tar -zxvf libxslt-1.1.22.tar.gz -C unzip/ &&
tar -zxvf mcrypt-2.6.8.tar.gz -C unzip/ &&
tar -zxvf mhash-0.9.9.9.tar.gz -C unzip/ &&
tar -zxvf mysql-5.1.30.tar.gz -C unzip/ &&
tar -zxvf php-5.3.0.tar.gz -C unzip/ &&
tar -zxvf phpMyAdmin-3.1.2-all-languages.tar.gz -C unzip/ &&
tar -zxvf zlib-1.2.3.tar.gz -C unzip/
将所有软件解压到unzip/目录下。
进入unzip/目录,开始安装:
1.安装jpeg
cd jpeg-7/ &&
./configure --prefix=/usr/local/jpeg7 --enable-shared --enable-static &&
make && make install && cd ..
2.安装libpng
cd libpng-1.2.40/ &&
./configure --prefix=/usr/local/libpng &&
make && make install && cd ..
3.安装freetype
cd freetype-2.3.9/ &&
./configure --prefix=/usr/local/freetype &&
make && make install && cd ..
4.安装zlib
cd zlib-1.2.3/ &&
./configure --prefix=/usr/local/zlib &&
make && make install && cd ..
5.安装gd
5.1 安装gd必须先检查一下 gd-2.0.35/gd_png.c 文件,对png.h的引用路径是否正确。
用vi打开此文件 :
vi gd-2.0.35/gd_png.c
在第16行:
========
#include "png.h"
========
把它改为你的libpng安装路径下的png.h。若libpng按上面第2步安装的,那么应该改为:
========
#include "/usr/local/libpng/include/png.h"
========
这样在编译过程中就不会出现以下错误:
===========
aclocal:configure.ac:64: warning: macro `AM_ICONV' not found in library
...
===========
5.2 修改完保存退出后,继续安装gd:
cd gd-2.0.35/ &&
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg7 --with-zlib-dir=/usr/local/zlib --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype &&
make && make install && cd ..
6.安装libxml2
cd libxml2-2.6.30/ &&
./configure --prefix=/usr/local/libxml2 &&
make && make install && cd ..
7.安装libxslt
cd libxslt-1.1.22/ &&
./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2 &&
make && make install && cd ..
8.安装apache
8.1 安装:
cd httpd-2.2.13/ &&
./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite &&
make && make install && cd ..
8.2 检测。安装完后运行:/usr/local/apache/bin/apachectl -k start 启动apache,再打开浏览器进入http://localhost,若显示"It works!",则表示apache已经安装好了。
(若执行启动命令时,打印错误“httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName”,
暂时可以不管,这是由于未配置好ServerName,后面有apache的配置说明)
9.安装mysql
9.1 安装:
cd mysql-5.1.30/ &&
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all &&
make && make install
9.2 用mysql_install_db创建MySQL授权表初始化:
/usr/local/mysql/bin/mysql_install_db --user=root
9.3 添加MySQL配置文件:
如果你想要设置一个选项文件,使用support-files目录中的一个作为模板。在这个目录中有4个模板文件,是根据不同机器的内存定制的。
cp support-files/my-medium.cnf /etc/my.cnf
9.4 启动mysql:
/usr/local/mysql/bin/mysqld_safe --user=root &
9.5 检测是否启动:
/usr/local/mysql/bin/mysql -u root
如果能显示:
=============
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
=============
则表明 mysql 已经正常启动。输入exit;退出。
9.6 设置root密码。默认安装密码为空,为了安全,最好把密码修改掉
/usr/local/mysql/bin/mysqladmin -uroot password yourpassword
10. 安装PHP
10.1 安装:
cd php-5.3.0/ &&
./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg7 --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --enable-mbstring=all --enable-mbregex --with-config-file-path=/usr/local/php5 --enable-soap --with-xsl=/usr/local/libxslt --enable-sockets &&
make && make install
10.2 复制配置文件:
cp php.ini-development /usr/local/php5/php.ini
10.3 用vi打开 查找date.timezone 去掉前面的分号,并改为date.timezone =PRC
11.配置apache:
11.1 用vi打开/usr/local/apache/conf/httpd.conf
11.2 查找 LoadModule 可以看到 LoadModule php5_module modules/libphp5.so 这是安装时设置好的,但也务必检查一下。
11.3 查找 AddType 在“AddType application/x-gzip .gz .tgz” 下面添加一行:AddType application/x-httpd-php .php
11.4 查找DirectoryIndex,在DirectoryIndex index.html 后加上index.php(用空格隔开)
11.5 查找#ServerName,把#去掉,后面的IP改成你的IP或localhost
11.6 查找 DocumentRoot 把 "/usr/local/apache/htdocs" 修改成你的php文件存放路径,也可以不改.但必须保证你的apache用户(参看11.7)对此目录可读可写。
11.7 查找 User ,把User daemon修改成你的apache用户(只需保证此用户对DocumentRoot可读可写即可)
11.8 重启 apache ,若报以下错误:
===========
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so
into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
===========
这是因为Linux有一个SELinux保护模式引起的。
有两种解决办法:
1)关闭SELINUX : 用vi打开 /etc linux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启。
2)不关闭SELINUX的方法:
执行以下shell(可能需要以root用户来执行):
setenforce 0 && chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so && setenforce 1
再重新启动apache.
至此所有基本的LAMP环境安装完毕。
以下是选装的,可装可不装:
12. 安装ZendOptimizer(zend加速引擎)
12.1 安装:
cd ZendOptimizer-3.3.3-linux-glibc23-i386/ && ./install && cd ..
然后像在windows下安装软件一样,一路OK或yes下去,直到“Enter the location of your php.ini file”,输入你的php.ini文件所在的目录,即/usr/local/php5/,
再接着OK/yes,直到安装完成。
13. 为了方便管理mysql数据库,可以安装phpMyAdmin:
13.1 直接把unzip/目录下的phpMyAdmin-3.1.2-all-languages 移动到/usr/local/apache/htdocs/ 下,并把它改为apache用户及组所属。
mv phpMyAdmin-3.1.2-all-languages/ /usr/local/apache/htdocs/phpmyadmin
chown -R yourApacheUser.yourApacheGroup /usr/local/apache/htdocs/phpmyadmin/
13.2 配置:
cd /usr/local/apache/htdocs/phpmyadmin/
cp config.sample.inc.php config.inc.php (把配置示例复制一份,作为正式配置文件)
用vi打开config.inc.php , 查找blowfish_secret,随便填入一个字符串值,只要保证这变量不为空就行;
再查找controluser及controlpass 分别填入你的mysql用户名及密码
13.3 打开浏览器,浏览http://localhost/phpmyadmin,输入用户名及密码,即可登录mysql进行数据库管理。
14.以上进入phpmyadmin时可能会有提示:
==========
无法载入 mcrypt 扩展,<br />请检查 PHP 配置
==========
这是因为没有安装mcrypt 导致的。mcrypt是一个功能强大的加密算法扩展库。
在此顺便介绍一下如何安装PHP扩展。
安装PHP mcrypt扩展,必须先安装libmcrypt 及 mhash ,这两个请直接安装在/user/local目录,否则后面安装mcrypt时会提示找不到相关文件。
14.1 安装libmcrypt :
cd libmcrypt-2.5.8/ && ./configure && make && make install && cd ..
14.2 安装mhash:
cd mhash-0.9.9.9/ && ./configure && make && make install && cd ..
14.3 安装mcrypt:
cd mcrypt-2.6.8/ && LD_LIBRARY_PATH=/usr/local/lib
./configure --prefix=/usr/local/mcrypt --with-libmcrypt-prefix=/usr/local &&
make && make install cd ..
(LD_LIBRARY_PATH=/usr/local/lib 是指定libmcrypt及mhash的库文件所在目录,编译时与下面的./configure...之间不能用 “&&”号,只能用空格隔开。 )
14.4 编译php 中的mcrypt扩展:
cd php-5.3.0/ext/mcrypt &&
/usr/local/php5/bin/phpize &&
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mcrypt=/usr/local/mcrypt &&
make && make install
14.5 修改php.ini:
用vi打开 /usr/local/php5/php.ini 查找extension,在一大堆extension=*.dll下面追加一行:extension=mcrypt.so
(注意extension=mcrypt.so 前面不能加“;”),保存,退出并重启apache
再刷新一下http://localhost/phpmyadmin,就会发现,没有mcrypt警告提示了,表明mcrypt已经安装好。