假設在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
,感覺這樣太麻煩了,求教有沒有更簡單的方法。
nginx的-c選項可以指定設定檔的路徑,所以,你可以試試,在設定檔裡面指定日誌檔的時候指定為絕對路徑,例如E:mywampnginx-1.6.2logsaccess.log(防止日誌開啟日誌檔錯誤),然後執行nginx reload的時候使用設定檔的絕對路徑:
不過,好像上面還有問題,都是路徑方面的問題,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配置環境變數
加上參數-p指定路徑完美解決不謝
E:mywampapache2.2bin>E:mywampnginx-1.6.2nginx.exe -p E:mywampnginx-1.6.2 -s reload
不把 Nginx 加入 path,在你的任何一個自己的 path 下建立一個 nginx.cmd 檔案:
今天突然想到的解決方法,雖然這問題已經兩年了(
https://gist.github.com/hyrio...