Apache SetHandler 无法与多个 PHP 版本兼容

Apache SetHandler 无法与多个 PHP 版本兼容

自 2021 年 2 月 15 日星期一以来(因为我每周一都会更新),一次更新破坏了我的 apache 和 php 设置。几个月来,我曾同时使用 php 8.0 和 php 7.4。

默认 php 是 8.0,一些旧网站需要 7.4。我在旧的 php 配置上使用它:

<VirtualHost *:443>
    ...
        #Force use php 7.4 because osticket does not support PHP 8.0
        <FilesMatch "\.php$"> # Apache 2.4.10+ can proxy to unix socket
            SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
        </FilesMatch>
    ...
</VirtualHost>

正如我所说,它已经运行了几个月。现在,由于一些更新,它无法匹配,并且所有网站都使用 php 8.0。

语法有改变吗?

注意:PHP 服务 8.0 和 7.4 均运行良好。

注 2:我使用 ppa:ondrej/apache2 和 ppa:ondrej/php

答案1

这似乎解决了这个问题

<FilesMatch \".+\.ph(ar|p|tml)$\"> # Apache 2.4.10+ can proxy to unix socket
   <If \"-f %{REQUEST_FILENAME}\">
      SetHandler \"proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost\"
   </If>
</FilesMatch>

相关内容