首页 > 解决方案 > 如何将 PHP-FPM 与别名目录一起使用

问题描述

我正在尝试将我的 Centos 7 服务器从PHP5 升级到 PHP7,而且似乎也建议使用 fpm 方法(我是新手)。

在我的测试服务器上,我已经安装了PHP7.3没问题,和 PHP-FPM。并添加行

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/my_doc_root/$1

作品....有点。

问题是,由于历史原因和我无法控制的原因,我有各种路径别名为 /,但它们不在文档根目录中。IE

Alias /myURL /some/different/path

显然问题是ProxyPassMatch上面的命令会将“myURL/fish.php”重定向到一个不存在的文件(“my_doc_root/fish.php”),这会给出错误。

这个问题有简单的解决方案吗?例如,我可以在<Directory>文档根目录和some/different/path. 或者,有没有一种方法可以更新/etc/https/conf.d/php.conf (从 PHP5 开始)以旧式方式运行 PHP7?我不认为我可以,因为php73包中没有 libphp 文件。

显然有解决方案(ProxyPassMatch为不在文档根目录中的每个 URL 编写单独的指令,或者以更智能的方式重组整个文件系统),但如果可以的话,我宁愿避免这些;确实,后者我根本做不到。

标签: phpapachefastcgifpm

解决方案


尝试将您的别名放在ProxyPassMatch指令之前,因为如果它首先找到,那么别名将被忽略。

Alias /myURL /some/different/path
<Directory "/some/different/path/">
    AllowOverride All
    require ip 127.0.0.1
</Directory>

更新可能这会帮助你https://serverfault.com/questions/629099/apache-2-4-php-fpm-mod-proxy-fcgi-alias


推荐阅读