在我的nginx conf.d文件中,我有以下几点:
location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ^~ /dev/ { fastcgi_param PHP_VALUE display_errors=On; }
我的目标就是让* .php在任何目录(包括/ dev /目录)中被PHPparsing,并且在/ dev /目录中将启用display_errors。 但似乎这些位置并不是在一起而是在一起。 因此,如果它匹配* .php,它会将其parsing为一个PHP文件,除非它位于/ dev /目录中。
我必须是多余的,并有PHPconfiguration代码重复两次,或者有一种方法,我可以避免这种冗余?
谢谢!
是的,你必须是多余的。 除了在非常有限的情况下, location块只被parsing一次,最接近的匹配胜出。
尽pipe可以通过将通用configuration参数移除到单独的文件,然后使用include将它包括在两个位置来减轻这种痛苦。