linux-Centos7安装nginx
首先配置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.......
?
轉載于:https://www.cnblogs.com/JahanGu/p/7445197.html
總結
以上是生活随笔為你收集整理的linux-Centos7安装nginx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速排序和快速选择(quickSort
- 下一篇: linux epoll机制对TCP 客户