nginx與php-fpm是兩個重要的web服務器和PHP處理器,很多網站選用了它們的組合來運行他們的網站。在本文中,我們將重點看一下如何正確配置Nginx和PHP-FPM,以確保他們能夠與您的應用程序協同工作。
首先,讓我們來看一下如何在Nginx中配置PHP-FPM。假設您在Ubuntu系統上安裝了Nginx和PHP-FPM,您可以在以下位置找到php-fpm.conf文件:
/etc/php/7.2/fpm/php-fpm.conf您需要修改此文件,以便Nginx正確識別PHP-FPM。以下是一個示例配置:
pid = /run/php/php7.2-fpm.pid error_log = /var/log/php7.2-fpm.log listen = /run/php/php7.2-fpm.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 user = www-data group = www-data在這個示例配置中,我們指定了PHP-FPM應該監聽哪個套接字(/run/php/php7.2-fpm.sock),應該以什么用戶身份運行(www-data:www-data),應該產生哪些錯誤日志和日志位置,以及如何管理PHP-FPM子進程。 接下來,讓我們來看一下如何在Nginx的vhost配置中配置PHP-FPM模塊。以下是示例Nginx vhost配置:
server { listen 80; server_name example.com; root /var/www/example.com; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } }在此示例配置中,我們指定了Nginx監聽端口 80,并且服務器名稱是example.com。我們將網站根目錄指定為/var/www/example.com,并且設置索引文件為index.php。 然后,我們定義了兩個location塊。第一個location塊是用于網站根目錄的,它會嘗試加載請求的URI,如果沒有找到,則會跳轉到帶參數的index.php。 第二個location塊,用于請求.php文件的,并將匹配到的請求通過fastcgi_pass指令交給PHP-FPM進行處理。 最后,我們阻止了任何以.ht開頭的文件。 總之,通過正確配置Nginx和PHP-FPM,您可以確保您的網站能夠與它們協同工作,并且更高效地為您服務。 如果您有興趣學習更多關于Nginx和PHP-FPM的知識,請參考官方文檔或從社區論壇中獲取更多信息。
下一篇nginx 跟php