本文目錄一覽:
- 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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243914.html