解决在nginx中不能执行php程序的问题

先来简单介绍一下我遇到问题的症状,毕竟对症下药嘛。
访问:

1
localhost:8080/index.html

没有问题。

但是,访问.php结尾的文件

1
localhost:8080/php_info.php

接下来简单介绍一下修改过程:

  1. 修改一下nginx的配置文件
  2. 修改一下php-fpm的配置文件并重启

修改nginx的配置文件

配置文件位置

1
vim /usr/local/etc/nginx/nginx.conf

将第71行

1
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

改为第72行

1
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

配置好后重新启动nginx

1
sudo /usr/local/bin/nginx/nginx -s reload

修改php-fpm配置文件并重启

php-fpm的配置文件位于

1
vim /usr/local/etc/php/7.0/php-fpm.conf

修改这两个配置

或者

可以在启动php-fpm的位置加上 –prefix /usr/local/var 参数

接下来修改php-fpm的启动端口,否则会提示9000已被占用(我查了一下占用这个端口的就是php-fpm,所以应该是可以通过重启的,但是我直接换了一个端口启动,绕过这个问题了)。

修改位置在:

可以看到在php-fpm.conf 对这个配置文件进行了引用,修改端口就在这个文件中修改。

在这个位置可以对php-fpm,进行修改,改完端口记得修改nginx中对应的php-fpm对应的端口。

最后,重新启动php-fpm

1
sudo php-fpm --fpm-config /usr/local/etc/php/7.0/php-fpm.conf --prefix /usr/local/var

然后再访问一次 localhost:8080/php_info.php

php_info.php的代码

1
2
<?
phpinfo();