我有一个脚本可以进行相当多的sed
替换,并且除了这一行之外,它都可以正常工作。
奇怪的是,当我在终端上正常运行时,它可以正常工作。
我要替换的代码是此块的一部分:
location ~ '.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
特别是这一行: fastcgi_pass unix:/var/run/php-fpm.sock;
我想改变。
这是我用来尝试替换它的代码:
sed -i "s#fastcgi_pass unix:/var/run/php-fpm.sock;#fastcgi_pass unix:/var/run/php7.0-fpm.sock;#" /etc/nginx/sites-available/lemp-stack.app
出于某种原因,它只是不能替代。
有人有什么想法吗?
谢谢。
pass
和 unix
之间可能有一个制表符而不是空格,如果是这种情况,这应该可以工作:
sed "s#fastcgi_pass[ 't]unix:/var/run/php-fpm.sock;#fastcgi_pass unix:/var/run/php7.0-fpm.sock;#"