Nginx与PHP-FPM小结

© Young 2018-05-13 18:16
Welcome to My GitHub

Nginx关闭与重启

    -s signal     : send signal to a master process: stop, quit, reopen, reload

执行nginx -h查看帮助说明时可以看到执行nginx -s+对应命令可以关闭或者启动nginx;

然后我们实际操作时却发现并不是这么简单:

从上图可以很容易看到关闭之后再启动会报错,大致意思是nginx.pid这个文件不存在;

那么nginx.pid是个什么东西呢?

nginx.pid是系统用来存储nginx的主进程相关信息的文件(比如进程号);

    pid        logs/nginx.pid;


    events {
        use epoll;
        worker_connections  2048;
    }

可以通过nginx.conf文件中pid来指定;

启动之后就可以在指定的目录中看到该文件了;

但是关闭nginx之后会发现该文件消失了,然后reopenreload命令需要通过nginx.pid获取进程,如果不存在就会报错了。

    sudo nginx -c /usr/local/etc/nginx/nginx.conf

解决办法是通过nginx -c指定配置文件启动。

PHP-FPM关闭与重启

启动PHP-FPM很简单,只需要执行以下命令即可:

    sudo php-fpm

需要注意的是PHP-FPM默认使用的9000端口,如果该端口已经被其它程序使用,那么启动就会报错,这时需要关闭占用端口的程序;

    lsof -i :9000

先用lsof命令查出占用端口的PID,然后执行KILL命令即可;

除了上述方法外,我们还可以更改PHP-FPM的配置,来解决问题或者进行一些优化,配置文件一般名为php-fpm.conf

部分属性列举如下:

pidnginx类似均是主进程相关信息文件路径;
error_log错误日志;
listen监听端口。

关闭PHP-FPM则需要手动杀掉相关进程了;

    ps -ef | grep php-fpm

上述命令可以查询出所有的PHP-FPM进程,然后执行KILL命令即可。

根据错误日志排查问题

在构建开发环境时我们会遇到各种各样的问题,处理这些的一般方法是分析日志文件;

比如:

Nginx的错误日志文件,定义在nginx.conf配置文件中;

Web服务的错误日志文件,定义在Web服务的相关配置信息中;

PHP-FPM的错误日志文件,定义在php-fpm.conf配置文件中;

PHP的错误日志文件,定义在php.ini文件中。

当然有时候你可能会发现明明有问题,但是这些错误日志文件里边并没有任何内容,遇到这种情况刚开始你可能会很慌,在网上胡乱搜一通,但是并不能解决问题;慢慢你就会冷静下来;想着是不是从头总结一下会比较好,之后东拼西凑凑出了一篇小总结,然而问题并没有解决;实在没办法只能去请教大神了,大神淡定的说了一句不应该啊!要不你重启下电脑试试?;两分钟之后问题荡然无存,此时我恍然大悟果然PHP是世界上最好的语言

发表评论

电子邮件地址不会被公开。 必填项已用*标注