LNMP架构搭建(源码编译)

1. LNMP架构介绍

  • LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
    Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
    • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
    • Mysql是一个小型关系型数据库管理系统。
    • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
      这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统
  • 原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

2. 进行简单的lnmp架构搭建

所用源码包版本如下:

 mysql-boost-5.7.11.tar.gz
 php-5.6.35.tar.bz2
 nginx-1.10.1.tar.gz

1. 进行数据库的编译安装

先安装cmake
  • CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
    —以上来自于百度百科
 [root@server10 mnt]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm
解决数据库编译所需要的依赖性
 [root@server10 mnt]# yum install -y gcc gcc-c++ make ncurses-devel bison openssl-devel zlib-devel cmake
解压源码包后,进行编译

参数解释:

    #安装目录  
    -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \  
    #数据库存放目录  
    -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \
    #Unix socket 文件路径  
    -DWITH_MYISAM_STORAGE_ENGINE=1 \  
    #安装 myisam 存储引擎  
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \  
    #安装 innodb 存储引擎  
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \  
    #安装 archive 存储引擎  
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \  
    #安装 blackhole 存储引擎  
    -DWITH_PARTITION_STORAGE_ENGINE=1 \  
    #安装数据库分区  
    -DENABLED_LOCAL_INFILE=1 \  
    #允许从本地导入数据  
    -DWITH_READLINE=1 \  
    #快捷键功能  
    -DWITH_SSL=yes \  
    #支持 SSL  
    -DDEFAULT_CHARSET=utf8 \  
    #使用 utf8 字符  
    -DDEFAULT_COLLATION=utf8_general_ci \  
    #校验字符  
    -DEXTRA_CHARSETS=all \  
    #安装所有扩展字符集  
    -DMYSQL_TCP_PORT=3306 \  
    #MySQL 监听端口  

LNMP架构搭建(源码编译)_第1张图片

编译完成,进行make && make install

给机器留有超过 2g的内存与超过20g的硬盘进行make,内存越大,Make越快
LNMP架构搭建(源码编译)_第2张图片
Make完成
LNMP架构搭建(源码编译)_第3张图片
进行make install
LNMP架构搭建(源码编译)_第4张图片
Make insatll完成
LNMP架构搭建(源码编译)_第5张图片

编译安装完成,进行对数据库的具体配置

生成mysql的配置文件
LNMP架构搭建(源码编译)_第6张图片
编辑配置文件,声明数据位置等信息
vim /etc/my.cnf
LNMP架构搭建(源码编译)_第7张图片
创建 mysql 启动脚本,保证其有执行权限
进入:/usr/local/lnmp/mysql/support-files
将 mysql.server 移动到/etc/init.d/
这里写图片描述
创建mysql 用户
这里写图片描述
修改 /usr/local/lnmp/mysql 权限
LNMP架构搭建(源码编译)_第8张图片
修改环境变量
LNMP架构搭建(源码编译)_第9张图片
编辑如下:
LNMP架构搭建(源码编译)_第10张图片
对数据库进行初始化
生成/usr/local/lnmp/mysql/data/ ,并生成数据库初始密码
LNMP架构搭建(源码编译)_第11张图片
初始化后:
LNMP架构搭建(源码编译)_第12张图片
启动数据库,成功
LNMP架构搭建(源码编译)_第13张图片
进行安全初始化
LNMP架构搭建(源码编译)_第14张图片
LNMP架构搭建(源码编译)_第15张图片
LNMP架构搭建(源码编译)_第16张图片
LNMP架构搭建(源码编译)_第17张图片
安全初始化完成,进行登陆验证
LNMP架构搭建(源码编译)_第18张图片

2. 进行PHP的编译安装

解决依赖性
 yum install -y libmcrypt-devel-2.5.8-9.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm
解压源码包后进行编译
[root@server10 php-5.6.35]# ./configure --prefix=/usr/local/lnmp/php  --with-config-file-path=/usr/local/lnmp/php/etc --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash 

这里写图片描述
进行make && make install
LNMP架构搭建(源码编译)_第19张图片
成功:
LNMP架构搭建(源码编译)_第20张图片

进行php配置文件的创建

LNMP架构搭建(源码编译)_第21张图片

编辑配置文件,并添加用户

我们在编译时,选择的用户与用户组为nginx ,需要将用户与用户组手动创建,否则无法启动PHP
这里写图片描述
编辑 php.ini 修改时区
这里写图片描述
编辑php-fpm.conf 启用PID
LNMP架构搭建(源码编译)_第22张图片

生成nginx 启动脚本

LNMP架构搭建(源码编译)_第23张图片

启动php ,并查看其监听端口

LNMP架构搭建(源码编译)_第24张图片

3. 进行nginx的编译安装

获得nginx 与 nginx-sticky 的源码包进行编译安装

进行安装前准备
LNMP架构搭建(源码编译)_第25张图片
编辑 nginx.h
这里写图片描述
编辑gcc
这里写图片描述

进行编译安装

这里写图片描述
编译完成
LNMP架构搭建(源码编译)_第26张图片
make && make install
LNMP架构搭建(源码编译)_第27张图片
成功
LNMP架构搭建(源码编译)_第28张图片
编译安装完成

进行配置

编辑 nginx 配置文件 /usr/local/lnmp/nginx/conf/nginx.conf
LNMP架构搭建(源码编译)_第29张图片
编辑 nginx.conf
LNMP架构搭建(源码编译)_第30张图片
LNMP架构搭建(源码编译)_第31张图片
LNMP架构搭建(源码编译)_第32张图片
在系统安全限制目录下声明最大限制数
编辑 /etc/security/limit.conf
这里写图片描述
添加nginx的环境变量,并启动
LNMP架构搭建(源码编译)_第33张图片
编辑 /root/.bash_profile
LNMP架构搭建(源码编译)_第34张图片
启动成功,在浏览器查看
LNMP架构搭建(源码编译)_第35张图片
编辑nginx 默认发布文件
vim /usr/local/lnmp/nginx/html/index.php
内容如下:
LNMP架构搭建(源码编译)_第36张图片
在浏览器进行查看
LNMP架构搭建(源码编译)_第37张图片

4. 利用论坛与数据库进行连接

进行论坛的安装

这里写图片描述
执行unzip 将论坛安装包,解压,解压到nginx 默认发布目录 /usr/local/lnmp/nginx/html
LNMP架构搭建(源码编译)_第38张图片
保证数据库开启,然后在浏览器中输入 172.25.21.10/bbs 进行安装
LNMP架构搭建(源码编译)_第39张图片
修改权限,此处需要修改目录权限,否则会导致安装出问题
这里写图片描述
下一步
LNMP架构搭建(源码编译)_第40张图片
继续选择下一步
LNMP架构搭建(源码编译)_第41张图片
进行安装
LNMP架构搭建(源码编译)_第42张图片
进行数据库关联
LNMP架构搭建(源码编译)_第43张图片
下一步之前需要为PHP手动引导mysql.sock的位置,否则无法进行安装
修改/usr/local/lnmp/php/etc/php.ini,并重新加载php-fpm
LNMP架构搭建(源码编译)_第44张图片
编辑内容如下:
这里写图片描述
LNMP架构搭建(源码编译)_第45张图片
这里写图片描述
修改完成后,还需要进行mysql数据库目录权限修改
LNMP架构搭建(源码编译)_第46张图片
修改完成后点击下一步进行安装
LNMP架构搭建(源码编译)_第47张图片
安装完成,进入论坛
LNMP架构搭建(源码编译)_第48张图片
登录论坛
LNMP架构搭建(源码编译)_第49张图片
在本机数据库进行查看
LNMP架构搭建(源码编译)_第50张图片
简单的lnmp架构完成

你可能感兴趣的:(LNMP架构,源码编译)