我开始学习bash脚本,需要编写脚本在NGINX上安装fastcgi_cache 。 我需要使用fastcgi_cache设置replacePHP的默认位置。
要清楚,我需要取代这个:
location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
有了这个:
location ~ .php$ { fastcgi_pass unix:/var/run/php5-fpm.sock ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log /var/log/nginx/$SITE_URL.cache.log cache; fastcgi_cache_key "$mobile$scheme$request_method$host$request_uri"; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; add_header X-Cache-Status $upstream_cache_status ; }
我相信这可以用sed来完成,但我找不到办法。 我设法通过一种解决方法来工作,如下所示:
if [ -f "/etc/nginx/sites-enabled/$SITE_URL" ] then sed -i.bak '/fastcgi_params;/c\ include fastcgi_params;\ \ access_log /var/log/nginx/'$SITE_URL'.cache.log cache;\ fastcgi_cache_key "$mobile$scheme$request_method$host$request_uri";\ fastcgi_cache_bypass $skip_cache;\ fastcgi_no_cache $skip_cache;\ fastcgi_cache WORDPRESS;\ add_header X-Cache-Status $upstream_cache_status;' /etc/nginx/sites-enabled/$SITE_URL else echo "" echo "This domain do not exist on this server." echo "" exit 1 fi
但是,如果fastcgi_params模式显示在文件的任何其他部分,并且有时可能会破坏一切。
我猜测,寻找整个块,这是默认的,不应该跨域改变,是一个更好的解决scheme。 只是不知道该怎么做。
请帮忙吗? 提前致谢!