发布时间:2023-04-16 10:30
nginx 安装与卸载
一.安装
尽量先安装gcc
yum install -y gcc gcc-c++
nginx依赖以下模块:
gzip模块需要 zlib 库
rewrite模块需要 pcre 库
ssl 功能需要openssl库
1.1.安装pcre
1.获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本
2.解压缩pcre-xx.tar.gz包。
3.进入解压缩目录,执行./configure。
4.make & make install
1.2.安装openssl
1.获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。2.解压缩openssl-xx.tar.gz包。
3.进入解压缩目录,执行./config。
4. make & make install
1.3.安装zlib
1.获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。
2. 解压缩openssl-xx.tar.gz包。
3. 进入解压缩目录,执行./configure。
4. make & make install
另一种安装方式,指定了目录
$ cd pcre-8.43
$ ./configure --prefix=/home/wlf/pcre
$ make && make install
$ cd …
$ unzip soft/zlib-1.2.11
$ cd zlib-1.2.11
$ ./configure --prefix=/home/wlf/zlib
$ make && make install
1.4.安装nginx
获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。2. 解压缩nginx-xx.tar.gz包。
进入解压缩目录,执行./configure
make & make install
若安装时找不到上述依赖模块,使用–with-openssl=
如已安装过,此处的路径为安装目录;
若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。
eg:
$ ./configure --prefix=/home/wlf/nginx --with-http_stub_status_module --with-pcre=/home/wlf/pcre-8.43 --with-zlib=/home/wlf/zlib-1.2.11
其中参数http_stub_status_module是开启stub_status模块,它主要用于查看Nginx的一些状态信息。后面两个用来指定两个依赖的源码目录.
注意: 如不指定prefix则默认安装在了/usr/local/nginx下,这是root目录,普通用户没有创建文件夹等权限,需要sudo启动,sudo停止
1.5.尚学堂一键安装依赖教程
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
其中没有安装pcre.因为是演示压缩包安装的
1.6.遇到的问题
./configure --prefix=/usr/local/pcre 出现以下错误
configure: error: You need a C++ compiler for C++ support
正解
yum install -y gcc gcc-c++
centos安装nginx 报错:cp: conf/koi-win\' and
/usr/local/nginx/conf/koi-win’ are the same file
解决办法 将这一步改一下./configure --prefix=/usr/local/nginx TO./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf
$ sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
1报错原因:在linux下,普通用户只能用1024以上的端口,而1024以内的端口只能由root用户才可以使用,所以这里80端口只能由root才能使用。 我们通过vi修改下配置文件conf/nginx.conf,将端口改成8787:
2nginx内核 超过2.1版本以后 出现了能力的说法
我们可以给/usr/local/nginx/sbin/nginx 赋予监听80端口的权限能力
setcap cap_net_bind_service =+ep /usr/local/nginx/sbin/nginx
3 对nginx 脚本文件执行
chown root nginx
chmod u+s nginx
4 还有端口映射
/home/mock/opt/nginx/html/index.html\" is forbidden (13: Permission denied)
解决办法: 启动用户是root而工作用户是nobody
ps aux | grep “nginx: worker process” | awk’{print $1}’[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1ce1Nlo-1581055541658)(en-resource://database/3037:0)]
1.2将nginx.config的user改为和启动用户一致,命令:vi conf/nginx.conf
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1J9y1svG-1581055541664)(en-resource://database/3041:0)]
执行重启 ./nginx -s reload
1.7.常用命令
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 重现加载
二 .卸载
方法1
删除nginx目录即可rm -rf /opt/nginx(rm -rf /usr/local/nginx)
如果配置了自启动,也需要删除
方法2
yum remove nginx