linux下nginx安装

环境:CentOS Linux release 7.4.1708
安装必要的支持库:
yum -y install gcc automake autoconf libtool make

 yum install gcc gcc-c++

 安装pcre支持


cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42/
./configure
make && make install

 安装zlib

cd /usr/local/src
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz?download
tar -zxvf zlib-1.2.11.tar.gz?download
cd zlib-1.2.11
./configure
make
make install

 

安装openssl
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
tar -zxvf openssl-1.0.2o
cd openssl-1.0.2o
./config
make && make install
安装nginx
cd nginx目录里
./configure \
  --user=www \
  --group=www \
  --prefix=/usr/local/webserver/nginx-1.14.2 \
  --sbin-path=/usr/local/webserver/nginx-1.14.2/sbin/nginx \
  --conf-path=/usr/local/webserver/nginx-1.14.2/nginx.conf \
  --pid-path=/usr/local/webserver/nginx-1.14.2/nginx.pid \
  --with-http_ssl_module \
  --with-http_flv_module \
 --with-http_mp4_module  \
 --with-http_stub_status_module \
 --with-http_gzip_static_module \
 --http-client-body-temp-path=/var/tmp/nginx/client/ \
 --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
 --http-scgi-temp-path=/var/tmp/nginx/scgi \
 --with-pcre=/usr/local/src/pcre-8.44 \
 --with-zlib=/usr/local/src/zlib-1.2.11 \
 --with-openssl=/usr/local/src/openssl-1.0.2o
 make -j4
 make install

 

安装可能出现的问题

src/os/unix/ngx_user.c: 在函数‘ngx_libc_crypt’中:
src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
     cd.current_salt[0] = ~salt[0];
A: 安装的nginx版本过低,由1.12.2去除,重新下载1.14.2后ok
 

查看nginx可运行状态:

/usr/local/nginx-1.13.11/sbin/nginx -t

 

mkdir -p /var/tmp/nginx/clientmkdir -p /var/tmp/nginx/client


启动nginx:
/usr/local/nginx-1.13.11/sbin/nginx
或者指定配置文件启动
/usr/local/webserver/nginx-1.14.2/sbin/nginx -c /usr/local/webserver/nginx-1.14.2/conf/nginx.conf

若nginx成功运行后,通过 curl 'http://localhost' 地址无法访问服务器 则可能是防火墙的问题 需要开放80端口或关闭防火墙

 

开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

重启防火墙
firewall-cmd --reload

或者永久关闭防火墙

systemctl stop firewalld.service  //停止防火墙
systemctl disable firewalld.service //不再开机停止运行防火墙

 参考地址:https://www.linuxidc.com/Linux/2016-08/134110.htm



 

 

 



posted on 2018-04-05 15:18  爱吃柠檬不加糖  阅读(328)  评论(0编辑  收藏  举报

导航