幫助中心
這里有最新的使用文檔和教程
CentOS8編譯安裝Nginx1.16.1,Centos8編譯安裝nginx ,編譯安裝nginx
安裝前準備:
一、防火墻配置
CentOS 從7.x開始默認使用的是firewall作為防火墻,這里改為iptables防火墻。
1、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
systemctl mask firewalld
systemctl stop firewalld
yum -y remove firewalld
2、安裝iptables防火墻
yum install iptables-services #安裝
vi /etc/sysconfig/iptables #編輯防火墻配置文件,開發mysql默認端口3306
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.0.100 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT #只允許此ip訪問
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80-j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重啟防火墻使配置生效
systemctl enable iptables.service #設置防火墻開機啟動
/usr/libexec/iptables/iptables.init restart #重啟防火墻
二、關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
三 、系統約定
軟件源代碼包存放位置:/usr/local/src
源碼包編譯安裝位置:/usr/local/軟件名字
四、下載軟件包
1、下載nginx
http://nginx.org/download/nginx-1.16.1.tar.gz
2、mysql
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18.tar.gz
3、下載php
https://www.php.net/distributions/php-7.3.10.tar.gz
4、下載cmake(MySQL編譯工具)
https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz
5、下載pcre (支持nginx偽靜態)
ftp://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
6、下載openssl(nginx擴展)
https://www.openssl.org/source/openssl-1.1.0l.tar.gz
7、下載zlib(nginx擴展)
http://www.zlib.net/zlib-1.2.11.tar.gz
8、下載libmcrypt(php擴展)
https://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9、下載yasm(php擴展)
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10、t1lib(php擴展)
http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz
11、下載gd庫安裝包
https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
12、libvpx(gd庫需要)
https://codeload.github.com/webmproject/libvpx/tar.gz/v1.8.1
13、tiff(gd庫需要)
http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz
14、libpng(gd庫需要)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.37.tar.gz
15、freetype(gd庫需要)
http://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz
16、jpegsrc(gd庫需要)
http://www.ijg.org/files/jpegsrc.v9c.tar.gz
17、Boost(編譯mysql需要)
https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz
18、libzip(編譯php需要)
https://libzip.org/download/libzip-1.2.0.tar.gz
19、rpcsvc-proto(編譯MySQL需要)
https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
以上軟件包上傳到/usr/local/src目錄
五、安裝編譯工具及庫文件(使用yum命令安裝)
yum install apr* autoconf automake bison bzip2 bzip2* cpp curl curl-devel fontconfig fontconfig-devel freetype-devel gcc gcc-c++ gd gd-devel gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet wget zlib-devel ncurses-devel libtirpc-devel gtk* ntpstat bison* sqlite-devel libsqlite3x-devel oniguruma libzip-devel
開始安裝Nginx
1、安裝pcre
cd /usr/local/src
mkdir /usr/local/pcre
tar zxvf pcre-8.43.tar.gz
cd pcre-8.43
./configure --prefix=/usr/local/pcre
make
make install
2、安裝openssl
cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.1.0l.tar.gz
cd openssl-1.1.0l
./config --prefix=/usr/local/openssl
make
make install
vi /etc/profile
export PATH=$PATH:/usr/local/openssl/bin
export LD_LIBRARY_PATH=/usr/local/openssl/lib
export LC_ALL="en_US.UTF-8"
export LDFLAGS="-L/usr/local/openssl/lib -Wl,-rpath,/usr/local/openssl/lib"
:wq!
source /etc/profile
3、安裝zlib
cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install
4、安裝Nginx
groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.1.0l --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.43
注意:--with-openssl=/usr/local/src/openssl-1.1.0l --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.43指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯
make
make install
/usr/local/nginx/sbin/nginx #啟動Nginx
設置nginx開機啟動
vi /lib/systemd/system/nginx.service #添加以下代碼
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
:wq! #保存退出
/usr/local/nginx/sbin/nginx -s stop #停止
systemctl enable nginx.service #設置開機自啟動
systemctl start nginx.service #啟動
systemctl stop nginx.service #關閉
systemctl restart nginx.service #重啟
systemctl reload nginx.service #重新加載配置文件
在瀏覽器中打開服務器IP地址,會看到下面的界面,說明Nginx安裝成功。
擴展閱讀:
Nginx配置txt、pdf、doc、xls等文件直接下載的方法
在nginx配置文件中添加以下代碼
location / {
if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){
add_header Content-Disposition: 'attachment;';
}
}