from:http://www.cnblogs.com/neco/p/6143130.html
今天配置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/opt/nginx --with-pcre=/usr/local/opt/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/opt/nginx --conf-path=/usr/local/opt/nginx/conf/nginx.conf --with-pcre=/usr/local/opt/pcre
终于在默念天灵灵地灵灵装好系统行不行的诚恳祷告下,make && make install成功了。以下部分转载自阿里云,并经过实际测试:
接下来启动nginx
1 2 3 4 5 | <code class= "hljs groovy" > #方法<span class="hljs-number">1 [root<span class= "hljs-annotation" >@unique nginx] # <span class="hljs-regexp">/usr/local<span class="hljs-regexp">/nginx/sbin<span class="hljs-regexp">/nginx -c /usr<span class="hljs-regexp">/local/nginx<span class="hljs-regexp">/conf/nginx.conf #方法<span class="hljs-number">2 [root<span class= "hljs-annotation" >@unique nginx] # cd <span class="hljs-regexp">/usr/local<span class="hljs-regexp">/nginx/sbin [root<span class= "hljs-annotation" >@unique sbin] # ./nginx</span></span></span></span></span></span></span></span></span></span></span></span></code> |
停止nginx
1 2 3 4 5 6 7 8 | <code class= "hljs vala" ><span class= "hljs-preprocessor" > #查询nginx主进程号 ps -ef | grep nginx<br> <span class= "hljs-preprocessor" > #停止进程 kill -QUIT 主进程号(我的是27854) <br><br><span class= "hljs-preprocessor" > #快速停止 kill -TERM 主进程号(我的是2993) <br><br><span class= "hljs-preprocessor" > #强制停止 pkill -<span class= "hljs-number" >9 nginx< /span >< /span >< /span >< /span >< /span >< /code > |
重启nginx
1 | <code class= "hljs groovy" >[root<span class= "hljs-annotation" >@unique sbin] # <span class="hljs-regexp">/usr/local<span class="hljs-regexp">/nginx/sbin/nginx -s reload</span></span></span></code><br><br>这个时候如果出现nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed<br><br>想必是需要:<br><br>/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf<br><br>继续<br><br>/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
测试nginx
1 2 3 4 | <code class= "hljs vala" ><span class= "hljs-preprocessor" > #测试端口 netstat –na| grep <span class= "hljs-number" >80 <span class= "hljs-preprocessor" > #浏览器中测试 http:<span class= "hljs-comment" > //ip :80< /span >< /span >< /span >< /span >< /code > |
做一个自定义的nginx启动停止脚本
1 | <code class= "hljs coffeescript" >[root<span class= "hljs-property" >@unique sbin]<span class= "hljs-comment" > # vi /etc/init.d/nginx</span></span></code> |
把下面的脚本复制进去然后保存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <code class= "hljs bash" ><span class= "hljs-shebang" > #! /bin/sh <span class= "hljs-comment" > # Default-Start: 2 3 4 5 <span class= "hljs-comment" > # Default-Stop: 0 1 6 <span class= "hljs-comment" > # Short-Description: starts the nginx web server PATH= /usr/ <span class= "hljs-built_in" > local /sbin : /usr/ <span class= "hljs-built_in" > local /bin : /sbin : /bin : /usr/sbin : /usr/bin DESC=<span class= "hljs-string" > "nginx daemon" NAME=nginx DAEMON= /usr/ <span class= "hljs-built_in" > local /nginx/sbin/ <span class= "hljs-variable" >$NAME CONFIGFILE= /usr/ <span class= "hljs-built_in" > local /nginx/conf/ <span class= "hljs-variable" >$NAME.conf PIDFILE= /usr/ <span class= "hljs-built_in" > local /nginx/logs/ <span class= "hljs-variable" >$NAME.pid SCRIPTNAME= /etc/init .d/<span class= "hljs-variable" >$NAME <span class= "hljs-built_in" > set <span class= "hljs-operator" >-e [ -x <span class= "hljs-string" > "<span class=" hljs-variable ">$DAEMON" ] || <span class= "hljs-built_in" > exit <span class= "hljs-number" >0 <span class= "hljs-function" ><span class= "hljs-title" >do_start() { <span class= "hljs-variable" >$DAEMON -c <span class= "hljs-variable" >$CONFIGFILE || <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "nginx already running" } <span class= "hljs-function" ><span class= "hljs-title" >do_stop() { <span class= "hljs-built_in" > kill -INT ` cat <span class= "hljs-variable" >$PIDFILE` || <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "nginx not running" } <span class= "hljs-function" ><span class= "hljs-title" >do_reload() { <span class= "hljs-built_in" > kill -HUP ` cat <span class= "hljs-variable" >$PIDFILE` || <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "nginx can't reload" } <span class= "hljs-keyword" > case <span class= "hljs-string" > "<span class=" hljs-variable ">$1" <span class= "hljs-keyword" > in start) <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "Starting <span class=" hljs-variable ">$DESC: <span class=" hljs-variable ">$NAME" <span class= "hljs-keyword" >do_start <span class= "hljs-built_in" > echo <span class= "hljs-string" > "." ;; stop) <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "Stopping <span class=" hljs-variable ">$DESC: <span class=" hljs-variable ">$NAME" <span class= "hljs-keyword" >do_stop <span class= "hljs-built_in" > echo <span class= "hljs-string" > "." ;; reload|graceful) <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "Reloading <span class=" hljs-variable ">$DESC configuration..." <span class= "hljs-keyword" >do_reload <span class= "hljs-built_in" > echo <span class= "hljs-string" > "." ;; restart) <span class= "hljs-built_in" > echo -n <span class= "hljs-string" > "Restarting <span class=" hljs-variable ">$DESC: <span class=" hljs-variable ">$NAME" <span class= "hljs-keyword" >do_stop <span class= "hljs-keyword" >do_start <span class= "hljs-built_in" > echo <span class= "hljs-string" > "." ;; *) <span class= "hljs-built_in" > echo <span class= "hljs-string" > "Usage: <span class=" hljs-variable ">$SCRIPTNAME {start|stop|reload|restart}" >&<span class= "hljs-number" >2 <span class= "hljs-built_in" > exit <span class= "hljs-number" >3 ;; <span class= "hljs-keyword" > esac <span class= "hljs-built_in" > exit <span class= "hljs-number" >0< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /span >< /code ><br><br><br> |
给文件添加执行权限
1 2 3 4 5 6 7 8 9 | <code class= "hljs vala" >[root@unique sbin] # chmod +x /etc/init.d/nginx <span class= "hljs-preprocessor" > #然后可以通过 <span class= "hljs-preprocessor" > #/etc/init.d/nginx start 命令启动nginx <span class= "hljs-preprocessor" > #/etc/init.d/nginx stop 命令停止nginx <span class= "hljs-preprocessor" > #/etc/init.d/nginx restart 命令重启nginx <span class= "hljs-preprocessor" > #重启nginx [root@unique init.d] # /etc/init.d/nginx restart Restarting nginx daemon: nginx.< /span >< /span >< /span >< /span >< /span >< /code > |
扩展:配置开机启动
如果需要开机启动服务,保存好 /etc/init.d/nginx文件后,执行以下命令:
1 2 | <code class= "hljs coffeescript" >[root<span class= "hljs-property" >@unique init.d]<span class= "hljs-comment" > #chkconfig --add ningx [root<span class= "hljs-property" >@unique init.d]<span class= "hljs-comment" > #chkconfig --level nginx 2345 on</span></span></span></span></code> |
1 | <br><br> |
于是,我开始配置php和mysql,前方必然有坑。容我慢慢趟来……