文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

linux安装nginx详细步骤和make编译报错问题(保姆级)

2023-09-09 07:10

关注

目录

1.安装依赖包

2.下载并解压安装包

3.安装nginx

3-1.源码编辑时常见错误解决方法

4.启动nginx服务

4-1.配置nginx.conf

5.重启nginx

6.若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为上一步nginx.conf的配置端口

 


1.安装依赖包

//一键安装依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2.下载并解压安装包

//cd进入/usr/local文件目录cd /usr/local//创建一个nginx文件夹mkdir nginx//cd进入nginx文件cd nginx//下载tar包wget http://nginx.org/download/nginx-1.13.7.tar.gz//下载好进行解压命令tar -xvf nginx-1.13.7.tar.gz

3.安装nginx

//进入nginx目录cd /usr/local/nginx//进入目录cd nginx-1.13.7//执行命令 考虑到后续安装ssl证书 添加两个模块./configure --with-http_stub_status_module --with-http_ssl_module//执行make命令make//执行make install命令make install

        3-1.源码编辑时常见错误解决方法

执行上面编译命令make报错的源码我把他整理了一下,当执行make报错时先不要慌。先看下我标红的报错源码,基本就是报我下面标红的。然后进行相应的解决方法操作就好啦。

报错:

make -f objs/Makefile

make[1]: Entering directory '/home/zyz/nginx-1.12.0'

cd ../pcre-8.37/ \

&& if [ -f Makefile ]; then make distclean; fi \

&& CC="cc" CFLAGS="-O2 -fomit-frame-pointer -pipe " \

./configure --disable-shared 

/bin/sh -3: permission deny

解决方法:

经过一番分析发现是pcre-8.37 和openssl-1.1.0h库中的configure文件和config文件默认无执行权限,果断进入 两个库文件夹,执行chmod 777 configure  ;   chmod 777 config

于是乎make,开始大量编译...

过了一会儿,又报了另外一个错误!

src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
   37 |         h ^= data[2] << 16;
      |         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
   38 |     case 2:
      |     ^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
   39 |         h ^= data[1] << 8;
      |         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
   40 |     case 1:
      |     ^~~~
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:482:objs/src/core/ngx_murmurhash.o] 错误 1
make[1]: 离开目录“/home/zyz/nginx-1.12.0”
make: *** [Makefile:8:build] 错误 2

解决方法:

进入安装的nginx-1.13.7/objs/Makefile,打开Makefile文件将编译选项中的CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter  -werror -g中的“-werror"删除。(在直接用make编译,到了这一步就没有报错了)

###-werror是将警告对待成错误(warning treated as  error)。

继续进行编译...

又报错误了。。。

如下:

src/os/unix/ngx_user.c: In function ‘ngx_libc_crypt’:
src/os/unix/ngx_user.c:36:7: error: ‘struct crypt_data’ has no member named ‘current_salt’
   36 |     cd.current_salt[0] = ~salt[0];
      |       ^
make[1]: *** [objs/Makefile:797:objs/src/os/unix/ngx_user.o] 错误 1
make[1]: 离开目录“/home/zyz/nginx-1.12.0/nginx-1.12.0”
make: *** [Makefile:8:build] 错误 2

解决方法:

经过百度发现需要进入../src/os/unix/ngx_user.c中进行源码修改。

只需要注释第36行代码即可。


继续进行编译...

编译完成!

sed -e "s|%%PREFIX%%|/home/zyz/nginx1.12.0/|" \
    -e "s|%%PID_PATH%%|/home/zyz/nginx1.12.0//logs/nginx.pid|" \
    -e "s|%%CONF_PATH%%|/home/zyz/nginx1.12.0//conf/nginx.conf|" \
    -e "s|%%ERROR_LOG_PATH%%|/home/zyz/nginx1.12.0//logs/error.log|" \
    < man/nginx.8 > objs/nginx.8
make[1]: 离开目录“/home/zyz/nginx-1.12.0”

安装

make install

root@zyz:/home/zyz/nginx-1.12.0# make install
make -f objs/Makefile install
make[1]: 进入目录“/home/zyz/nginx-1.12.0”
test -d '/home/zyz/nginx1.12.0/' || mkdir -p '/home/zyz/nginx1.12.0/'
test -d '/home/zyz/nginx1.12.0//sbin' \
    || mkdir -p '/home/zyz/nginx1.12.0//sbin'
test ! -f '/home/zyz/nginx1.12.0//sbin/nginx' \
    || mv '/home/zyz/nginx1.12.0//sbin/nginx' \
        '/home/zyz/nginx1.12.0//sbin/nginx.old'
cp objs/nginx '/home/zyz/nginx1.12.0//sbin/nginx'
test -d '/home/zyz/nginx1.12.0//conf' \
    || mkdir -p '/home/zyz/nginx1.12.0//conf'
cp conf/koi-win '/home/zyz/nginx1.12.0//conf'
cp conf/koi-utf '/home/zyz/nginx1.12.0//conf'
cp conf/win-utf '/home/zyz/nginx1.12.0//conf'
test -f '/home/zyz/nginx1.12.0//conf/mime.types' \
    || cp conf/mime.types '/home/zyz/nginx1.12.0//conf'
cp conf/mime.types '/home/zyz/nginx1.12.0//conf/mime.types.default'
test -f '/home/zyz/nginx1.12.0//conf/fastcgi_params' \
    || cp conf/fastcgi_params '/home/zyz/nginx1.12.0//conf'
cp conf/fastcgi_params \
    '/home/zyz/nginx1.12.0//conf/fastcgi_params.default'
test -f '/home/zyz/nginx1.12.0//conf/fastcgi.conf' \
    || cp conf/fastcgi.conf '/home/zyz/nginx1.12.0//conf'
cp conf/fastcgi.conf '/home/zyz/nginx1.12.0//conf/fastcgi.conf.default'
test -f '/home/zyz/nginx1.12.0//conf/uwsgi_params' \
    || cp conf/uwsgi_params '/home/zyz/nginx1.12.0//conf'
cp conf/uwsgi_params \
    '/home/zyz/nginx1.12.0//conf/uwsgi_params.default'
test -f '/home/zyz/nginx1.12.0//conf/scgi_params' \
    || cp conf/scgi_params '/home/zyz/nginx1.12.0//conf'
cp conf/scgi_params \
    '/home/zyz/nginx1.12.0//conf/scgi_params.default'
test -f '/home/zyz/nginx1.12.0//conf/nginx.conf' \
    || cp conf/nginx.conf '/home/zyz/nginx1.12.0//conf/nginx.conf'
cp conf/nginx.conf '/home/zyz/nginx1.12.0//conf/nginx.conf.default'
test -d '/home/zyz/nginx1.12.0//logs' \
    || mkdir -p '/home/zyz/nginx1.12.0//logs'
test -d '/home/zyz/nginx1.12.0//logs' \
    || mkdir -p '/home/zyz/nginx1.12.0//logs'
test -d '/home/zyz/nginx1.12.0//html' \
    || cp -R html '/home/zyz/nginx1.12.0/'
test -d '/home/zyz/nginx1.12.0//logs' \
    || mkdir -p '/home/zyz/nginx1.12.0//logs'
make[1]: 离开目录“/home/zyz/nginx-1.12.0”

4.启动nginx服务

两种启动方式:

命令cd /usr/local/nginx/sbin到目录执行:./nginx

 或者执行:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

4-1.配置nginx.conf

 //打开配置文件 vi /usr/local/nginx/conf/nginx.conf

将端口号改成8089(随便挑个端口),因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。将localhost修改为你服务器的公网ip地址。

5.重启nginx

/usr/local/nginx/sbin/nginx -s reload

6.若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为上一步nginx.conf的配置端口

centOS6及以前版本使用命令: systemctl stop iptables.service

centOS7关闭防火墙命令: systemctl stop firewalld.service

关闭防火墙会导致服务器有一定风险,所以建议是单独开放服务端口 :
开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

查询端口号80 是否开启:

firewall-cmd --query-port=80/tcp

重启防火墙:

firewall-cmd --reload 

随后访问该ip:端口 即可看到nginx界面。

7.访问服务器ip查看(备注,由于我监听的仍是80端口,所以ip后面的端口号被省略)

安装完成一般常用命令
进入安装目录中

命令: cd /usr/local/nginx/sbin

启动,关闭,重启,命令:

./nginx 启动./nginx -s stop 关闭./nginx -s reload 重启 

来源地址:https://blog.csdn.net/weixin_69306012/article/details/126777396

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯