Linux 源码安装 LNMP (一) - Go语言中文社区

Linux 源码安装 LNMP (一)


LNMP 源码编译

LNMP = Linux  Nginx Mysql PHP 

Nginx ("engine x")是一个高性能的 HTTP 和 反向代理 服务器。Nginx 是由 lgor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0发布于 2004年 10月 4日。其将源代码以类的BSD许可证的形式发布,因它的稳定性,丰富的功能集,示例配置文件和低系统资源的消耗而闻名。2011年 6 月 1 日 ,Nginx 1.0.4 发布。

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计实 lgor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler (俄文 : Рамблер)使用。其特点是占有内存少,并发能力强,事实上  Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 网站用户有: 百度 BWS、新浪、网易、腾讯等。

Nginx 官方网站

                                      RamBlerhttp://www.rambler.ru/                Nginxhttp://nginx.org/

Rambler 是俄罗斯的门户网站,也是俄罗斯的三大门户之一,在这里可以了解俄罗斯社会的方方面面。严格意义来讲,Rambler 应该是俄罗斯的行业分类网站,每天大约有800万人利用该网站查询相关信息,是俄罗斯当之无愧的第二大本土搜索引擎。

了解 Tengine

Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝,天猫商城等得到了很好的检验,(可以这样理解:淘宝拿到了 Nginx源码之后,进行了功能的填充,优化等待,然后提交给 Nginx官方,但是由于 Nginx官方响应慢或者不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循 GPL 的原则上进行二次开发,于是就出了现在的 Tengine 版本。)

Nginx 的工作原理

  • Nginx 本身只支持静态页面的处理,当客户端访问php页面的时候,Nginx会将 php 转到 php-fpm 处理。
  • php-fpm 服务会把 php 页面解析成 html 文件给 Nginx 处理,Nginx 返回给客户端处理。

这里需要结合 Apache 的工作,对PHP文件处理过程的区别:

  1. Nginx 是通过 php-fpm 这个服务来处理 php 文件
  2. Apache 是通过libphp5.so 这个模块来处理 php 文件

Apache:

Nginx:

Apache 的 libphp5.so 随着 Apache 服务器一起运行,而 Nginx 和php-fpm 是各自独立运行的,所以在服务的运行过程中,Nginx 和 php-fpm 都需要分别启动。

修改 Nginx 配置文件,启动 Nginx 服务,修改 php 配置文件,启动 php-fpm 服务。

LNMP 软件所需要的软件包

  1. Mysql = http://dev.mysql.com/downloads/mysql/               Mysql 主程序包

  2. PHP = http://php.net/downloads.php                                   PHP 主程序包

  3. libmcrypt = http://mcrypt.hellug.gr/index.html                   libmcrypt加密算法扩展库,支持3DES等加密  或者如下(4)

  4. http://mcrypt.sourceforge.net/                           MCrypt/Libmcrypt    development site (secure access)  pcre=http://pcre.org/                                                                        pcre是php的依赖包

软件版本:

libmcrypt-2.5.8

mysql-5.6.26

nginx-1.8.0

pcre-8.37

php-5.6.13


Nginx 官网网站上

  • Mainline version     主线版本

  • Stable version         稳定版本

  • Legacy versions      老版本,历史版本     旧版本下载:http://mirrors.sohu.com/nginx/


编译安装 Nginx

如果我们在安装了开发工具之后,那么像 gcc 、gcc-c++ 、autoconf 、automake 这些工具都会默认安装,如果没有安装开发工具 (如最小安装的系统),那么这些东西我们必须手动安装。

解决依赖

在编译之前,把开发包组安装上:

"Development Tools"和 "Development Libraries"

[root@python ~]# yum groupinstall "Development Tools" "Development Libraries" -y

[root@python ~]# yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* pcre-devel  -y
  • Zlib : Nginx 提供 gzip 模块,需要 zlib 的支持。
  • Openssl : Nginx 提供 SSL 的功能
[root@python LNMP软件包]# tar xf pcre-8.37.tar.bz2 -C /usr/local/src/
  • 解压此安装包即可,不需要安装,Nginx需要指定pcre的源码不是安装后的路径,此包的功能是支持地址重写rewrite功能  
  • pcre 的依赖可以 yum安装pcre和pcre-devel解决!

解压编译安装

[root@python LNMP软件包]# tar xvf nginx-1.8.1.tar.gz -C /usr/local/src/

[root@python LNMP软件包]# cd /usr/local/src/nginx-1.8.1/

[root@python nginx-1.8.1]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37

[root@python nginx-1.8.1]#  make –j 3 ; make install;cd
  • --with-http_dav_module     #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY 和 MOVE 方法) 默认关闭,需要编译开启。
  • --with-http_stub_status_module   #启用支持 (获取 Nginx 上次启动以来的工作状态)
  • --with-http_addition_module    #启用支持 (作为一个输出过滤器,支持不完全缓冲,分部分请求)
  • --with-http_sub_module    #启用支持 (允许一些其他文本替换Nginx 相应中的一些文本)
  • --with-http_flv_module      #启用支持 (提供支持flv视频文件支持)
  • --with-http_mp4_module       #启用支持 (提供支持mp4视频文件支持,提供伪流媒体服务端支持)
  • --with-pcre=/usr/local/src/pcre-8.37     #需要注意,这里指的是源码,用 # ./configure  --help  | grep  pcre  查看帮助
[root@python ~]# useradd -M -u 8001 -s /sbin/nologin nginx   用于运行 nginx 的用户 

Nginx 目录结构

[root@python ~]# ll /usr/local/nginx/

drwxr-xr-x. 2 root root 4096 6月  20 10:10 conf   # Nginx相关配置文件
drwxr-xr-x. 2 root root 4096 6月  20 10:10 html   # 网站根目录
drwxr-xr-x. 2 root root 4096 6月  20 10:10 logs   # 日志文件
drwxr-xr-x. 2 root root 4096 6月  20 10:10 sbin   # Nginx 启动脚本

配置 Nginx 支持 php 文件

修改任何配置文件之前,请先备份一份。

[root@python ~]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

[root@python ~]# vim /usr/local/nginx/conf/nginx.conf

user nginx nginx;                   #添加此行

location ~ .php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;      #将scripts修改为nginx的html,即Nginx页面目录,因为要处理的php文件也在这个目录下
    include        fastcgi_params;
}

启动 Nginx

[root@python ~]# /usr/local/nginx/sbin/nginx 
[root@python ~]# netstat -tulnp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      32491/nginx: master
  • 使用浏览器访问 : http://192.168.128

Nginx 维护命令 

  • 检查配置文件语法是否有错误 
[root@python ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  • 重新加载配置文件(平滑重启)
[root@python ~]# /usr/local/nginx/sbin/nginx -s reload
  • 停止 Nginx (注意: 重启没有任何参数)
[root@python ~]# /usr/local/nginx/sbin/nginx -s stop
  • 加入开机启动
[root@python ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

平滑重启  (保持了C - S 链接),不断开,服务器只是重新加载了配置文件,没有开启和关闭的服务器的一个动作。


 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Qevery678/article/details/92959218
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 08:29:55
  • 阅读 ( 1365 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢