nginx在windows命令列下重啟報錯的問題
漂亮男人
漂亮男人 2017-05-16 17:25:26
0
4
1193

假設在windows上輸入以下指令:

E:\mywamp\apache2.2\bin>E:\mywamp\nginx-1.6.2\nginx.exe -s reload

那麼輸入結果就是這樣的:

nginx: [alert] could not open error log file: CreateFile() "logs/error.log" failed (3: The system cannot find the path specified)
2015/01/26 22:07:10 [emerg] 5164#5196: CreateFile() "E:\mywamp\apache2.2\bin/conf/nginx.conf" failed (3: The system cannot find the path specified)

解決方法就是先cd到目錄E:\mywamp\apache2.2\bin>E:\mywamp\nginx-1.6.2\,然後執行nginx -s reload,感覺這樣太麻煩了,求教有沒有更簡單的方法。

漂亮男人
漂亮男人

全部回覆(4)
滿天的星座

nginx的-c選項可以指定設定檔的路徑,所以,你可以試試,在設定檔裡面指定日誌檔的時候指定為絕對路徑,例如E:mywampnginx-1.6.2logsaccess.log(防止日誌開啟日誌檔錯誤),然後執行nginx reload的時候使用設定檔的絕對路徑:

shellE:\mywamp\nginx-1.6.2\nginx.exe -s reload -c E:\mywamp\nginx-1.6.2\conf\nginx.conf

不過,好像上面還有問題,都是路徑方面的問題,nginx對目前路徑的依賴太大。

那麼就想辦法在執行nginx指令前重新設定目前目錄吧,Windows下的話可以用start指令,/D參數指定起始目錄,這樣就行。所以像這樣就行了start /D E:mywampnginx-1.6.2 nginx -s reload

仅有的幸福

首先,既然選用nginx就不要在windows下使用,效率比在Linux下差很多。

其次,這個文件打不開的原因顯然是預設相對路徑不認,去修改nginx.conf文件,調整access_log的路徑位址。

最後,建議nginx這個指令直接加入到環境變量,在Linux下也一樣意見這麼做,參考Java配置環境變數

Ty80

加上參數-p指定路徑完美解決不謝
E:mywampapache2.2bin>E:mywampnginx-1.6.2nginx.exe -p E:mywampnginx-1.6.2 -s reload

迷茫

不把 Nginx 加入 path,在你的任何一個自己的 path 下建立一個 nginx.cmd 檔案:

@set nginx_path=D:\Local\Nginx
@echo off
pushd %nginx_path%
if "%*" == "" (
  start /b %nginx_path%\nginx.exe
) else (
  call %nginx_path%\nginx.exe %*
)
popd

今天突然想到的解決方法,雖然這問題已經兩年了(
https://gist.github.com/hyrio...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!