wsl開nginx和php-fpm遇到的幾個小問題


最近換工作又用回了windows。在windows平台下php和nginx 沒有Linux下直接用包管理工具來的方便,就准備在wsl下安裝nginx和php,然后文件放在d:\\webroot下運行。當中遇到了一些小問題:

1.nginx沒有監聽80端口。

問題描述:通過 service nginx start能運行nginx程序,但是在netstat -a中並沒有找到80端口被監聽(wsl與主機的端口和地址是通的)。

解決方法:nginx.conf中include的是sites-enable下的文件,而我把文件都放在sites-available下,軟鏈接一下就行。

 

2. too many levels of symbolic links

問題描述:上述問題解決后重啟nginx,報too many levels of symbolic links這個錯。

解決方法:原因是鏈接的時候我用了相對地址。要用以下格式: ln -s /etc/nginx/sites-available/xxx.conf /etc/nginx/sites-enable/

 

3.FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream

問題描述:這個是之前nginx第一個問題沒解決的時候,我下了個windows下的nginx。nginx正常跑起來了,然后php這里不行,看log顯示這個問題。這個是由於路徑的問題導致的錯誤。windows下路徑為 d:\\webroot,而在wsl下訪問應該是 mnt\d\webroot。我在nginx的配置中server下的root 和 location ~/.php 下的SCRIPT_FILENAME都使用了windows下的路徑,這里當我們訪問nginx時,nginx檢測到是php文件然后把d:\\webroot\index.php轉交給了wsl下的php去處理,wsl下這個路徑是錯的,因此發生問題。

解決方法:把SCRIPT_FILENAME單獨改成wsl下的路徑就行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM