問題:
重啓虛擬機後,再次重啓nginx會報錯: nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) ,即 Nginx 在 /var/run/nginx/ 目錄下找不到 nginx.pid 文件
分析:
Nginx在啓動時會自動創建nginx.pid文件來保存Nginx運行時的進程 pid 信息,如果找不到 /var/run/nginx/nginx.pid,則說明 /var/run/nginx/ 這個路徑可能不存在。
解決方式有三種:
第一種方式:創建默認目錄 /var/run/nginx/ ;
第二種方式:修改 nginx.conf 文件,指定 pid文件 所在目錄。
(1)進入 cd /usr/local/nginx/conf/ 目錄,編輯配置文件nginx.conf ;
(2)在配置文件中有個註釋的地方: #pid logs/nginx.pid;
(3)將註釋放開,並修改爲:pid /usr/local/nginx/logs/nginx.pid;
(4)在 /usr/local/nginx 目錄下創建 logs 目錄:mkdir /usr/local/nginx/logs
(5)再次啓動nginx服務:cd /usr/local/nginx/sbin/ 問題解決
第三種方式:操作失誤,nginx還未啓動,直接使用了重啓的命令: nginx -s reload
nginx.pid只有在 nginx 啓動時纔會創建,而 nginx -s reload 實際上不會重啓 nginx 服務器,只會重新加載 nginx 的配置文件。因此直接使用這條命令是會報錯的。