sles10.1装好apache+php+mysql后,缺少pdo_mysql。好不容易编译好pdo_mysql后,发现又少了json。查手册发现json在php5.2.0之后才支持,sles10.1的php5.1.2是彻底没戏了,只能重新编译新版的php。
下载php5.3.6:
wget http://cn.php.net/get/php-5.3.6.tar.gz/from/this/mirror
编译后能成功安装,用php -v也能识别出是5.3.6的版本,可弄了半天phpinfo页面还是5.1.2。没办法,只能重新编译apache了。
在yast中卸载所有PHP及apache相关的软件。下载apache2.2.17,编译安装:
wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz
tar –zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17.tar.gz
./configure –prefix=/usr/local/apache2 –enable-modules=so –enable-rewrite
make
make install
重新编译php(重新编译前一定要make clearn,不然会出现意想不到的错误):
tar –zxvf php-5.3.6.tar.gz
cd php-5.3.6
./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-config-file-path=/usr/local/lib –with-mysql=/usr
make
make install
#复制php5配置文件
cp php.ini-development /usr/local/lib/php.ini
修改http.conf 兼容php5
vim /usr/local/apache2/conf/httpd.conf
文件尾加一行
AddType application/x-httpd-php .php
#LoadModule php5_module modules/libphp5.so
把上面的#号去掉
DirectoryIndex index.html
在后面加 index.php
# don’t use Group #-1 on these systems!
把下面的用户名和组改为
User wwwrun
Group www
#ServerName
把#去掉,后面的IP改成你的IP
DocumentRoot “/usr/local/apache2/htdocs”
把/usr/local/apache2/htdocs改为你存放网页文件的路径
把apache设为服务:
cp /usr/local/apache2/bin/apachectl /etc/rc.d/httpd
chkconfig –add httpd
chkconfig httpd on
启动apache前先要把旧的apache进程kill掉
service httpd start
service httpd status好像不能用