Apache 让不同的网站分别运行指定PHP版本

By 大伟哥 | 2022-04-07,周四, 12:46

昨天升级阿里云服务器的PHP版本到8.1以后,突然发现服务器上运行的另一个 Magento 1.9 网站出错了。即使打了补丁,Magento 1 支持的最高PHP版本也只能到 PHP 7.x。因此这个网站因为不适应新的环境罢工了。

Magento 1 的网站内容和流量很少,为了这个网站,肯定不能把好不容易才升级上去的版本降级回去,哪怕把它迁移到新的平台也不能再降级回去啊。不过现在精力有限,有没有更好的办法先它先运行着,等忙完别的事情再回来处理这个?最终大伟哥找到了一个在 Apache 服务器下让不同网站运行在不同版本的PHP上的办法。

方法很简单,直接在虚拟主机的配置文件里指定处理PHP的版本就可以了。一般 Debian 系的 Apache 虚拟主机配置文件在/etc/apache2/sites-available目录下,在对应需要用PHP 7.3 运行的网站配置.conf文件里面加入以下 FilesMatch 代码:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
</FilesMatch>

然后重启 Apache 服务器就可以了。

这里需要注意的是,PHP 要用 fpm 模式和 Apache 服务器配合,另外当前的 PHP 版本比须都已经安装在服务器上,并且 Apache 下面的 fpm 模块配置都处于启动状态。

添加新评论

此字段内容将保密,不会被其他人看见。
  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
发布评论前,请通过下面的验证,以免被当作垃圾评论机器人屏蔽。
2 + 0 =
计算出这道简单的算术题并键入答案。例如、1+3,就输入 4。