目录

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行代码即可。

/* cd.current_salt[0] = ~salt[0];*/
继续进行编译...

编译完成!

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 重启 

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

  1. Linux安装nginx详细步骤

    1.安装依赖包 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.下载并解压安装包 ...

  2. Linux 安装 nginx 详细教程

    文章目录 Linux 安装 nginx 详细步骤 ①安装依赖包 ②下载并解压安装包 ③安装 nginx ④启动 nginx 服务 ⑤nginx 反向代理 提示:以下是本篇文章正文内容,Linux 系列 ...

  3. Linux安装mysql详细步骤

    linux安装mysql详细步骤 最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: Cen ...

  4. Linux oracle 如何安装,Linux 安装Oracle详细步骤

    今天爱分享给大家带来Linux 安装Oracle详细步骤,希望对大家能够有所帮助. 1.环境准备 注意:当前Linux为CentOS-6.10-x86_64-bin-DVD1.iso 界面:使用图形界 ...

  5. kali linux 安装 Mysql Can‘t read from messagefile 报错解决方案

    kali linux 安装 Mysql Can't read from messagefile 报错解决方案 参考文章: (1)kali linux 安装 Mysql Can't read from ...

  6. [Linux Audio Driver] 移植外部CODEC常见编译报错解决(持续更新)

    0. 背景 最近一直在调试codec芯片,好多代码FAE给的和平台不适配,比如结构体改了之类的,一些编译问题老是忘记,就想着顺手写下总结. 1. function definition is not ...

  7. Linux编译安装nginx详细步骤

    首先为什么linux有些软件需要编译安装(相对于rpm安装:包yum安装:仓库,这两个安装来说真的有些繁琐)? 为什么服务器软件需要编译安装?一个流传很广的说法是编译安装性能更好,其实这是个谣言 服务 ...

  8. Linux下安装nginx详细步骤

    1.安装nginx前首先安装四个依赖包 --以下命令一键安装四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-dev ...

  9. linux下安装nginx详细步骤_mac下安装nginx

    前言:nginx的强大不必多言,所以很自然很应当的我也来玩一玩.但是网上许多安装和配置都太那啥了,在这里真的想说一句带有引战性质但我真的无意引战的言论:现在的好多程序员的文笔实在是烂,写的教程让人着实 ...

最新文章

  1. 项目性能优化(页面静态化2)
  2. Struts2 分割字符串标签s:generator
  3. [转]ExtJS Grid 分页时保持选中的简单实现方法
  4. JavaScript模板引擎Template.js基本使用详解
  5. c++ 设置类型别名
  6. 【转贴】Oracle查询重复数据与删除重复记录方法
  7. ASP.NET开发学习视频教程大全(共800集)
  8. 2019PHP最新简历
  9. 腾讯通rtx中心服务器,腾讯通(RTX)详细使用教程
  10. H桥电机驱动电路用电荷泵电路
  11. 北京林业大学计算机考研录取分数线,2017北京林业大学各专业考研复试分数线...
  12. 健身服务公司iFIT赴美上市,64亿美元估值中藏着“喜”与“忧”?
  13. Learning Enriched Features for Real Image Restoration and Enhancement Paddle模型复现93号(1)
  14. 使用pyBigWig模块查看bigwig文件中的内容
  15. 「C++简单实现斗地主」机关算尽的地主,却低估了我的实力
  16. vagrant+virtualbox搭建centos7
  17. 微信会员卡系统如何助力服装店提升业绩(下)
  18. 怎么用VB对接三方验证码短信接口
  19. 场馆坪效这么低?关键在这两方面
  20. php饼状图源码,php 饼状图

热门文章

  1. html5蚂蚁森林种树效果,蚂蚁森林各种树的真面目
  2. 淘小宝蚂蚁聊天表情V1.0-V2.0的制作过程
  3. java高并发递增编号_java 高并发 订单编号递增(解决方案)
  4. 计算机图形学名词解释
  5. JAVA计算机毕业设计云音乐后端内容管理系统Mybatis+系统+数据库+调试部署
  6. 我的10G OCP 考证历程
  7. 一周搞定scrapy之第一天--爬取起点中文小说网
  8. matlab 股票分时图_MATLAB怎样获取实时股市行情数据
  9. STM32使用PA8测试系统时钟(LSE)
  10. 数据结构篇十七:图的最小生成树