nginx安装报错

来源:互联网 发布:php strcmp strncmp 编辑:程序博客网 时间:2024/05/29 08:32

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

 

原创粉丝点击