31.企业级LNMP(Linux+Nginx+Mysql+Php)架构的部署实现

1.LNMP架构简介:

(1)LNMP的组成部分

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python
在这里插入图片描述

(2)LNMP的工作原理

首先,浏览器发送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的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。


client -> nginx -> php(php-fpm) -> mysql_connect()/mysql_select() -> mysql(redis)

nginx:有缓存功能
php:动态资源交给php
mysql_connect():数据库连接
mysql_select():数据库查询是否存在
mysql:关系型数据库


2.实验环境

使用rhel6.5版本虚拟机,虚拟机配置cpu-2个,内存大小-2048,硬盘大小-20G

3.Php的配置安装

PHP简单介绍:

一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快

(1)代理机server1:下载软件php-5.6.35.tar.bz2,并解压安装

tar jxf php-5.6.35.tar.bz2
cd php-5.6.35切换目录,进行编译
在这里插入图片描述

解决编译时需要的依赖软件,并开始安装(需要libmcrypt两个安装包)
yum install -y gcc pcre-devel zlib-devel libxml2-devel openssl-devel libcurl-devel libjpeg-turbo-devel.x86_64 0:1.2.1-1.el6 libpng-devel-1.2.49-1.el6_2.x86_64 freetype-devel.x86_64 gmp-devel-4.3.1-7.el6_2.2.x86_64 openldap-devel-2.4.23-32.el6_4.1.x86_64 libmcrypt.x86_64 libmcrypt-devel.x86_64 net-snmp-devel
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --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
在这里插入图片描述
在这里插入图片描述

(2)代理机server1:安装完成后的Php设置:

创建用户

useradd nginx
mkdir /usr/local/lnmp		#之前以建立过的则不需要再次建立

配置文件的复制

cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf	#查看用户和用户组是否是nginx
	pid = run/php-fpm.pid	#取消注释

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主配置文件的复制
cd php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
vim /usr/local/lnmp/php/etc/php.ini #修改时区,主配置文件
date.timezone = Asia/Shanghai
在这里插入图片描述
在这里插入图片描述
启动脚本的复制
cd /root/php-5.6.35
cd php-5.6.35/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
在这里插入图片描述
开启php
/etc/init.d/php-fpm start
netstat -tnlp #查看127.0.0.1:9000端口是否打开(回环接口:nginx通过内部接口访问php)< FastCGI = Fast Common Gateway Interface 接口>
在这里插入图片描述
为使开启php方便,添加php环境变量

vim ~/.bash_profile	
	PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin
source ~/.bash_profile

在这里插入图片描述
在这里插入图片描述

4.Mysql的配置安装

(1)代理机server1:下载安装mysql和cmake
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm		#安装cmake
tar zxf mysql-boost-5.7.27.tar.gz	#解压mysql安装包
ls
cd mysql-5.7.27/		#进入解压目录
ls

在这里插入图片描述
在这里插入图片描述在编译过程中需要解决依赖性,并且在每次重新编译前都需要删除解压包目录下的CMakeCache.txt文件

yum install -y gcc-c++ ncurses-devel bison	#安装软件解决依赖性

#编译方法1:
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
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DWITH_BOOST=boost/boost_1_59_0/
#编译方法2:
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 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0

make && make install	#安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)代理机server1:配置mysql

启动脚本的复制

cd support-files/
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
在这里插入图片描述

修改配置文件

cp /etc/my.cnf /etc/my.cnf.bak
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket = /usr/local/lnmp/mysql/data/mysql.sock
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
在这里插入图片描述
在这里插入图片描述

修改用户和用户组,生成data目录

groupadd -g 27 mysql #当不进行编译,使用yum直接安装mysql时,生成的用户组id就为27
useradd -u 27 -g 27 mysql
chown mysql.mysql /usr/local/lnmp/mysql -R
在这里插入图片描述

修改环境配置

vim ~/.bash_profile
	PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source ~/.bash_profile	#使修改生效 

在这里插入图片描述
在这里插入图片描述

数据库初始化
mysqld --user=mysql --initialize (会生成一个密码)
在这里插入图片描述

将安装目录的所有人改回为root(安全),将data目录的所有人改为mysql

chown root /usr/local/lnmp/mysql -R
chown mysql /usr/local/lnmp/mysql/data -R
在这里插入图片描述

开启mysql,进行安全初始化

/etc/init.d/mysqld start
netstat -tnlp #3306端口开启
mysql_secure_installation #两次n,四次y(初始化时,data目录下必须为空)

5.Nginx的配置安装(nginx-1.16.0版本)

(1)下载编译安装nginx
tar zxf nginx-1.16.0.tar.gz
cd nginx-1.16.0
vim src/core/nginx.h
	#define NGINX_VER          "nginx"	#取消版本显示	
vim auto/cc/gcc	
	#CFLAGS="$CFLAGS -g"	#编译安装后的nginx内存占有量较小
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx	#编译(提前应安装pcre-devel---yum install -y pcre-devel)
make && make install	#安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)安装nginx完成后的配置

修改配置文件

cd /usr/local/lnmp/nginx/
vim conf/nginx.conf
写入:
user  nginx nginx;

	location / {
            	root   html;
            	index index.php index.html index.htm;	#添加php默认发布页面	
        	}

        location ~ \.php$ {	#打开php配置
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建立软连接

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin
echo $PATH	#查看是否软链接添加成功

在这里插入图片描述

编辑php默认发布文件

cd html/
vim index.php	#写入php页面
	<?php
	phpinfo()
	?>

在这里插入图片描述

开启nginx

/etc/init.d/mysqld start	#开启mysq

netstat -tnlp	#80端口,3306端口开启

在这里插入图片描述

测试
浏览器输入:172.25.18.1 出现php页面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值