Linux运维学习笔记:nginx系列之01:nginx源码包安装实验
作者:周少言
2017年 12月 18日 星期一 ,于北京
声明:本博客是本人周少言在某培训机构学习期间所写,其中参考借鉴了他人的博客,本文将会选择性给出相关链接,如有侵权,恳请告知。本文如有错误,恳请告知,欢迎交流。
安装依赖包
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
添加用户名
useradd -M -s /sbin/nologin nginx
安装
准备资源
下载nginx源码包,本文实验所用源码包版本是nginx-1.2.6.tar.gz.
下载nginx启动脚本
链接:https://pan.baidu.com/s/1eTFWyCM 密码:06zh
#!/bin/bash
#chkconfig:2345 99 20
#description:Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG -t &> /dev/null
if [ $? -eq 0 ] ; then
$PROG
echo "Nginx Service Start Success."
else
$PROG -t
fi
;;
stop)
kill -s QUIT $(cat $PIDF)
echo "Nginx Service Stop Success."
;;
restart)
$0 stop
$0 start
;;
reload)
$PROG -t &> /dev/null
if [ $? -eq 0 ] ; then
kill -s HUP $(cat $PIDF)
echo "Reload Nginx Config Success."
else
$PROG -t
fi
;;
*)
echo "请在 Nginx + ( start / stop / restart / reload )"
exit 1
esac
用lrzsz将两文件拖拽到/root目录下
安装
tar xf /root/nginx-1.2.6.tar.gz
cd nginx-1.2.6
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
简单配置
nginx启动脚本
cp -a /root/nginx /etc/init.d/
chmod 777 /etc/init.d/nginx
service nginx start
chkconfig --add nginx
chkconfig nginx on
拷贝 Nginx 启动脚本到 /etc/init.d/ 目录下
给 Nginx 启动脚本赋予权限
开启 Nginx 服务
将 Nginx 服务添加至启动自启管理中
设置 Nginx 开机自启动
(**小提示:为了提高效率,可以将本文贴出的每一个代码块整体复制粘贴在xshell上,命令将会逐条执行。)
说明: 至此 Nginx 的安装已经完成, Nginx 的配置文件的路径在安装目录的 conf/ 下, 与 Apache 的主程序 httpd 类似, Nginx 的主程序也提供了 -t 的选项来用来对配置文件进行检查。
nginx服务管理,可网上获取,或者参考:nginx启动脚本
通过 nginx 脚本来启动、 停止、 重启 Nginx 服务器
service nginx start
service nginx stop
service nginx restart
service nginx reload
检查成功方式: 通过浏览器访问你的机器的 IP 地址, 出现 Welcome to nginx ! 即成功
报错
如果出现了以下报错
[root@localhost ~]# service nginx start
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
Nginx Service Start Success.
则是80端口被占用
解决办法
netstat -tlunp |grep :80
pkill httpd
chkconfig httpd off
根据netstat返回的结果杀死占用80端口的进程或者正常关闭apache/httpd