【发布时间】:2019-01-05 09:15:11
【问题描述】:
我在 apache2 下有一个服务器,有多个 php 版本。 我可以将代理用于但不能用于 我放了
<FilesMatch \ .php $>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost/"
</ FilesMatch>
为什么它在 443 上不起作用?
我的例子:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin email@example.com
ServerName example.com
DocumentRoot /var/www/html/
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
我的虚拟主机 *:80(有效)
<VirtualHost *:80>
ServerAdmin email@example.com
ServerName example.com
DocumentRoot /var/www/html/
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
提前谢谢你
【问题讨论】:
-
您需要检查您对空格的使用,因为它们不同。 FilesMatch 是一个正则表达式,应该用引号引起来。
-
你有例子吗?我确实放了一些引号
-
匹配应该是
<FilesMatch "\.php$">,你应该以</FilesMatch>结尾(你的第一个有空格) -
我刚试过但同样的问题,这很奇怪,在
的配置上它可以工作 -
你能准确地发布你的 :80 吗?严格来说你不需要引号:但是你有不同的问题/空格等,所以你真的想确保你已经正确/准确地复制并加上引号可以消除歧义。
标签: php apache configuration virtualhost