php4升级到php5以及问题的解决

发布于: 2006年12月07日

搬家自原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文件切换回去.方便,实在

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

浙ICP备18056264号-1