nginx php -fpm麻烦

我们正在使用php-fpm,如果我们改变了nginx.conf中的“root”值,就无法使脚本正常工作。

location ~ \.php$ { root /usr/share/nginx/html ; 

如果我们改变根目录指向其他目录,即使它是/ usr / share / nginx / html / crap,也不行。 该目录当然存在。 这就像它可以读取该目录中的文件,但不执行它。 我已经检查了所有的文件权限。 任何人有任何想法?

你提供的configuration文件将把php文件作为一个“root”根目录的静态文件。 “root”指令只影响静态数据。

php-fpm是一个用于php的fastcgi进程pipe理器。 对于nginx中的fastcgi,有一堆以“fastcgi_”前缀开头的参数。

如果你使用php-fpm,你可能希望php脚本被php-fpm worker执行。 所以,nginx应该将fastcgi_pass的请求发送到php,以适应php-fpm池。

就像是

 location ~* \.php { fastcgi_pass 127.0.0.1:9000; } 

你可以给你的nginx设置更多的信息,即你​​有虚拟主机或只有一个网站。 如果虚拟主机是使用启用了站点的站点可用的安装程序或类似的。 这可能更容易,只是包含启用位置的位置,如“include / usr / local / nginx / sites-enabled / *;” 在nginxconfiguration文件中,然后用一个具有特定重写规则的vhost文件创build两个文件夹,然后将其放入启用了选址的文件夹中。 虚拟主机文件可以指向您的主目录中的文件夹,例如,你不应该有任何权限问题等这不会有助于npm安装程序,但应指向你在正确的方向重新初始设置和configurationnginx