• CentOS下配置nginx conf/koi-win为同一文件的各类错误


    今天配置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 
    [root@unique nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
    #方法2 
    [root@unique nginx]# cd /usr/local/nginx/sbin 
    [root@unique sbin]# ./nginx

    停止nginx

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

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

    #强制停止  pkill -9 nginx

    重启nginx

    [root@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启动停止脚本

    [root@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


    给文件添加执行权限

    [root@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
    [root@unique init.d]# /etc/init.d/nginx restart
    Restarting nginx daemon: nginx.

    扩展:配置开机启动

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

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


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

  • 相关阅读:
    top-adx-apps
    mac 打印机无法打印
    doubleclick-video-skipable
    微信小程序-基础学习
    uniapp-学习总结1
    react-1
    mysql-1
    jenkins-1
    后台管理系统-1
    微信小程序-父子组件通信
  • 原文地址:https://www.cnblogs.com/neco/p/6143130.html
Copyright © 2020-2023  润新知