You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[13-Aug-2017 11:10:52] ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
[13-Aug-2017 11:10:52] ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
[13-Aug-2017 11:10:52] ERROR: FPM initialization failed
[13-Aug-2017 11:12:55] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[13-Aug-2017 11:12:55] ERROR: failed to post process the configuration
[13-Aug-2017 11:12:55] ERROR: FPM initialization failed
mac 中自带了 Apache httpd, PHP, php-fpm
启动 Apache httpd 只需要使用此命令
编辑 apache 配置文件
httpd.conf
把 php 模块的注释去掉就可以了
LoadModule php5_module libexec/apache2/libphp5.so
重启 apache
那怎么知道 php 生效了呢?
我们可以让 server 显示 phpinfo
找到
httpd.conf
中DocumentRoot
的配置, 默认是DocumentRoot "/Library/WebServer/Documents"
因此我们需要做如下步骤
/Library/WebServer/Documents
路径下新建一个index.php
<?php phpinfo(); ?>
index.html.*
文件localhost
就能看到 phpinfo 啦Nginx + PHP
我们不满足于使用 Apache + PHP, 目前的主流是 Nginx(或者说我只会 Nginx), 因此我们还想用 Nginx + PHP
Nginx 有几种代理方式,
proxy_pass
,fastcgi_pass
,scgi_pass
proxy_pass
就是常见的 http 代理PHP 有
php-fpm
, 全称叫php fastcgi progress manager
, 翻译成大白话应该是因此 Nginx 和 PHP 通常用
fastcgi_pass
, fastcgi 顾名思义, 就是性能更快的 cgi启动
php-fpm
Mac 中已经自带了
php-fpm
, 我们直接在命令行输入php-fpm
弹出一堆报错, 错误提示大意是没有找到
php-fpm
的配置文件, 于是我们就到/private/etc/
下, 发现有一个php-fpm.conf.default
文件那正好, 我们直接
sudo cp php-fpm.conf.default php-fpm.conf
再启动
php-fpm
结果又报错了
说是找不到
php-fpm.log
文件, 正常系统哪来的/usr/var/
目录啊, 于是我们去新建一个路径sudo mkdir -p /usr/var
, 结果提示没有权限, 得, 那还是改配置文件吧于是我们继续编辑
php-fpm
的配置文件/private/etc/php-fpm.conf
注意, php-fpm 配置文件用
;
作为单行注释, 我们在 pid 和 log 的配置下分别加上两行再次启动
php-fpm
, 只有一些非 root 的警告了确认一下是否成功,
php-fpm
端口用的是9000
输入
lsof -i:9000
, 显示php-fpm
则认为成功配置 nginx
nginx 默认的配置已经有一段写好了的被注释的 fastcgi php 配置, 我们只需要稍加改动
改成这样
单一入口 php 程序
这种 php 项目的特征是有一个
main.php
或者index.php
, 统一处理 php 请求, 在这个 php 里面定义 controller 和 view, 其实现代的项目都是这样的, 因为方便做统一处理, 模块化整个项目其中
location /
会和默认的静态文件目录产生冲突, 如下所示我一般会改成这样
/static
专门处理静态文件重启 nginx 就可以了
参考文档 https://www.chrisyue.com/nginx-php-config-again.html
The text was updated successfully, but these errors were encountered: