王志勇 发表于 2019年09月17日 09:42
对于LNMP不同系统Nginx的配置文件路径不一,唯一的解决办法是Ubuntu、Debian、CentOS这三家每推出一个新的主版本,则必须再调试一遍,如果有不同,就在一键Shell命令里添加新规则。
特别是Nginx的PHP服务进程,Ubuntu 14下是php5-fpm,重启fpm进程的命令是service php5-fpm restart,CentOS 6下是php-fpm,重启fpm进程的命令是service php-fpm restart。
到了Ubuntu 16,自带的PHP软件源的进程是php7.0-fpm,重启fpm进程的命令是service php7.0-fpm restart。
PPA+PHP的重启fpm进程的命令,同样服务进程名要加版本号,例如:
service php7.4-fpm restart
service php7.3-fpm restart
service php5.6-fpm restart
等等。
LNMP和LAMP有一点不同的是,当修改了Apache的配置文件或php.ini,只需重启Apache。而LNMP则需要重启Nginx、重启fpm进程。
作为一键通用版,要判断这个PHP的服务进程名是十分困难的,幸好有service --status-all这个命令可以显示所有的服务,并从中筛选出关键词“php”或“fpm”,命令为service --status-all | grep 'php',即可显示出PHP的服务进程名,显示的结果为:
[ + ] php7.4-fpm
这时,要把php7.4-fpm前的[ + ]和空格全都去掉。用这个Shell替换语句:
将${a1}里的所有123替换为321:
b1=${a1//123/321};
所以[ + ]和空格全都去掉的Shell程序是:
a1=`service --status-all | grep 'php'`;
a1=${a1// /};
a1=${a1//[/};
a1=${a1//+]/};
a1=${a1//-]/};
所以,通用的LNMP下的重启fpm进程的命令是:
a1=`service --status-all | grep 'php'`; a1=${a1// /}; a1=${a1//[/}; a1=${a1//+]/}; a1=${a1//-]/}; if [ "$a1"x != ''x ]; then service $a1 restart; fi;
LNMP下的重启Nginx、fpm进程的命令是:(已集成在一键Shell命令中)
service nginx restart; a1=`service --status-all | grep 'php'`; a1=${a1// /}; a1=${a1//[/}; a1=${a1//+]/}; a1=${a1//-]/}; if [ "$a1"x != ''x ]; then service $a1 restart; fi;
2019-09-18 09:08更新:
service --status-all | grep 'php'这条命令在Ubnutu 16下完美运行,只显示一个fpm服务进程。但在Ubuntu 12下会显示很多别的服务进程,所以这条命令无法用,需要进行改进。
(更新完)
开发LNMP安装还有一个困难是,因为我作为作者个人的主力生产环境是LAMP,而LNMP的生产环境一个都没有部署,所以更熟悉LAMP环境。Apache的功能比Nginx多很多,而且性能也并不比Nginx差。现阶段我暂时用不到Nginx,只有在开发中才会安装、配置、测试。而现阶段国内使用Apache的用户越来越少,大部分人都使用Nginx,所以我需要强迫自己把Nginx用起来。
www.conf在通用版中,采用find查找的方法:
a1=`find /etc -name 'www.conf'`;
a1就是这个www.conf文件,它的作用主要用来修改listen,必须改为listen=127.0.0.1:9000,否则很多Nginx+PHP安装后,一直是502错误,这是安装LNMP成功的关键。
在去年写的Ubuntu 14+Nginx+PHP,如 http://www.auiou.com/relevant/00000941.jsp
这次调试中发现,Ubuntu 16和Ubuntu 14下还是有些不同。
上述这篇链接,已经在这个新编写的一键Shell命令里全自动配置,配置的步骤也和上述链接里写的完全一样。
开发这个LNMP一键安装命令,需要修改Nginx配置文件里的这段:
#location ~ .php$ {
# fastcgi_split_path_info ^(.+.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
#}
让一键安装程序自动修改的方案,我是先让程序备份一次这个文件,然后采用sed命令,只替换掉#location ~ .php$这一行使其写入正确的代码如下:
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这时PHP才能运行。PHP能运行之后,再用PHP程序删除带有#的行。PHP程序的功能比Shell程序多得多,修改之后再用Shell命令替换配置好的文件。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +