本文目录一览:
- 1、nginx+php最近总是出现502,然后重启php-fpm就没事了,这是什么原因
- 2、nginx启动,重启,重新加载,以及前缀路径设置
- 3、如何用命令重启nginx
- 4、如何 利用 php 重启 nginx-Linux新手园地
nginx+php最近总是出现502,然后重启php-fpm就没事了,这是什么原因
用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
url和cmd根据实际情况改成自己的。然后放到crontab里一分钟执行一次。
nginx启动,重启,重新加载,以及前缀路径设置
命令行里对nginx操作都需要运行nginx安装目录下的 sbin/nginx,默认会放在 /usr/local/openresty/nginx/sbin 目录下,如果不是openresty里装的nginx,应该就是没有openresty这一层目录的位置
这个路径比较长,所以一般会把它配在环境变量里
之后就可以在任意目录下直接使用nginx命令了,但是这种方法在关闭窗口后就没有用了。
修改环境变量有多种方法,这里贴个别的博客的 链接 ,写的比较详细
我这里使用了修改/etc/profile的方法,修改后,重启,对所有用户都生效
但是一般来说,我们肯定是需要启动我们自己编写的nginx.conf,所以需要在启动的时候指定nginx.conf的位置
这样写的话必须写绝对路径,写相对路径会被拼接到/usr/local/。。。的nginx默认路径后面去,肯定就找不到nginx.conf了,就报错了。同时在nginx.conf文件中的一些东西也必须写绝对路径,例如我写个content_by_lua_file,后面的路径也不能是相对路径
这是因为没有指定前缀路径,就会使用默认的前缀路径,导致所有相对路径都出现问题,通过 -p指定路径,这样就可以愉快地写相对路径啦
修改了文件后,需要让nginx加载这些修改了的信息,可以通过重启nginx的方式,但是nginx也可以不重启,直接重新加载这些内容
当然也可以查找nginx的进程号,再用kill 指令向它发送消息,实现让它停止,重启,重加载等等。
如何用命令重启nginx
nginx服务器频繁出现502错误,这里分享下nginx重启的命令,相比网上繁琐的重启脚本,还是用命令重启nginx方便,大家可以试试。
在Nginx中,可以用-s参数对nginx服务进行管理:
复制代码代码示例:
# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/0.7.63
Usage: nginx [-?hvVt] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
重启nginx服务:
复制代码代码示例:
# /usr/local/nginx/sbin/nginx -s reload
nginx重启成功
使用root权限杀掉nginx进程:
复制代码代码示例:
#killall nginx
#nginx
其它相关命令:
1,显示nginx进行id
复制代码代码示例:
#ps -aux | grep nginx
2,结果nginx的master进行pid
复制代码代码示例:
#kill -HUP 635
3,重启ngnix
复制代码代码示例:
#/usr/local/nginx/sbin/nginx -s reload
如何 利用 php 重启 nginx-Linux新手园地
已解决 下面是解决方法
1、设置 sudo 配置文件 可写权限
chmod u+w /etc/sudoers
2、增加 www 用户的 nginx 脚本管理权限
www ALL=(root) NOPASSWD: /etc/init.d/nginx
3、关闭 【强制控制台登录】执行
【非常重要】,注释该行 我的问题就出在这里,开启了这个选项之后。在PHP中怎么调用,都没有执行结果
#Defaults requiretty
4、还原 sudo 配置权限 440
【非常重要】,如果不还原权限。在PHP中怎么调用,都没有执行结果。
chmod u-w /etc/sudoers
5、调用php
$result2 = exec("/usr/bin/sudo /etc/init.d/nginx stop",$result);
var_dump($result);
var_dump($result2);