Loading... <h3><span style="font-size: 16px">一、几个概念</span></h3> <p><span style="font-size: 14px"> 1、开放源码</span></p> <p><span style="font-size: 14px"> 程序代码,人类可能读懂的程序语言,但是计算机不能识别和执行;</span></p> <p><span style="font-size: 14px"> 2、编译程序</span></p> <p><span style="font-size: 14px"> 将程序代码翻译成计算机可以识别的语言;</span></p> <p><span style="font-size: 14px"> 3、二进程程序 </span></p> <p><span style="font-size: 14px"> 经过编译程序翻译后得到的可以被执行的程序文件。</span></p> <h3><span style="font-size: 16px">二、编译源程序的步骤</span></h3> <p><span style="font-size: 14px"> 1、configure</span></p> <p><span style="font-size: 14px"> 检测程序,并生成makefile文件,其检测的内容如下:</span></p> <p><span style="font-size: 14px"> 是否有适合的编译程序;</span></p> <p><span style="font-size: 14px"> 是否有本软件所需的函数库或其他需要的相关软件;</span></p> <p><span style="font-size: 14px"> 操作系统平台是否支持些软件;</span></p> <p><span style="font-size: 14px"> 内核的头定义文件是否存在。</span></p> <p><span style="font-size: 14px"> configure脚本的使用:</span></p> <p><span style="font-size: 14px"> 1)获取帮助</span></p> <p><span style="font-size: 14px"> ./configure –help</span></p> <p><span style="font-size: 14px"> 2)较通用的一些选项</span></p> <p><span style="font-size: 14px"> 安装路径相关</span></p> <p><span style="font-size: 14px"> –prefix =/path/to/somewhere:指定安装路径</span></p> <p><span style="font-size: 14px"> –sysconfdir=/path/to/somewhere:指定配置文件安装路径</span></p> <p><span style="font-size: 14px"> 指定启用/禁用的特征</span></p> <p><span style="font-size: 14px"> –enable -FEATURE:例如 –enable -fpm</span></p> <p><span style="font-size: 14px"> –disable -FEATURE:例如 –disable -sochet</span></p> <p><span style="font-size: 14px"> 指定所依赖的功能 :程序或文件</span></p> <p><span style="font-size: 14px"> –with -FUNCTION [=/path/to/somewhere]</span></p> <p><span style="font-size: 14px"> –without -FUNCTION</span></p> <p><span style="font-size: 14px"> 2、make</span></p> <p><span style="font-size: 14px"> 根据makefile文件中所记录的内容,来对源码进行编译。</span></p> <p><span style="font-size: 14px"> 3、make install </span></p> <p><span style="font-size: 14px"> 安装软件。</span></p> <h3><span style="font-size: 16px">三、编译安装Nginx</span></h3> <p><span style="font-size: 14px"> 前提:在进行编译安装前必须安装gcc编译器。</span></p> <p><span style="font-size: 14px"> 1、检查运行环境</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-86.png" title="1431288567979828.png" alt="1.png" /></p> <p><span style="font-size: 14px"> –prefix:指定nginx的安装路径;</span></p> <p><span style="font-size: 14px"> –conf-path:指定主配置文件的位置;</span></p> <p><span style="font-size: 14px"> –with-pcre:指定pcre源码包的位置;</span></p> <p><span style="font-size: 14px"> –with-zlib:指定zlib源码包的位置;</span></p> <p><span style="font-size: 14px"> 注意:pcre和zlib都是源码包的位置,而不是安装的路径,如下图所示:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-76.png" title="1431288823237844.png" alt="1.1.png" /></p> <p><span style="font-size: 14px"> 2、编译程序(调用gcc)</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-96.png" title="1431288904477740.png" alt="2.png" /></p> <p><span style="font-size: 14px"> 3、安装程序 </span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-26.png" title="1431288972715636.png" alt="3.png" /></p> <p><span style="font-size: 14px"> 4、启动nginx服务</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-11.png" title="1431289140128069.png" alt="4.png" /></p> <p><span style="font-size: 14px"> 使用浏览器访问测试:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160310-37.png" title="1431289159519978.png" alt="5.png" /></p> <p><span style="font-size: 14px"> 5、安装后的配置</span></p> <p><span style="font-size: 14px"> 1)让二进制程序直接运行,而无须输入路径</span></p> <p><span style="font-size: 14px"> 在目录/etc/profile.d/中创建nginx.sh文件,内容如下:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160311-44.png" title="1431289484128863.png" alt="6.png" /></p> <p><span style="font-size: 14px"> 重新登录终端后,测试效果:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160311-71.png" title="1431289641511197.png" alt="7.png" /><img src="//cto.wang/usr/uploads/2016/07/20160703160311-38.png" title="1431289646221178.png" alt="8.png" /></p> <p><span style="font-size: 14px"> 2)导出手册页(模拟)</span></p> <p><span style="font-size: 14px"> 因为nginx没有man手册,我们只能假设nginx的man手册的路径为/usr/local/nginx/man,如果想使用man命令直接调用手册的话,可以进行以下操作:</span></p> <p><span style="font-size: 14px"> 在/etc/man.config文件中加入一行,如下图所示:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160311-92.png" title="1431290079440400.png" alt="9.png" /><img src="//cto.wang/usr/uploads/2016/07/20160703160311-42.png" title="1431290082820621.png" alt="10.png" /></p> <p><span style="font-size: 14px"> 3)导出库文件(模拟)</span></p> <p><span style="font-size: 14px"> 在/etc/ld.so.conf.d/目录中创建nginx.conf文件</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160311-11.png" title="1431290695595789.png" alt="11.png" /><span style="font-size: 14px"> 触发系统重新搜索所有的库文件并生成缓存:</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160311-66.png" title="1431290808176360.png" alt="12.png" /></p> <p><span style="font-size: 14px"> 4)导出头文件(模拟)</span></p> <p><span style="font-size: 14px"> 假设nginx的头文件在/usr/local/nginx/include目录中;</span></p> <p><span style="font-size: 14px"> 系统找头文件的路径:/usr/include</span></p> <p><span style="font-size: 14px"> 导出方式是创建链接文件:</span></p> <p><span style="font-size: 14px"> ln -sv /usr/local/nginx/include /usr/include/nginx</span></p> <p></p> <p class="MsoListParagraph" style="margin-left: 52px"></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信