背景
下载Nginx安装包,编译安装。
安装目录:/usr/local/nginx
配置文件:/usr/local/nginx/conf/nginx.conf
创建/etc/init.d/nginx文件
在Nginx官网上的NGINX Init Scripts选择启动脚本,我这里是CentOS系统,选择 Red Hat NGINX Init Script, 将脚本拷贝到/etc/init.d/nginx
设置/etc/init.d/nginx访问权限
# !bin/bash
#(a+x参数表示 ==> all user can execute 所有用户可执行)
chmod a+x /etc/init.d/nginx
创建软连接
仔细观察脚本,脚本里面的nginx的相关路径与本机安装的路径不一致。
nginx文件 | 本机路径 | 脚本路径 |
---|---|---|
nginx执行文件 | /usr/bin/nginx | /usr/sbin/nginx |
nginx.conf配置文件 | /usr/local/nginx/conf/nginx.conf | /etc/nginx/nginx.conf |
根据以上路径的不同创建软连接
# !bin/bash
ln -s /usr/bin/nginx /usr/sbin/nginx
ln -sfn /usr/local/nginx/conf/ /etc/nginx/
设置开机默认启动
# !bin/bash
vi /etc/rc.local
添加 /etc/init.d/nginx start
执行service nginx start
命令出错
1、 Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details
执行killall -9 nginx
关闭nginx服务即可
2、一直卡在`Starting nginx (via systemctl)
# !bin/bash
# 查看原因
service nginx status
提示:Can't open PID file /run/nginx.pid (yet?) after start: ...ctory
# 修改nginx.conf中的pid
pid /etc/nginx/logs/nginx.pid;
# 创建nginx.pid
cd /etc/nginx && mkdir logs && touch logs/nginx.pid
# 替换 /lib/systemd/system/nginx.service 文件中的/run/nginx.pid,替换为/etc/nginx/logs/nginx.pid
# 执行命令
systemctl daemon-reload
# 关闭nginx服务
killall -9 nginx
# 正常开启服务
service nginx start