自 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>