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架构完成