我想将 PHP 7 与较新的应用程序一起使用,将 PHP 5.6 与应用程序一起使用,这不适用于 PHP 7。所以我尝试配置 Nginx 以为不同的路径启用不同的 PHP 版本。但它不起作用:
# should enable PHP5 for all PHP-scripts under /vexim/ path
location ^~ /vexim/.*\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
其他任何东西的默认值都应该是 PHP 7:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
使用此配置,/vexim/ 下的 PHP 脚本根本不会被解析。如何让它与不同的路径和 PHP 版本一起工作?
(使用 Debian 8.3 Jessie、Nginx 1.8.1 (dotdeb)、PHP 5.6、PHP 7 (dotdeb))
location ^~
不是正则表达式位置,它是优先于所有正则表达式位置的前缀位置。有关详细信息,请参阅此文档。
你可能想要的是:
确保
/vexim
在订购正则表达式位置时该位置位于第一位。