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 监听端口  

这里写图片描述

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

给机器留有超过 2g的内存与超过20g的硬盘进行make,内存越大,Make越快
这里写图片描述
Make完成
这里写图片描述
进行make install
这里写图片描述
Make insatll完成
这里写图片描述

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

生成mysql的配置文件
这里写图片描述
编辑配置文件,声明数据位置等信息
vim /etc/my.cnf
这里写图片描述
创建 mysql 启动脚本,保证其有执行权限
进入:/usr/local/lnmp/mysql/support-files
将 mysql.server 移动到/etc/init.d/
这里写图片描述
创建mysql 用户
这里写图片描述
修改 /usr/local/lnmp/mysql 权限
这里写图片描述
修改环境变量
这里写图片描述
编辑如下:
这里写图片描述
对数据库进行初始化
生成/usr/local/lnmp/mysql/data/ ,并生成数据库初始密码
这里写图片描述
初始化后:
这里写图片描述
启动数据库,成功
这里写图片描述
进行安全初始化
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
安全初始化完成,进行登陆验证
这里写图片描述

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
这里写图片描述
成功:
这里写图片描述

进行php配置文件的创建

这里写图片描述

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

我们在编译时,选择的用户与用户组为nginx ,需要将用户与用户组手动创建,否则无法启动PHP
这里写图片描述
编辑 php.ini 修改时区
这里写图片描述
编辑php-fpm.conf 启用PID
这里写图片描述

生成nginx 启动脚本

这里写图片描述

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

这里写图片描述

3. 进行nginx的编译安装

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

进行安装前准备
这里写图片描述
编辑 nginx.h
这里写图片描述
编辑gcc
这里写图片描述

进行编译安装

这里写图片描述
编译完成
这里写图片描述
make && make install
这里写图片描述
成功
这里写图片描述
编译安装完成

进行配置

编辑 nginx 配置文件 /usr/local/lnmp/nginx/conf/nginx.conf
这里写图片描述
编辑 nginx.conf
这里写图片描述
这里写图片描述
这里写图片描述
在系统安全限制目录下声明最大限制数
编辑 /etc/security/limit.conf
这里写图片描述
添加nginx的环境变量,并启动
这里写图片描述
编辑 /root/.bash_profile
这里写图片描述
启动成功,在浏览器查看
这里写图片描述
编辑nginx 默认发布文件
vim /usr/local/lnmp/nginx/html/index.php
内容如下:
这里写图片描述
在浏览器进行查看
这里写图片描述

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

进行论坛的安装

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

猜你喜欢

转载自blog.csdn.net/Buster_ZR/article/details/81628836
今日推荐