之前的文章介绍了静态文件的托管,这次主要讨论如何让 Nginx 跑 PHP。
方案
反向代理到 Apache Httpd(没有那个必要)
使用 FastCGI,针对 PHP 的实现就是 PHP-FPM(本文采用这个)
依赖
- PHP-FPM
- macOS 自带
- Linux 发行版可使用包管理安装,名字应该就叫做
php-fpm
- Windows 去 PHP 官网找下载
配置
PHP-FPM 的设置
- 找到 php-fpm 的配置文件,一般去
/etc/php
下翻一翻就能找到。我这里是:
|
|
- 在配置文件里搜索
listen
,获取监听的位置。一般会有如下两种,任选其一:
- 端口监听:
listen = 127.0.0.1:9000
- Socket 监听:
listen = /run/php/php7.0-fpm.sock
- 如果上一步使用的是 socket 监听,还需要设置好权限,与 Nginx 的权限保持一致。例如 Nginx 的运行用户是
nginx
,就要设置:
|
|
- 启动 PHP-FPM
|
|
Nginx 的配置
- 在 Nginx 配置文件中加入如下规则:
|
|
- 重载配置文件:
|
|
至此 Nginx 的 PHP-FPM 配置就完成了。
测试
向上文中的 PHP 目录里添加 test.php
,内容为输出 PHP 信息:
|
|
访问 http://hostname/test.php 即可查看结果。