设为首页 收藏本站
查看: 983|回复: 0

[经验分享] CentOS下配置nginx conf/koi-win为同一文件的各类错误

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-23 06:18:28 | 显示全部楼层 |阅读模式
  今天配置CentOS6.5下安装Nginx + php7 + mysql5.7.15遇到了一些坑。本来家里的电脑在配置环境的时候没有问题,拿去公司的电脑上就是到处报错。不知道是不是人品问题。今晚在家重装了一个centos,安装之后进行了全部yum update。本来以为上午的问题可能是没有更新软件,图样图森破。下面总结一下今晚对nginx部分的心得。
  因为PCRE本来是用在nginx重写rewrite的时候,解析正则的正则解析库,所以在安装nginx之前,默默的先装上基本应用:
  yum -y install gcc automake autoconf libtool gcc-c++ gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel pcre pcre-devel
  ok,现在下载并解压:
  wget http://nginx.org/download/nginx-1.10.1.tar.gz
  tar zxvf nginx-1.10.1
  

  cd nginx-1.10.1
  

  ./configure --prefix=/usr/local/nginx
  通过find,知道了pcre默认安装在/usr/local/nginx/auto/lib/pcre,那么,
  ./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/nginx/auto/lib/pcre
  接下来就是一轮报错:
  1.发生错误为:
  make[2]: *** 没有规则可以创建目标“distclean”。 停止。
  网上看到的办法一一做了尝试:
  ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/include/openssl   --user=www --group=www
  2.发生错误为:
  "conf/koi-win" 与"/usr/local/nginx/conf/koi-win" 为同一文件
  据说这是因为防火墙的原因。我又关了防火墙重启:
  vi + /etc/sysconfig/iptables
  #添加配置项
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  #重启防火墙
  service iptables restart
  3.接着出现:
  nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
  #0: getpwnam("www") failed
  喝喝。现在log不能打开,网上说,这是nginx已经运行,被执行启动,这个不算致命错误;
  然后就没有了!!!
  好吧我杀进程,总算不在运行了吧:
  kill -9 nginx
  4.再次make && make install ,亲人,胡汉三我又回来了!
  cp: `conf/koi-win’ and `/usr/local/nginx/conf/koi-win’ 为同一文件。
  所以上面这一切都是在逗我咯?
  好吧。仔细翻了一下,nginx/conf/koi-win,和/usr/local/nginx/conf/kol-win,终于在阿里云上面找到了答案,路径的问题嘛
  ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf
  终于在默念天灵灵地灵灵装好系统行不行的诚恳祷告下,make && make install成功了。以下部分转载自阿里云,并经过实际测试:

接下来启动nginx
  

#方法1  
[iyunv@unique nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  
#方法2
  
[iyunv@unique nginx]# cd /usr/local/nginx/sbin
  
[iyunv@unique sbin]# ./nginx
  

停止nginx
  

#查询nginx主进程号  
ps -ef | grep nginx
  
#停止进程
  
kill -QUIT 主进程号(我的是27854)
  

  #快速停止
  
kill -TERM 主进程号(我的是2993)
  

  #强制停止
  
pkill -9 nginx
  

重启nginx
  

[iyunv@unique sbin]# /usr/local/nginx/sbin/nginx -s reload  这个时候如果出现nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
  想必是需要:
  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  继续
  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  

测试nginx
  

#测试端口  
netstat –na|grep 80
  
#浏览器中测试
  
http://ip:80
  

  做一个自定义的nginx启动停止脚本
  

[iyunv@unique sbin]# vi /etc/init.d/nginx  

  把下面的脚本复制进去然后保存
  

#! /bin/sh  
# Default-Start:     2 3 4 5
  
# Default-Stop:      0 1 6
  
# Short-Description: starts the nginx web server
  

  
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  
DESC="nginx daemon"
  
NAME=nginx
  
DAEMON=/usr/local/nginx/sbin/$NAME
  
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
  
PIDFILE=/usr/local/nginx/logs/$NAME.pid
  
SCRIPTNAME=/etc/init.d/$NAME
  

  
set -e
  
[ -x "$DAEMON" ] || exit 0
  

  
do_start() {
  
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
  
}
  

  
do_stop() {
  
kill -INT `cat $PIDFILE` || echo -n "nginx not running"
  
}
  

  
do_reload() {
  
kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
  
}
  

  
case "$1" in
  
start)
  
echo -n "Starting $DESC: $NAME"
  
do_start
  
echo "."
  
;;
  
stop)
  
echo -n "Stopping $DESC: $NAME"
  
do_stop
  
echo "."
  
;;
  
reload|graceful)
  
echo -n "Reloading $DESC configuration..."
  
do_reload
  
echo "."
  
;;
  
restart)
  
echo -n "Restarting $DESC: $NAME"
  
do_stop
  
do_start
  
echo "."
  
;;
  
*)
  
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
  
exit 3
  
;;
  
esac
  

  
exit 0
  

  给文件添加执行权限
  

[iyunv@unique sbin]# chmod +x /etc/init.d/nginx  
#然后可以通过
  
#/etc/init.d/nginx start 命令启动nginx
  
#/etc/init.d/nginx stop 命令停止nginx
  
#/etc/init.d/nginx restart 命令重启nginx
  

  
#重启nginx
  
[iyunv@unique init.d]# /etc/init.d/nginx restart
  
Restarting nginx daemon: nginx.
  


扩展:配置开机启动
  如果需要开机启动服务,保存好 /etc/init.d/nginx文件后,执行以下命令:
  

[iyunv@unique init.d]#chkconfig --add ningx  
[iyunv@unique init.d]#chkconfig --level nginx 2345 on
  

  

  于是,我开始配置php和mysql,前方必然有坑。容我慢慢趟来……

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-427032-1-1.html 上篇帖子: Ubuntu16.04安装Nginx+PHP5.6+MySQL5.6 下篇帖子: Nginx-ngx_lua模块原理和内置函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表