Nginx版本为1.9.15
下载安装辅助服务
安装C++编译环境
如已安装可略过
yum install gcc-c++
选择安装路径
可以是任何目录,本文选定的是/usr/local/
本来选择的是的/home/nginx路径,之后又改为/usr/local/下面,后面会有详细解释
安装pcre库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz下载最新的 PCRE 源码包,用于解析nginx的http模块的正则表达式,使用下面命令下载编译和安装 PCRE 包:
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库
http://zlib.net/zlib-1.2.11.tar.gz下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install
安装ssl
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
安装nginx
wget http://nginx.org/download/nginx-1.9.15.tar.gz
tar -zxvf nginx-1.9.15.tar.gz
cd nginx-1.9.15
./configure --sbin-path=/home/nginx/nginx/sbin \
--conf-path=/home/nginx/nginx-1.9.15/conf/nginx.conf \
--pid-path=/home/nginx/nginx-1.9.15/logs/nginx.pid \
--with-http_ssl_module \
--with-pcre=/home/nginx/pcre-8.42 \
--with-zlib=/home/nginx/zlib-1.2.11 \
--with-openssl=/home/nginx/openssl-1.0.1
make && make install
运行了很久,报了第一个错误,报错信息如下:
src/event/ngx_event_openssl.c: 在函数‘ngx_ssl_dhparam’中:
src/event/ngx_event_openssl.c:954:11: 错误:提领指向不完全类型的指针
dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
^
src/event/ngx_event_openssl.c:955:11: 错误:提领指向不完全类型的指针
dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
^
src/event/ngx_event_openssl.c:957:15: 错误:提领指向不完全类型的指针
if (dh->p == NULL || dh->g == NULL) {
^
src/event/ngx_event_openssl.c:957:32: 错误:提领指向不完全类型的指针
if (dh->p == NULL || dh->g == NULL) {
^
src/event/ngx_event_openssl.c: 在函数‘ngx_ssl_connection_error’中:
src/event/ngx_event_openssl.c:1941:21: 错误:‘SSL_R_NO_CIPHERS_PASSED’未声明(在此函数内第一次使用)
|| n == SSL_R_NO_CIPHERS_PASSED /* 182 */
^
src/event/ngx_event_openssl.c:1941:21: 附注:每个未声明的标识符在其出现的函数内只报告一次
make[1]: *** [objs/src/event/ngx_event_openssl.o] 错误 1
make[1]: 离开目录“/home/nginx/nginx-1.9.15”
make: *** [build] 错误 2
百度到是openssl的版本问题
The OpenSSL API has changed quite a bit in 1.1.0... thismeans that nginx needs some work to adapt. I recommend you talk with the nginxfolks.
替换openssl的包为1.0.1的版本,删除之前的版本,并重新下载新的版本,并解压
cd ..
rm -rf ./openssl-1.1.1
rm -f openssl-1.1.1.tar.gz
wget https://www.openssl.org/source/openssl-1.0.1.tar.gz
tar -zxvf openssl-1.0.1.tar.gz
接着得再重新安装一遍nginx
rm -rf nginx-1.9.15
tar -zxvf nginx-1.9.15.tar.gz
cd nginx-1.9.15
./configure --sbin-path=/home/nginx/nginx/sbin \
--conf-path=/home/nginx/nginx-1.9.15/conf/nginx.conf \
--pid-path=/home/nginx/nginx-1.9.15/logs/nginx.pid \
--with-http_ssl_module \
--with-pcre=/home/nginx/pcre-8.42 \
--with-zlib=/home/nginx/zlib-1.2.11 \
--with-openssl=/home/nginx/openssl-1.0.1
make && make install
还是报错,报错信息如下:
cp conf/koi-win '/home/nginx/nginx-1.9.15/conf'
cp: "conf/koi-win" 与"/home/nginx/nginx-1.9.15/conf/koi-win" 为同一文件
make[1]: *** [install] 错误 1
make[1]: 离开目录“/home/nginx/nginx-1.9.15”
make: *** [install] 错误 2
此问题找了很久,基本都是一个解决办法
/home/nginx/nginx/sbin/nginx -c /home/nginx/nginx-1.9.15/conf/nginx.conf #使用nginx -c的参数指定nginx.conf文件的位置
则报了如下错误
nginx: [alert] could not open error log file: open() "/home/nginx/nginx/logs/error.log" failed (2: No such file or directory)
2018/11/12 17:07:47 [emerg] 14382#0: open() "/home/nginx/nginx/logs/access.log" failed (2: No such file or directory)
还尝试了修改安装目录,即在./configure命令后面加一个参数–prefix=/home/nginx/nginx \,并重新安装一遍nginx。然而并没哟什么用,还是一样的错误
最后无奈,便换回原来的默认的路径/usr/local路径下试试。并修改./configure 命令后面的参数列表,去掉各种path的配置,只添加了几个辅助服务的路径,如下:
./configure \
--with-http_ssl_module \
--with-pcre=/home/nginx/pcre-8.42 \
--with-zlib=/home/nginx/zlib-1.2.11 \
--with-openssl=/home/nginx/openssl-1.0.1
然后重新安装nginx。
cd /usr/local/
cp /home/nginx/nginx-1.9.15.tar.gz ./
tar -zxvf nginx-1.9.15.tar.gz
cd nginx-1.9.15
./configure \
--with-http_ssl_module \
--with-pcre=/home/nginx/pcre-8.42 \
--with-zlib=/home/nginx/zlib-1.2.11 \
--with-openssl=/home/nginx/openssl-1.0.1
make && make install
成功完成安装
启动nginx
确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/sbin/nginx
命令来启动 nginx,
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 nginx 已经安装并运行成功。
参考链接:
https://blog.youkuaiyun.com/qq_29461259/article/details/52609775