Open xzhuz opened 6 years ago
https://meisen.pro/article/626ea22e0d1446a0bbda4848543d1b97
书到用时方恨少。之前配置过nginx,但没有记录。今天在重新配置nginx的时候,遇到了问题还要重新去找一遍。
此文定义适用干货篇
要配置服务器,怎么也得有个包吧。这也就是第一步了。
准备包有两种方式,一种是自己手动下载包,然后将包上传到服务器。一种是通过wget指令从指定URL下载包到服务器位置。
如果当前系统有FTP工具,可以使用方式一。如果没有FTP工具或者不想这么麻烦,可以使用方式二。
这里下载nginx-1.12.2这个版本:下载链接。当然,也可以下载其它版本。
如果所使用的系统有ftp工具,那么通过工具将包传到服务器的指定位置。
这里可以推荐一个很好用的ftp工具:FillZilla
这个工具支持Mac、Ubuntu、Windows。在没有好的FTP工具的Ubuntu下可谓是神器。附一个官网链接
笔者在部署配置Nginx的时候,是使用的该方式,所以就通过该方式来讲解准备包的完整步骤。
➜ ~ mkdir /usr/local/nginx
➜ ~ cd /usr/local/nginx ➜ ~ wget http://nginx.org/download/nginx-1.12.2.tar.gz ## 执行ls -l 指令查看当前文件夹下文件 -rwxr-xr-x 1 root root 981687 Jun 5 22:30 nginx-1.12.2.tar.gz*
➜ ~ tar -xvf nginx-1.12.2.tar.gz ## 这里可以看到解压的文件信息 ## 解压完成之后执行ls -l drwxr-xr-x 9 1001 1001 4096 May 7 22:32 nginx-1.12.2/ -rwxr-xr-x 1 root root 981687 Jun 5 22:30 nginx-1.12.2.tar.gz*
## 在nginx-1.12.2目录下可以看到以下文件 total 1400 -rw-r--r-- 1 1001 1001 272K 10 17 2017 CHANGES -rw-r--r-- 1 1001 1001 414K 10 17 2017 CHANGES.ru -rw-r--r-- 1 1001 1001 1.4K 10 17 2017 LICENSE -rw-r--r-- 1 1001 1001 49B 10 17 2017 README drwxr-xr-x 25 1001 1001 800B 10 17 2017 auto drwxr-xr-x 11 1001 1001 352B 10 17 2017 conf -rwxr-xr-x 1 1001 1001 2.4K 10 17 2017 configure drwxr-xr-x 6 1001 1001 192B 10 17 2017 contrib drwxr-xr-x 4 1001 1001 128B 10 17 2017 html drwxr-xr-x 3 1001 1001 96B 10 17 2017 man drwxr-xr-x 9 1001 1001 288B 10 17 2017 src
➜ ~ ./configure --prefix=/usr/local/nginx --with-http_v2_module --with-http_stub_status_module --with-http_ssl_module ➜ ~ make ➜ ~ make install
./configure 说明 如果不想指定安装的目录,就不用指定--prefix 如果不想额外的添加编译包,也不用添加后面额--with* 这里使用--with*是配置https需要的编译包 我部署在服务器上面的nginx还额外编译了http_gzip_static_module的包,这里没有同时编译,放到后面需要新添加模块的时候
./configure 说明
如果不想指定安装的目录,就不用指定--prefix
如果不想额外的添加编译包,也不用添加后面额--with*
这里使用--with*是配置https需要的编译包
我部署在服务器上面的nginx还额外编译了http_gzip_static_module的包,这里没有同时编译,放到后面需要新添加模块的时候
➜ ~ /usr/local/nginx/sbin/nginx -v nginx version: nginx/1.12.2 ## 使用-V可以查看更详细的信息 ➜ ~ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.12.2 built with OpenSSL 1.0.2g 1 Mar 2016 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_v2_module --with-http_stub_status_module --with-http_ssl_module
你认为这样子就结束了吗? 不是这么简单的,当时执行是./configure命令之后,你会发现会有一堆错误信息....What?接下来,笔者列出我自己遇到和网上收集到的错误信息,并说明解决办法。
问题核心描述:error: the HTTP rewrite module requires the PCRE library.
问题解决办法:
➜ ~ sudo apt-get install libpcre3 libpcre3-dev
其他下载地址:PCRE PCRE 作用是让 Nginx 支持 Rewrite 功能。
其他下载地址:PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
问题核心描述: error: the HTTP gzip module requires the zlib library.
➜ ~ sudo apt-get install zlib1g-dev
其他下载地址:Zlib
以上两个问题是笔者自己在部署过程中遇到的问题,也是考这两个解决办法解决了问题。分享给大家!
这个问题没有真实遇到,但是在网上收集到的,如有错误请指出。
问题解决:
➜ ~ sudo apt-get install openssl libssl-dev
目前笔者也只是遇到和收集了这三个错误,如果以后越到其他错误。也会继续来更新此博客。
问题解决之后,就可以继续执行以下命令完成部署。
之前在CentOs上面安装Nginx安装时遇到这个问题
问题核心描述:checking for C compiler ... not found. ./configure: error: C compiler cc is not found
➜ ~ yum -y install gcc gcc-c++
➜ ~ /usr/local/nginx/sbin/nginx
每次这样子启动是不是很麻烦,来讲这个执行命令放到启动脚本中吧。
## 笔者是在放到/etc/profile ➜ ~ sudo echo \"alias nginx=/usr/local/nginx/sbin/nginx\" >> /etc/profile ## 以后就可以直接通过下面指令来启动nginx了 ➜ ~ nginx
可以使用service的服务器可以通过以下方式 ➜ ~ service nginx start
可以使用service的服务器可以通过以下方式
➜ ~ service nginx start
其实还可以通过制定配置文件的方式来启动nginx
➜ ~ nginx -c /usr/local/nginx/conf/nginx.conf
每次修改nginx.conf配置文件之后,通过下面文件加载新配置文件.
➜ ~ nginx -s reload
可以使用service的服务器可以通过以下方式 ➜ ~ service nginx reload
➜ ~ service nginx reload
➜ ~ nginx -s stop ## 当然,也可以使用杀掉进程的方式来停止nginx
可以使用service的服务器可以通过以下方式 ➜ ~ service nginx stop
➜ ~ service nginx stop
## 启动 ➜ ~ nginx ## 重新加载配置文件 ➜ ~ nginx -s reload ## 停止 ➜ ~ nginx -s stop
在上面的编译安装讲解模块,笔者故意留了一个坑,没有添加安装http_gzip_static_module模块。这里就来讲讲怎么安装这个模块。
添加新模块和编译安装过程基本一致,只是要在./configure后面新增--with-http_gzip_static_module就可以。
➜ ~ ./configure --prefix=/usr/local/nginx --prefix=/usr/local/nginx --with-http_v2_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module ➜ ~ make ## 这里很多人说直接make就可以,因为make install会覆盖安装,但是不知道为什么,我每次make之后都不可以,所以都只执行完make之后,还会执行make install命令.我没有找到原因,如果有同学知道了, 可以在评论中说明\uD83E\uDD23 ➜ ~ make install
添加该模块可以支持gzip_static on;
转载请注明出处====
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
https://meisen.pro/article/626ea22e0d1446a0bbda4848543d1b97
书到用时方恨少。之前配置过nginx,但没有记录。今天在重新配置nginx的时候,遇到了问题还要重新去找一遍。
准备包
要配置服务器,怎么也得有个包吧。这也就是第一步了。
准备包有两种方式,一种是自己手动下载包,然后将包上传到服务器。一种是通过wget指令从指定URL下载包到服务器位置。
方式一: 将包上传到服务器
1. 从官网下载包:官网链接
这里下载nginx-1.12.2这个版本:下载链接。当然,也可以下载其它版本。
2. 下载完成后,通过ftp工具将包上传到服务器
如果所使用的系统有ftp工具,那么通过工具将包传到服务器的指定位置。
这里可以推荐一个很好用的ftp工具:FillZilla
这个工具支持Mac、Ubuntu、Windows。在没有好的FTP工具的Ubuntu下可谓是神器。附一个官网链接
方式二: 通过wget
笔者在部署配置Nginx的时候,是使用的该方式,所以就通过该方式来讲解准备包的完整步骤。
1. 登陆服务器,在服务器上创建一个文件夹(主要是方便管理)
2. 进入上面创建的文件夹,下载安装包
3. 解压nginx-1.12.2.tar.gz
4. 进入nginx-1.12.2,这时候就可以来编译安装了
5. 查看nginx版本
问题处理
你认为这样子就结束了吗? 不是这么简单的,当时执行是./configure命令之后,你会发现会有一堆错误信息....What?接下来,笔者列出我自己遇到和网上收集到的错误信息,并说明解决办法。
问题一:缺少PCRE错误
问题核心描述:error: the HTTP rewrite module requires the PCRE library.
问题解决办法:
问题二: 缺少zlib错误
问题核心描述: error: the HTTP gzip module requires the zlib library.
问题解决办法:
以上两个问题是笔者自己在部署过程中遇到的问题,也是考这两个解决办法解决了问题。分享给大家!
问题三:缺少OpenSSL错误
这个问题没有真实遇到,但是在网上收集到的,如有错误请指出。
问题解决:
目前笔者也只是遇到和收集了这三个错误,如果以后越到其他错误。也会继续来更新此博客。
问题解决之后,就可以继续执行以下命令完成部署。
其他问题: 缺少GCC GCC-C++
问题核心描述:checking for C compiler ... not found. ./configure: error: C compiler cc is not found
问题解决办法:
nginx相关指令
启动nginx
每次这样子启动是不是很麻烦,来讲这个执行命令放到启动脚本中吧。
其实还可以通过制定配置文件的方式来启动nginx
重新加载配置文件
每次修改nginx.conf配置文件之后,通过下面文件加载新配置文件.
停止nginx
汇总
添加新模块
在上面的编译安装讲解模块,笔者故意留了一个坑,没有添加安装http_gzip_static_module模块。这里就来讲讲怎么安装这个模块。
添加新模块和编译安装过程基本一致,只是要在./configure后面新增--with-http_gzip_static_module就可以。
转载请注明出处====