如何更改Apache Apache2使用的PHP版本?


25

Ubuntu 10.04,MySQL 5.1,Apache 2.2和PHP 5.2 / 5.3:

我只是发现我为CRM应用程序使用了错误版本的PHP。一旦弄清楚如何制作一个简单的phpinfo()脚本来告诉我Apache2正在使用什么,就尝试更改,php.ini使Web服务器可以使用我想要的PHP。好吧,这是我的问题。不知道该怎么做。

我在/etc这里编译了想要的PHP版本:

/etc/php-5.2.8/

在其中,有一个php.ini-recommended文件,我对其进行了更改并重命名为php.iniPHP ,以便使用它。但是,当我打开浏览器并清除历史记录并转到该http://localhost<CRM dir>/install.php地址时,向导仍然说我没有使用正确版本的PHP。

根据 这篇文章,我需要做什么来更改运行test.php脚本后显示的PHP版本?换句话说,phpinfo()说我正在运行PHP 5.3.2,但是我想将其更改为位于中的已编译5.2.8版本/etc

Answers:


8

根据您的服务器,您应该查看的是Apache,而不是PHP。

(对于RHEL / CentOS)请看 /etc/httpd/conf.d/php.ini

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated web pages.
#
LoadModule php5_module modules/libphp5.so
#
# Causes the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

您会看到PHP模块是modules/libphp5.so

AddHandler php5-script .php告诉Apache在任何具有扩展名的文件上运行PHP .php

如果您使用的是基于RPM的操作系统,则可能更容易卸载(假设可以这样做)最新版本的PHP,然后重新安装所需的版本。

rpm -qa | grep php

将显示当前安装的PHP版本。


3
值得一提的是,您应该在更改配置后将Apache弹起,以便将其拾取。
Ben Pilbrow 2010年

我真希望如此简单。php.ini我在服务器目录中仅有的文件/etc/apache2/php.ini不在您建议的位置。的LoadModule,AddHandler的,将AddType等:这个文件没有你说的这些组件
nicorellius

有趣。您在什么操作系统上运行?它是通过YUM,APT-Get或YAST(或其他软件包管理器)配置的吗?
grufftech 2010年

Ubuntu 10.04。可以轻松apt-get完成新版本的PHP(5.3.2)的安装,我已经完成了。但是我使用来自php.net/releases的文件编译了PHP 5.2.8和5.2.13 。实际上,我有点放弃尝试运行旧版本的PHP。为了简洁起见,我认为可以采用其他方法。尽管如此,感谢您的帮助...
nicorellius 2010年

42

如果您已经安装了其他版本的php,则只需更改apache使用的php *模块。

例如,我有php5和php7.0。当我想让Apache使用php7.0时,我只需要启用他的模块并禁用php5模块即可。

sudo a2dismod php5
sudo a2enmod php7.0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.