首先配置linux环境,我这里是刚刚装好linux,所以一次性安装了一系列我需要到的环境;

yum install

pcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel lua-devel
 autoconf libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libidn libidn-devel libtool libtool-libs libevent-devel libevent openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool-ltdl libtool-ltdl-devel bison libgcrypt php-mcrypt libmcrypt libmcrypt-devel cmake gcc gcc-c++ ncurses-devel perl-Data-Dumper libicu-devel libquadmath-devel python-devel bzip2-devel

1.到http://nginx.org/en/download.html官网下载一个nginx

2.tar -zxvf  nginx-1.13.4.tar.gz 解压到/usr/local/nginx-1.13.4.tar.gz

3.cd  nginx-1.13.4 进入目录

4编译安装,执行:

./configure --prefix=/usr/local/nginx-1.13
  --with-pcre
  --with-ipv6
  --with-http_v2_module
  --with-http_ssl_module
  --with-http_dav_module
  --with-http_sub_module
  --with-http_realip_module
  --with-http_addition_module
  --with-http_stub_status_module

--add-module=/mnt/root/src/nginx.package/ngx_log_if     # 指定不写入的某些日志
  --add-module=/mnt/root/src/nginx.package/ngx_devel_kit
  --add-module=/mnt/root/src/nginx.package/form-input-nginx-module  # 在请求中获取POST的参数
  --add-module=/mnt/root/src/nginx.package/echo-nginx-module    # 在nginx中方便调试
  --add-module=/mnt/root/src/nginx.package/set-misc-nginx-module      # set value
  --add-module=/mnt/root/src/nginx.package/lua-nginx-module      # lua模块

以上编译命令中的(--add-module=)这些模块需要自行预先下载放在/mnt/root/src/nginx.package/(此路径不是必须,可自定义)文件夹里面才能编译,如果没有会报错;

根据自己需求,如果不需要(--add-module=)这些模块可以直接编译:

./configure --prefix=/usr/local/nginx-1.13
  --with-pcre
  --with-ipv6
  --with-http_v2_module
  --with-http_ssl_module
  --with-http_dav_module
  --with-http_sub_module
  --with-http_realip_module
  --with-http_addition_module
  --with-http_stub_status_module

编译之后执行make && make install  安装完成!

注意如果需要编译lua-nginx-module模块:

还需要下载LuaJIT-2.1.0-beta3.tar.gz编译make && make install并安装

之后编译nginx之前先指定lua的路径

//先导入环境变量,告诉nginx去哪里找luajit

# export LUAJIT_LIB=/usr/local/lib
# export LUAJIT_INC=/usr/local/include/luajit-2.1
之后在编译nginx    ./configure --prefix=/usr/local/nginx......................

常见错误:

# /usr/local/nginx/sbin/nginx -v

./objs/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
解决方法添加软链:
# ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

启动测试:

80端口需要root账户才有权限启动;

问题一: 启动之后无法在虚拟机外访问

CentOS 7.0默认使用的是firewall作为防火墙

首先检查防火墙是否开启80端口

命令:firewall-cmd --list-ports

或者:firewall-cmd --list-all

没有开启就需要先开启

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

命令含义:

--zone #作用域

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

然后重启防火墙

更新防火墙规则:# firewall-cmd --reload

        # firewall-cmd --complete-reload

两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

之后输入命令:firewall-cmd --list-ports 查看端口有没有;

如果有了就可以访问在虚拟机外访问nginx了。

问题二: 能访问80端口,但是不能访问其他端口;

解决办法;使用哪个端口就开启哪个端口

假如是在本地开发,嫌麻烦的话可以把firewall防火墙关闭即可;

启动:# systemctl start  firewalld

查看状态:# systemctl status firewalld 或者 firewall-cmd --state

停止:# systemctl disable firewalld

禁用:# systemctl stop firewalld

systemctl stop firewalld.service #停止firewall 
systemctl disable firewalld.service #禁止firewall开机启动

nginx访问403问题:

这是权限问题,设置好访问权限就行了chmod 755.......

linux-Centos7安装nginx的更多相关文章

  1. linux(centos7) 安装nginx

    linux(centos7) 安装nginx 1.14(stable) 版本 Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内, ...

  2. linux centos7 安装nginx并启动

    Linux下安装Nginx完整教程及常见错误解决方案:https://blog.csdn.net/chenxiaochan/article/details/63688346 CentOS 7 安装Ng ...

  3. VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法

    VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法 在linux上安装nginx 请参考:Linux Centos7 安装 nginx 在虚拟机centos7上安装nginx之 ...

  4. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  5. linux系统或centos7安装nginx

    一.Linux下安装nginx 1.添加源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cen ...

  6. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  7. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

  8. Linux CentOS7 安装 Qt 5.9.2

    Linux CentOS7 安装 Qt 5.9.2 参考链接 http://doc.qt.io/qt-5/linux.html sudo yum groupinstall "C Develo ...

  9. 【Linux】Linux上安装Nginx

    本文介绍Linux环境安装Nginx,这里用的Linux系统是CentOS 7.2. 1. 从Nginx官网下载Nginx.这里用的版本为:1.13.6. 2. 将下载下来的Nginx上传到Linux ...

  10. 【云服务器部署】---Linux下安装nginx

    [云服务器部署]---Linux下安装nginx 之前两篇,分别讲了:Linux下安装MySQL  和  springboot项目部署云服务器 nginx安装也是挺简单的.具体步骤如下: 第一步,下载 ...

随机推荐

  1. iOS学习之flappyBird游戏的实现

    导言 在本人还是学生的时候,flappyBird这款游戏非常火爆,最后等到Android版的出来之后,也是很痴迷的玩了一把.可是,本人游戏天赋一直平平,几度玩得想摔手机.本文主要介绍如何开发iOS平台 ...

  2. WebUploader 上传插件结合bootstrap的模态框使用时选择上传文件按钮无效问题的解决方法

    由于种种原因(工作忙,要锻炼健身,要看书,要学习其他兴趣爱好,谈恋爱等),博客已经好久没有更新,为这个内心一直感觉很愧疚,今天开始决定继续更新博客,每周至少一篇,最多不限篇幅. 今天说一下,下午在工作 ...

  3. 【android】通过leakCanary找出程序内存泄露点

    背景 内存泄露是咱新手比较头痛的问题,因为它不像崩溃,在开发环境可以根据提示的错误信息排查问题. 你都不知道咱的app是否哪个犄角旮旯藏着一个吞噬内存的黑洞. 排查android 内存泄露比较底层高端 ...

  4. Jmeter中解决中文乱码问题

    在使用JMeter过程中,执行结果响应断言总是提示失败,但是使用英文字母可以成功,表示逻辑和其它地方没有问题,问题可能出在编码上,细看了响应数据和日志,其中中文参数被编码成了类似URL编码格式,如下图 ...

  5. Java最佳实战

    1. 针对日志记录的优化:logback , 预编译形式记录日志,开发debug,生产info,访问日志和错误日志分开,异常日志输出到单独文件 2. 针对数据库连接的优化 :单例模式或数据库连接池 3 ...

  6. servlet的总结

    tomcat在启动的时候 加载webapp下面的web.xml,加载里面定义的servlet. web.xml文件有两部分:servlet类定义和servlet映射定义每个被载入的servlet类都有 ...

  7. 吉哥系列故事——完美队形I

    /*hud4512 dp[i]表示当前以下标i结束的最长公共上升子序列. 我们让第一个序列为原序列,第二个序列为原系列的反向. 则,也就是说,第二个序列的顺序为原序列的下标[n-1,0],设为j 当j ...

  8. MR案例:多文件输出MultipleOutputs

    问题描述:现有 ip-to-hosts.txt 数据文件,文件中每行数据有两个字段:分别是ip地址和该ip地址对应的国家,以'\t'分隔.要求汇总不同国家的IP数,并以国家名为文件名将其输出.解读:M ...

  9. 4.9版本的linux内核中实时时钟芯片pt7c4338的驱动源码在哪里

    答:drivers/rtc/rtc-ds1307.c,内核配置项为CONFIG_RTC_DRV_DS1307 Location: -> Device Drivers -> Real Tim ...

  10. Mybatis <if>标签使用注意事项

    在<if>标签的test中,不能写成“name !='aa'” , 会报错### Error querying database. Cause: java.lang.NumberForma ...