lnmp 架构

一、lnmp 架构

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

工作原理

lnmp 架构_第1张图片

  • 客户端的所有的页面请求先到达lnmp结构中的nginx
  • nginx根据自己的判断哪些是静态页面,哪些是动态页面
  • 如果是静态页面直接由nginx自己处理就可以返回结果给客户端了
  • 如果*.php动态页面nginx需要调用php中间件服务器来处理
  • 在处理PHP页面的过程中可能需要调用mysql数据库中的数据完成页面编译
  • 编译完成后的页面返回给nginx,nginx再返回给客户端

二、lnmp架构的搭建

1.mysql 源码安装

yum install cmake-2.8.12.2-4.el6.x86_64.rpm  -y     .安装源码编译工具cmake(支持编译C++语言)用yum安装可以解决软件依赖性

yum install gcc gcc-c++ ncurses-devel -y

 yum install bison -y

解压源码包

tar zxf mysql-boot-5.7.17.tar.gz 

cd mysql-5.7.17/

cmake   -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql

-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data

-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock

-DWITH_MYISAM_STORAGE_ENGINE=1    

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DDEFAULT_CHARSET=utf8 

-DEXTRA_CHARSETS=all

-DWITH_BOOST=boost/boost_1_59_0

如果没有报错,直接执行make & make install

配置 mysql

cd /usr/local/lnmp/mysql/support-files/

cp my-default.cnf /etc/my.cnf

vim /etc/my.cnf ##编辑mysql配置文件

 basedir = /usr/local/lnmp/mysql ##安装目录

 datadir = /usr/local/lnmp/mysql/data ##mysql数据存放目录

 port = 3306 ##端口

socket = /usr/local/lnmp/mysql/data/mysql.sock

lnmp 架构_第2张图片

cp mysql.server /etc/init.d/mysqld
####将编译完成的mysql启动脚本复制到系统启动服务的默认目录中

groupadd -g 27 mysql  创建mysql 组

useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql   指定目录,建立mysql 用户

cd /usr/local/lnmp/mysql/

chown mysql.mysql . -R 

lnmp 架构_第3张图片

cd

将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令

vim .bash_profile

source .bash_profile   ###加载文件
cd /usr/local/lnmp/mysql/
mysql --initialize --user=mysql   ###初始化
执行完这条命林后,会弹出很多行数据,复制最后一条冒号后生成的密码

此时,mysqld服务已经可以开启关闭了

cd /usr/local/lnmp/mysql/

chown root.root . -R

chown mysql data/ -R ###将此目录的所有文件用户和家目录都改成超户 ,除了data改成mysql因为mysql服务将要往这个目录中写数据,保证其有执行权限

打开mysqld

/etc/init.d/mysqld start

mysql_secure_installation

(1)在第一次交互请求后面输入刚刚初始化时复制的密码

(2)然后输入两次新密码

(3)接下来的交互式请求可以直接回车,这条交互式请求是询问你是否要检查密码强度, 如果输入y,就要重新修改密码,密码长度必须超过8位,必须有大小写字母, 所以我们直接回车

(4)接下来会询问是否要修改root密码,直接回车,因为上面已经设置过了

(5)接下来全部输入y回车就行 现在就可以直接进入mysql了

进入数据库

mysql -p
输入设置的密码进入就行

lnmp 架构_第4张图片

mysql完成 搭建

二、php 源码安装

tar jxf php-5.6.35.tar.bz2
cd php-5.6.35

解决依赖性

yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel

 yum install curl curl-devel

yum install -y re2c-0.13.5-1.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm

cd php-5.6.35
yum install -y gmp-devel
yum provides */mcrypt.h

yum install -y libmcrypt*

yum install -y net-snmp-devel

查看是否有报错,若没有直接执行make &  make install

php 安装完成

cd /usr/local/
cd lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf

创建nginx 用户

 useradd nginx

编辑 php-fpm.conf
lnmp 架构_第5张图片

lnmp 架构_第6张图片

cd php-5.6.35
 cp php.ini-production /usr/local/lnmp/php/etc/php.in

vim php.ini  修改时区

cd /root/php-5.6.35/sapi/fpm/
 cp init.d.php-fpm /etc/init.d/
cd /etc/init.d/
 mv init.d.php-fpm php-fpm
chmod +x php-fpm
/etc/init.d/php-fpm start

lnmp 架构_第7张图片

php 搭建完成

三、nginx 源码安装

tar zxf nginx-1.14.0.tar.gz
yum install -y unzip
 unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
cd nginx-1.14.0

 vim src/core/nginx.h

去掉版本号

vim auto/cc/gcc

yum install -y pcre-devel

编译

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

查看是否有报错,若没有直接执行make &  make install

配置nginx服务

cd /usr/local/lnmp/
cd nginx/conf/
vim nginx.conf

lnmp 架构_第8张图片

vim /etc/security/limits.conf

cd ~

ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/
cd /usr/local/lnmp/nginx/html/
vim index.php

 nginx
 cd

在网页查看浏览页是否设置成功

lnmp 架构_第9张图片

 /etc/init.d/mysqld start
/etc/init.d/mysqld status
cd /usr/local/lnmp/php/etc/
vim php.ini

lnmp 架构_第10张图片

lnmp 架构_第11张图片

/etc/init.d/php-fpm reload
cd
 unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
cd upload/
mv index.php ..
 mv * ..
 chmod 777 config/ data uc_client/ uc_server/ -R
chmod 755 /usr/local/lnmp/mysql/data/
 搭建论坛

lnmp 架构_第12张图片

lnmp 架构_第13张图片

lnmp 架构_第14张图片

lnmp 架构_第15张图片

 

lnmp 架构_第16张图片

/usr/local/lnmp/nginx/html/
cd upload/

cd install/

rm -f index.php 

lnmp 架构_第17张图片

论坛搭建成功

 

 

 

 

 

你可能感兴趣的:(lnmp 架构)