PHP 7和5.6在Nginx中并行

我想将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位置是有序的。