当我在 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
答案1
使用upstream
块。这可以放入您的主nginx.conf
文件中,该文件由所有服务器特定配置文件继承。
例如:
upstream php {
server unix:/var/run/php/php7.0-fpm.sock;
}
server {
...
location ~ \.php$ {
fastcgi_pass php;
...
}
}
看这个文件了解更多。