操作系统CentOS,服务器apache2.2.3,mysql5.0.18,php5.2.5.
参照php-5.2.5发行版中的安装说明文件进行安装(INSTALL文件)
1,解压:
tar -jvxf php-5.2.5.tar.bz2;
2,进入到php-5.2.5目录下:
cd ./php-5.2.5
3,执行configure编译php源文件:(如果不知道 ./configure后面的具体参数是什么意思的话,你可以这样做:在php源目录下执行./configure --help)
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --enable-mod-charset --with-config-file-path=/usr/local/php5 --with-layout=PHP --with-curl=/usr/local/curl --with-zlib=/usr/local/zlib --enable-soap --enable-ftp --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd=/usr/local/gd2
4,执行安装:
make;make install
5, 因为--with-config-file-path=/usr/local/php5这一设置,所以把php.ini-dist文件复制到/usr/local/php5下:(/usr/local/src/php-5.2.5)
cp ./pnp.ini-dist /usr/local/php5/php.ini
6,因为--with-apxs2=/usr/local/apache2/bin/apxs这一设置,它会自动将apache与php关联,即/usr/local/src/php-5.2.5/libs/libphp5.so文件会自动加载到/usr/local/apache2/modules下,并在httpd.conf文件中自动加在LoadModule php5_module modules/libphp5.so
7,添加AddType application/x-httpd-php .php到httpd.conf的AddType模块下。
8,测试安装的php是否可以正常运行,在设置的根目录下,我的根目录是/usr/local/apache2/htdocs下建立一个phpinfo.php:
9,安装lamp过程中遇到的问题以及解决的方法:
1.[warn] module php5_module is already loaded, skipping -->是在apache安装目录conf下httpd.conf里重复了一行LoadModule php5_module modules/libphp5.so,删除重复的行就行。
2.Cannot load /…/libphp5.so into server: /…/libphp5.so: undefined symbol: _efree -->此错误是由于重装php时,没有关闭apache。解决方法:调转到php安装目录,执行“make clean”,然后从新安装php,记得安装之前关闭apache。
3.从源码安装apache2,遇到错误:cannot install `libaprutil-1.la' -->由于configure过一次,没有清理干净,需要清理。可以删除掉源码目录,重新解压源码,重新安装,或者make clean.
4.apache启动报错(98)Address already in use: make_sock: could not bind to address [::]:80
--> #netstat -lnp|grep 80
#ps 端口号为80的进程
#kill -9 端口号为80的进程(可能进程不止一个)
5.Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 -->问题的原因是 : 你的 filename.php文件 在这个用户下不具有 可读的权限 通过 ls -l 查看 文件的权限 然后更改权限 chmod +r filename.php