如何将 PHP-FPM 与别名目录一起使用

How to use PHP-FPM with aliased directories

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

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

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

有效……有点。

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

Alias /myURL /some/different/path

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

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

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

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

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

UPDATE Possibly this will help you https://serverfault.com/questions/629099/apache-2-4-php-fpm-mod-proxy-fcgi-alias