我想将PHP 7与更新的应用程序一起使用,将PHP 5.6与应用程序一起使用,但不支持PHP 7.所以,我尝试configurationNginx来为不同的程序启用不同的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; }
有了这个configuration,/ vexim /下的PHP脚本根本就不被parsing。 如何使这个工作与不同的pathes和PHP版本?
(使用Debian 8.3 Jessie,Nginx 1.8.1(dotdeb),PHP 5.6,PHP 7(dotdeb))
location ^~不是一个正则expression式位置,它是一个优先于所有正则expression式位置的前缀位置。
详情请参阅此文件 。
你可能想要的是:
location ~ ^/vexim/.*\.php$ { ... } location ~ \.php$ { ... }
确保/vexim位置是第一位的,因为regex位置是有序的。