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,前方必然有坑。容我慢慢趟來……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM