搬家自原blog:http://blog.linuxsky.net/2993
原地址:http://blog.linuxsky.net/2993/viewspace_2433.html因为想用最新版本的mediawiki,需要php5的支持.在CU上一搜,差点被吓死.说什么问题多多,最好找台相似的机器练习,而且也没有安装成功的指导贴.算了,用自己的想法硬着头皮上吧.记录过程如下:1.首先,介绍一下我的系统软件配置:
OS: CentOS 4.3
Websoft: Apache-2.0.52/mysql-4.1.12/php-4.3.9
2.在php.net主页上下载了php-5.2.0版本的源码,解压缩就不说了
3.编译,我借用了原来rpm安装的php4的phpinof()输出结果的编译选项,稍做修改:
'./configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--prefix=/opt/php5' '--with-config-file-path=/opt/php5' '--enable-force-cgi-redirect' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-db4=/usr' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-gd=shared' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-ncurses=shared' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-imap=shared' '--with-imap-ssl' '--with-kerberos' '--with-ldap=shared' '--with-mysql=shared,/usr' '--with-pgsql=shared' '--with-snmp=shared,/usr' '--with-snmp=shared' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mbstring=shared' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-mime-magic=/usr/share/file/magic.mime' '--with-apxs2=/usr/sbin/apxs'
我的修改是
a.为避免与原来的php4安装冲突,把–prefix=改成/opt/php5,其他所有有prefix字样的选项全部去掉
b.–with-config-file-path=改成/opt/php5,就是php.ini的位置,目的也是避免冲突
c.这个是注意点,–with-apxs2=/usr/sbin/apxs这行一定要留下,把php编译成apache的module形式,因为cgi形式我还不知道怎么做呢,呵呵
4.安装,如果./configure正常,那么就make;make install, 然后php5就安装在/opt/php5目录下了
5.把php-5.2.0源代码目录下的php.ini-dist copy到/opt/php5目录下,文件名改成php.ini这个就是–with-config-file-path=制定的配置文件目录了.你也可以根据需要修改php.ini文件
6.修改apache的配置文件httpd.conf,把
LoadModule php4_module modules/libphp4.so
改成
LoadModule php5_module modules/libphp5.so
7.重启apache
问题以及解决:
a.问题描述:
一切完成后,出现了一个问题.用浏览器访问我自己写的东西的时候出现这个
error:Fatal error: Call to undefined function mysql_pconnect()in /var/www/html/login/include/conndb.inc on line 6
但是访问mediawiki却一点问题也没有.查phpinfo()发现找不到mysql的相关信息.
b.解决过程
分析了一下觉得应该是这个原因,php没有load mysql module, 而mediawiki可以使用有可能是他用的是mysqli.
修改php.ini,
加入:extension mysql.so
修改extension_dir的值,由原来的”./”改为”/opt/php5/lib/php/20060613″ //这个是mysql.so文件所在的位置
重启apache,一切正常
总结陈词:
升级php4到php5也没有那么麻烦.只是有一些小地方需要注意.
我的方法也就是另外一个目录安装php5,修改httpd.conf文件的LoadModule来实现php4到php5的切换.如果php5安装失败或者出现什么问题,也可以通过修改httpd.conf文件切换回去.方便,实在