Php
Nginx 版本無關的 php-fpm 配置
當我在 Nginx 中創建一個新的 webapp conf 時,我使用以下模板:
server { root /var/www/html/${domain}; server_name ${domain} www.${domain}; location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ { expires 365d; } location / { index index.php index.html index.htm fastcgi_index; try_files $uri $uri =404 $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
請注意該模板中的以下
location
塊:location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
是否有一種“安全”的方法可以使其與版本無關(也就是說,不專門針對版本 7.0 或任何其他版本)。
你知道這樣做的方法嗎?我不確定正則表達式是最好的方法,也許還有另一種配置方法。
更新
順便說一句,這些 7.0 指令也可能有點痛苦 - 你有時只想執行一個腳本,而不開始測量版本:
sed -i 's/post_max_size \= .M/post_max_size \= 200M/g' /etc/php/7.0/fpm/php.ini sed -i 's/upload_max_filesize \= .M/upload_max_filesize \= 200M/g' /etc/php/7.0/fpm/php.ini sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.0/fpm/php.ini /etc/init.d/php7.0-fpm restart && systemctl restart nginx.service
使用
upstream
塊。這可以放在您nginx.conf
的所有伺服器特定配置文件繼承的主文件中。例如:
upstream php { server unix:/var/run/php/php7.0-fpm.sock; } server { ... location ~ \.php$ { fastcgi_pass php; ... } }
有關更多資訊,請參閱此文件。