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

nic*_*ius 30 php php.ini apache-2.2

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

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

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

/etc/php-5.2.8/

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

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

小智 59

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

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

sudo a2dismod php5
sudo a2enmod php7.0
Run Code Online (Sandbox Code Playgroud)

  • 如果您的 Apache 安装未使用系统 php,这将不起作用。 (5认同)
  • 还必须运行 `sudo a2dismod php7.2` 从 php7.2 升级到 php7.4 (2认同)

gru*_*ech 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
Run Code Online (Sandbox Code Playgroud)

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

AddHandler php5-script .php告诉 Apache 在任何扩展名为.php.

如果您使用的是基于 RPM 的操作系统,则卸载(假设您可以这样做)当前版本的 PHP 并重新安装您正在寻找的版本可能更容易。

rpm -qa | grep php
Run Code Online (Sandbox Code Playgroud)

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

  • 值得一提的是,您应该在更改配置后反弹 Apache,以便它被选中。 (3认同)