Centos7 搭建好lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)后,nginx和PHP相关的配置弄好能够正常访问页面了,之后重启下服务器,页面有访问不了了。排查后发现nginx和PHP服务都没有启动,只有mysql服务启动的,启动nginx和PHP服务后页面正常访问了。但这不行呀!总不能每次服务器重启都手动,太坑了。于是我就弄nginx和PHP自启动,nginx还好弄,PHP搞了我两个多小时才搞定,找了很多种方法都不行。不啰嗦了,下面把具体的方法写下来:
一、nginx自启动
1)系统服务目录【/lib/systemd/system/】里创建nginx.service文件;如果已经有了就不用再创建了,直接下一步。
创建nginx.service文件# vim /lib/systemd/system/nginx.service
添加内容如下:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
保存退出
这个是我安装nginx时自动在系统服务目录下生成的
2)设置开机启动# systemctl enable nginx.service
执行设置开机启动命令不报错的话,就是成功设置了,重启服务器nginx服务也自动启动了;如果报错的话就具体找解决问题。
二、PHP自启动
1)拷贝配置文件,这一步在搭建环境安装PHP的时候已经完成
查看php-fpm.conf配置文件pid是否为/run/php-fpm.pid,不是的话改下# vim /usr/local/php/etc/php-fpm.conf
2)在系统服务目录【/lib/systemd/system/】里创建php-fpm.service文件;如果已经有了就不用再创建了,直接下一步。
创建php-fpm.service文件# vim /etc/systemd/system/php-fpm.service
添加内容如下:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
3)设置开机启动# systemctl enable php-fpm.service
执行设置开机启动命令不报错的话,就是成功设置了,重启服务器nginx服务也自动启动了;如果报错的话就具体找解决问题。
三、服务命令
1)启动服务# systemctl start xxx.service
2)设置开机自启动# systemctl enable xxx.service
3)停止开机自启动# systemctl disable xxx.service
4)查看服务当前状态# systemctl status xxx.service
5)重新启动服务# systemctl restart nginx.service
6)查看所有已启动的服务# systemctl list-units --type=service
注:xxx代表对应服务,如nginx、PHP
总结下:
创建service文件添加内容,启动服务和设置开机自启动失败,主要是添加的内容[Service]下面的那些值要跟自己安装的服务路径对应上,否则肯定会失败。搞PHP自启动的时候弄了那么久,就是找了很多php-fpm.service文件内容跟自己安装的PHP相关路径没对应,也不太清楚怎样才能对应,最后找到一根PHP的文章才搞定,他文章里安装PHP7的那些路径跟我安装PHP7的路径类似,看后才恍然大悟。希望对需要的同学有所帮助