如何将 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
我正在尝试将我的 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