Nginx
如何設置 Nginx 和 PHP-FPM 套接字
這是我在錯誤地發布給超級使用者和 Stack Overflow 之後第三次嘗試發布這個問題。希望現在這是正確的地方!
我已經接管了公司的網路託管,這是一個執行亞馬遜自己版本的 Linux 和 Nginx 的 AWS 伺服器。
我對 Nginx 沒有太多經驗,但我需要創建一個執行該站點的開發版本的子域。已經有一個現有的“暫存”虛擬主機,但是它連結到主站點數據庫,因此無用。
我已將 staging conf 文件從 /etc/nginx/conf.d/staging.conf 複製到 /etc/nginx/conf.d/dev.conf 並將文件中的所有“staging”實例更改為“dev”。
這是文件的樣子:
upstream php-dev-backend { server unix:/tmp/php-fpm-dev.sock weight=1; } server { server_name dev.groundlevel.co.uk; listen 80; root /var/www/vhosts/dev.groundlevel.co.uk/web-root; index index.html index.htm index.php; access_log /var/log/nginx/dev.groundlevel.co.uk_access_log; error_log /var/log/nginx/dev.groundlevel.co.uk_error_log; location @handler { rewrite / /index.php; } location / { index index.php index.html; try_files $uri $uri/ @handler; expires 30d; } include magento_security; include fastcgi_params; location ~ \.php$ { if (!-e $request_filename) { rewrite / /index.php last; } include fastcgi_params; fastcgi_pass php-dev-backend; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
但是,這會導致 502 錯誤,因為 /tmp/php-fpm-dev.sock 不存在,我不知道如何創建它。或者,如果我可以將 conf 文件更改為不需要套接字。
有人可以解釋如何讓套接字執行嗎?謝謝!
如果您執行的 php-fpm 不超過一個,請將您的虛擬主機指向同一個 php-fpm 套接字。
檢查 PHP-FPM 是否已經在執行
service php-fpm status
if not start service withservice php-fpm start
(並檢查日誌文件是否存在可能的錯誤)。在啟動執行時啟用 PHP-FPMchkconfig php-fpm on