nginx 1.8 源码包安装
<ul>
<li>操作系统为:CentOS7</li>
</ul>
<h2>1-参考网址</h2>
<h4>1--nginx在centos上安装</h4>
<ul>
<li><a href="http://zyan.cc/nginx_php_v5/">http://zyan.cc/nginx_php_v5/</a></li>
</ul>
<h4>2--nginx源码包安装</h4>
<ul>
<li><a href="https://www.cnblogs.com/uniquemelody/p/12956523.html">https://www.cnblogs.com/uniquemelody/p/12956523.html</a></li>
</ul>
<h4>3--Linux下nginx源码包安装</h4>
<ul>
<li><a href="https://blog.csdn.net/tyro_blog/article/details/51484507">https://blog.csdn.net/tyro_blog/article/details/51484507</a></li>
</ul>
<h4>4--Nginx源码安装的方法步骤</h4>
<ul>
<li><a href="https://www.jb51.net/article/142431.htm">https://www.jb51.net/article/142431.htm</a></li>
</ul>
<h2>2-查看操作系统要求</h2>
<ul>
<li>uname -a</li>
<li>要求内核为linux2.6及以上版本的操作系统</li>
</ul>
<h4>1--是否有nginx用户</h4>
<pre><code class="language-bash">compgen -u | grep nginx</code></pre>
<h4>2--源码包方式安装,默认是没有nginx用户</h4>
<pre><code class="language-bash">useradd nginx</code></pre>
<h4>3-安装nginx所依赖的软件</h4>
<pre><code class="language-bash">yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel</code></pre>
<h4>4-准备安装nginx所需要的目录</h4>
<h5>1--源代码存放目录</h5>
<p> 放置源码文件,已及第三方或我们自己写的模块源代码文件</p>
<h5>2--编译阶段产生的中间文件存放的目录</h5>
<p> 放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生成的目标文件和最终连接成功的二进制文件。</p>
<p> 默认情况下,configure命令会将该目录命名为objs,并放在nginx源代码目录下。</p>
<h5>3--部署目录</h5>
<p> 存放实际nginx服务运行期间所需要的二进制文件,配置文件等。</p>
<p> 默认情况下该目录为,/usr/local/nginx </p>
<h5>4--日志文件存放目录</h5>
<p> 日志文件通常比较大,研究nginx底层架构时,需要打开debug级别的日志,这个级别的日志非常详细,会导致日志文件大小增长的极快,
需要预先分配一个拥有更大磁盘空间的目录。</p>
<h5>5--创建目录结构</h5>
<pre><code>/opt/nginx 放置nginx相关软件目录
/opt/nginx/download下载nginx源码包存放目录
/opt/nginx/program 安装目录
/opt/nginx/bin 启动目录
/opt/nginx/log 日志目录
/opt/nginx/log/error 错误日志目录
/opt/nginx/openssl_1.0.2
安装相关目录也只可以不用创建,采用nginx安装默认目录</code></pre>
<h4>5-Linux内核参数优化</h4>
<p> 根据实际情况,自行判断是否需要参数优化</p>
<h4>6-获取nginx源码</h4>
<pre><code class="language-bash"># 1--进入创建好的nginx目录
cd /opt/nginx/download
# 2--下载
wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 查看下载文件
ll # 显示 nginx-1.18.0.tar.gz
# 3--解压
tar -zxvf nginx-1.18.0.tar.gz # 显示 nginx-1.18.0
cd nginx-1.18.0 </code></pre>
<h5>7-配置</h5>
<h5>1--查看configure安装参数</h5>
<pre><code class="language-bash">./configure --help</code></pre>
<h5>2--进行配置</h5>
<p> 1、采用不指定具体相关安装目录,nginx安装会自动默认相关目录,直接执行configure就行
如: ./configure
2、采用默认安装比较方便</p>
<pre><code class="language-bash">./configure --prefix=/opt/nginx/program --sbin-path=/opt/nginx/bin --error-log-path=/opt/nginx/log/error --http-log-path=/opt/nginx/log --with-openssl=/opt/nginx/openssl_1.0.2 --with-http_ssl_module
# ./configure --prefix=安装目录 --sbin-path=启动目录 --error-log-path=错误日志目录 --http-log-path=日志目录</code></pre>
<h5>3--出现错误</h5>
<p> 报错 make: *** 没有指明目标并且找不到makefile
参考网址:<a href="https://blog.csdn.net/kakak2000/article/details/105735630">https://blog.csdn.net/kakak2000/article/details/105735630</a></p>
<pre><code class="language-bash"># 1、安装pcre的库不能使用原因导致,需要手动下载pcre源码包安装
yum install pcre
# 2、下载pcre源码包
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.bz2
# 3、查看下载文件
ll # 显示 pcre-8.44.tar.bz2
# 4、安装bzip2
yum install -y bzip2
# 5、解压
tar -xjf pcre-8.44.tar.bz2
# 6、进入目录
cd pcre-8.44
# 7、配置
./configure
# 8、编译并安装
make && make install</code></pre>
<h4>8-编译</h4>
<pre><code class="language-bash">make
# 1--查看编译后的相关文件
ls -rlt
# 2--查看Makefie
less Makefie</code></pre>
<h4>9-安装</h4>
<pre><code class="language-bash">make install
# 查看安装成功的相关文件
ls -rlt</code></pre>
<h4>10-二进制启动程序</h4>
<pre><code class="language-bash">/usr/local/nginx/sbin/nginx -V
# 1--查看nginx是否启动
netstat -anpt | grep nginx
ps -ef | grep nginx
# 2--启动服务
/usr/local/nginx/sbin/nginx
# 3--停止服务
/usr/local/nginx/sbin/nginx -s stop
# 4--重启服务
/usr/local/nginx/sbin/nginx -s reload</code></pre>
<h4>11-不能直接使用nginx命令</h4>
<p>出现问题:nginx 未找到命令</p>
<pre><code class="language-bash"># 1--编辑环境变量
# 1、vi /etc/profile
# 2、添加环境变量
PATH=$PATH:/usr/local/nginx/sbin/
export PATH
# 2--重新加载环境
source /etc/profile
# 3--验证
# 1、命令行验证
nginx -V
ps aux | grep nginx 或者 pstree | grep nginx
# 如果pstree命令不管用,请安装 psmisc
yum install psmisc -y
curl -I http://127.0.0.1
# 2、浏览器验证
# 通过ip或者域名,在浏览器地址输入,看看是否访问成功
# http://192.168.32.128/</code></pre>
<h4>12-使用systemctl工具管理Nginx</h4>
<h5>1--建立服务文件</h5>
<pre><code class="language-bash">vi /usr/lib/systemd/system/nginx.service</code></pre>
<h5>2--填写内容</h5>
<pre><code class="language-shell">[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target</code></pre>
<h5>3--填写内容说明</h5>
<blockquote>
<p>Description: 描述服务
After: 描述服务类别
[Service] 服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:
[Service] 的启动、重启、停止命令全部要求使用绝对路径
[Install] 运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3</p>
</blockquote>
<h5>4--加入开机启动</h5>
<pre><code class="language-bash">systemctl enable nginx.service</code></pre>
<h5>5--参考网址</h5>
<p> centos7 nginx开启启动
<a href="https://www.cnblogs.com/liqing1009/p/7772395.html">https://www.cnblogs.com/liqing1009/p/7772395.html</a></p>
<h5>6--常用命令</h5>
<pre><code class="language-bash"># 1、启动nginx服务
systemctl start nginx.service
# 2、设置开机自启动
systemctl enable nginx.service
# 3、停止开机自启动
systemctl disable nginx.service
# 4、查看服务当前状态
systemctl status nginx.service
# 5、重新启动服务
systemctl restart nginx.service
# 6、查看所有已启动的服务
systemctl list-units --type=service
# 7、停止启动
systemctl stop nginx.service</code></pre>