在不升级操作系统的情况下,怎么升级php?
单位的机器操作系统是redhat7.2,php是rpm方式安装的php-4.0.6-16,想把php升级到4.1.2该怎么升级,谢谢!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
单位的机器操作系统是redhat7.2,php是rpm方式安装的php-4.0.6-16,想把php升级到4.1.2该怎么升级,谢谢!!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
需要保留原来的配置(mysql,apache),该如何做呢?
升级php和升级操作系统没有太多的联系吧,最多只是几个依赖包可能太老在升级php的过程中也许要升级吧?
如果是rpm的,那么找个新版本的rpm的包,然后rpm -Uvh php*.rpm的包就查以了。
如果是用源码包,那么最好是先rpm -e了原来的rpm包,然后./configure --with-mysql=/mysql的路径 --with-apache=/apache的路径 --prefix=/php要安装的路径 --with-gd等等有关的参数。当然apache的话还得看你用的1.X还是2.X,在参数设置上也有所不同的,你可以具体的看看./configure --help吧~!
首先可以把原有软件的配置文件备份出来,如apache/httpd.conf,mysql/my.cnf,php/php.ini。具体位置每种系统不仅相同,找不到可以:find / | grep my.cnf
1。备份出来以后如果是rpm安装的软件如php,就直接找到新版本的php的rpm包,直接升级。
rpm搜索网站: rpm.pbone.net
注意选择高级搜索,然后选定你的Linux版本。不要下载不是面向RH 7.2的rpm包
找到rpm后,下载,安装方法是
rpm -Uvh php-4.x-rpm
-U代表升级
2。另外一种升级rpm的方式是用yum工具。现看看你的服务器上是否有yum
rpm -qa | grep yum
如果没有,你可以在上面的网站找到给RH7.2用的yum的rpm包
不过yum需要你安装Python,同样在上面的网站找。
安装yum
rpm -ivh yum-2.xxx-.rpm
使用yum
yum check-update
检查你服务器那些软件有可升级文件
如果看到有php,譬如
php-4.1.2
然后执行
yum update php-4.1.2
就可以了
yum的一些高级用法譬如每晚定时更新等你可以上网搜索
注意的是无论哪种方式升级php,完成后别忘了把备份的配置文件拷贝回去。
只不过可能会出现升级后配置文件的一些设定发生变化,譬如对同一个设定的解释不同。如果出现什么问题,具体情况具体对待,看看错误日志等。
yyprick 说的对,升级中可能出现依赖问题。
譬如升级A从1.0到2.0,可能需要也把B从1.0升级到2.0
系统会提示你,那就去逐个升级需要升级的包。如果出现这种情况,
rpm -Uvh A-1.0.rpm
提示你需要升级Aa到1.0
而你执行 rpm -Uvh Aa-1.0.rpm但是又提示你需要升级A到1.0
你可以直接
rpm -Uvh A*
用rpm升级好像不行
#rpm -Uvh php-4.1.2-7.i386.rpm
error: failed dependencies:
libcurl.so.2 is needed by php-4.1.2-7
php = 4.0.6-16 is needed by php-mysql-4.0.6-16
php = 4.0.6-16 is needed by php-imap-4.0.6-16
php = 4.0.6-16 is needed by php-pgsql-4.0.6-16
看来要用源码包升级了,升级后如果想卸载源码,该如何卸载?如果要对源码再升级,该如何升级,谢谢!!
php我觉得最好使用source code来升级,主要看看你现在的系统有没有安装一些开发工具,是否可以编译。如果可以的话,升级的流程非常简单。
暂时不管rpm安装的那个版本,在phpinfo()里面看到rpm的那个版本的configure后面的参数,看看包含什么module,可以直接将这个configure的配置语句copy下来稍后使用
一般我的习惯是将php编译成apache的模块
1、tar xzvf php_xxxx.tar.gz
2、./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs
这里需要找到你实际系统里面apache的路径,如果是apache 1.3那个版本,需要使用--with-apxs。这是两个必要的参数,其他的模块可以根据你的需要进行配置。mysql默认php自带了,不需要制定什么参数,默认就可以连接
3、make
4、make install
5、去apache的httpd.conf文件中确认一下php的配置是否更新,php的安装程序会尝试修改一些,如果还是旧的参数就尝试修改成新的
6、在/usr/local/php/lib/目录下创建新的php.ini,制订正确的路径
7、修改系统的path,将php对应的路径也修改过来
8、重新启动apache,这时候应该没有什么问题了
还有个问题,现在有一些已安装的php-mysql,php-pgsql,如果卸载php的这些rpm包,然后安装php的二进制软件包(tar.gz),对这些程序mysql,apache,postgresql有没有影响,mysql,apache,postgresql都是是rpm方式安装的,谢谢!!
应该没有问题,php开头的rpm都可以删除
如果担心的话可以不删除rpm的东西,反正放着没人用,硬盘空间也不缺这一点
如果安装php源码包tar.gz,configure 时需要指定--with-mysql=/mysql的路径 --with-apache=/apache的路径 ,mysql,apache的路径是什么?mysql,apache都是rpm方式安装的,默认是安装到哪里了?