一、Linux系统中服务启动方式
以启动
php-fpm
为例:一种常见的服务启动方式是:/etc/init.d/php-fpm start
Linux中的/etc/init.d
目录包含许多系统各种服务的启动和停止脚本,上述方式通过调用脚本的方式来启动服务,当然,事先要赋予该脚本可执行权限
第二种服务启动方式是利用
systemd
来启动:systemctl start php-fpm
,相比于第一种传统的方式,这种启动服务的方式更加便捷、快速,且能够设置开机自启。使用了systemd
,就不需要再用init了。systemd 取代了initd
,成为系统的第一个进程(PID 等于 1
),其他进程都是它的子进程。
二、php启动方式设定
1.脚本启动
cd /root/php-7.4.12/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm %复制服务脚本到/etc/init.d目录下
chmod +x /etc/init.d/php-fpm %为该脚本添加可执行权限
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf %复制php-fpm服务的配置文件模板,创建新的配置文件并根据需求做相应修改
vim php-fpm.conf
打开global中下面一行的注释:
pid=run/php-fpm.pid %指定pid的存放目录
cd /usr/local/php/etc/php-fpm.d
cp www.conf.default www.conf %复制另外一个相关配置文件模板并编辑
vim www.conf %可以不用改,可能需要改的地方是启动的进程数,具体多少要根据生产环境来确定
cd /root/php-7.4.12
cp php.ini-production /usr/local/php/etc/php.ini %复制php主配置文件到php的配置目录下,用于开发和生产,注意配置文件的命名方式必须要是php-ini
/etc/init.d/php-fpm start %启动
ps -aux %查看后台是否有相关进程
netstat -antulp %查看是否开启相关端口
2.使用systemd启动
chkconfig --level 35 php-fpm on %设置开机自启的另外一种方式
chkconfig --list php-fpm %查看chkconfig的一些参数
cd /root/php-7.4.12/
/etc/init.d/php-fpm stop %使用脚本停止之前的php-fpm,后续测试使用systemctl方式启动
cd /root/php-7.4.12/sapi/fpm/
cp php-fpm.service /usr/lib/systemd/system
cd /usr/lib/systemd/system
vim php-fpm.service %编辑配置文件,注释掉保护机制
systemctl daemon-reload
systemctl start php-fpm.service %启动服务
三、Nginx启动方式设定
这里我们直接展示如何设置
systemd
启动方式,/etc/init.d
脚本启动方式不再配置
cd /usr/local/nginx/conf/
vim nginx.conf %编辑主配置文件
diff fastcgi.conf fastcgi_params %查看文件的不同
nginx %启动nginx
cd /etc/systemd/system/
cd /usr/lib/systemd/system
vim nginx.service %编辑配置文件
systemctl daemon-reload %重载daemon,让systemd后台能够识别到更改
nginx -s stop %停止nginx
systemctl start nginx %systemctl方式启动nginx
systemctl enable nginx %设置开机自启
下面设置表示默认访问index.php页面,如果没有再访问html页面:
由于fastcgi.conf已经包含了fastcgi_params,因此只要include fastcgi.conf文件即可:
systemd 默认从目录
/etc/systemd/system/
读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/
,真正的配置文件存放在那个目录。systemctl enable
命令用于在上面两个目录之间,建立符号链接关系。
四、nginx与php结合测试
cd /usr/local/nginx/html/ %进入到nginx的默认发布目录,编写php测试页面
vim index.php
<?php
phpinfo()
?>
cd /usr/local/php/etc/
vim php.ini %编辑php的配置文件做访问测试
systemctl reload php-fpm.service %reload php-fpm服务
访问nginx服务器ip可以看到如下php info页面: