我配置了 apache + php-fpm + mod_proxy_fcgi 服务器,但我无法理解两个教程中没有解释原因的行。这是在其他教程中找不到的。
<FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME} && %{REQUEST_URI} =~ /.+\.ph(ar|p|tml)$/" >
SetHandler "proxy:unix:/run/php-fpm/example.com.sock|fcgi://example.com/"
</if>
</FilesMatch>
我不明白这一行:
<If "-f %{REQUEST_FILENAME} && %{REQUEST_URI} =~ /.+\.ph(ar|p|tml)$/" >
我能够确定这一行的意思是:“检查文件是否确实存在”我理解正确吗?如果是这样,为什么要检查?也许不需要?
答案1
使用该行,您只需将那些实际调用 PHP 文件的请求委托给 php-fpm。这样,您就可以避免对与 php-fpm 不相关的文件不必要地调用 php-fpm,因为它们不是 PHP。