LNMP架构软件安装
架构组成
Linux (安全服务关闭 /tmp/目录权限是否是1777)
nginx (1.16.1)
php (7.1)
mariadb (yum安装最新)
nginx安装
第一步
yum install -y yum-utils
第二步
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
第三步
yum-config-manager --enable nginx-mainline
第四步
yum install -y nginx
php软件安装
第一步: 解决yum安装软件冲突问题
yum remove php-mysql php php-fpm php-common
第二步: 更新php程序yum下载源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
第三步: 安装php软件和相关依赖
yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
第四步: 启动服务程序
systemctl start php-fpm
mariadb 软件安装
yum install mariadb-server mariadb -y
LNMP架构原理说明
1) 用户向网站发起访问
a 静态请求访问
b 动态请求访问
2) nginx程序接受用户HTTP请求信息
a 静态请求信息 由nginx程序直接作出响应
b 动态请求信息 由nginx借助fastcgi_pass指令将请求通过fastcgi接口发送给php程序进行处理
3) php程序接受nginx发送动态请求信息
a 本身可以直接处理 通过解析器直接处理 转换成html代码信息返回给nginx程序
b 需要调用数据库处理 通过解析器访问数据库 数据库会进行处理后返回给php结果
4) nginx接收php返回的信息
将结果信息返回给用户
分析LNMP架构问题
1) nginx服务程序是否出现问题
2) php服务程序是否出现问题
3) mariadb服务程序出现问题
LNMP架构部署配置过程
nginx + php程序进行串联
完整配置
server {
listen 80;
server_name blog.test.com;
root /html/blog;
index index.html index.htm index.php;
location ~ \.php$ {
root /html/blog;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
验证测试
cd /html/blog/
vim test.php
<?php
echo("hello world");
?>
php + mariadb建立关系: 由开发人员
php连接数据库代码
<?php
$servername = "localhost";
$username = "root";
$password = "test123";
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
echo "mysql successful by root !\n";
}else{
die("Connection failed: " . mysqli_connect_error());
}
?>
利用LNMP架构构建动态网站
第一步: 需要获取网站动态代码信息
blog动态网站代码:开源代码
将代码解压,将解压后代码信息复制到站点目录中
unzip wordpress-5.3-zh_CN.zip
mv wordpress/* /html/blog/
第二步: 修改站点目录权限信息
chown -R nginx.nginx /html/blog
第三步: 进行网站搭建初始化配置
http://blog.test.com/index.php
http://blog.test.com/wp-admin/setup-config.php --- 网站初始化页面
mysqladmin -uroot password "test123"
mysql -uroot -ptest123 -hlocalhost
create database blog; --- 创建数据库信息
show databases; --- 查看数据库信息
grant all on blog.* to 'blog'@'localhost' identified by 'test123';
select user,host from mysql.user; --- 检查数据库信息
show global variables like "%datadir%"; --- 查看储存数据目录
第四步: 直接访问网站页面
动态网站搭建后如何上传数据
解决数据无法上传方式
方式一: 修改站点目录权限(php进程用户权限)
chown -R apache.apache /html/blog/
方式二: 修改php程序进程用户和nginx程序进程用户保持统一
vim /etc/php-fpm.d/www.conf
8 user = nginx
10 group = nginx
systemctl restart php-fpm
客户端上传数据大小限制
限制因素1: 由于nginx服务影响
Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location
限制因素2: 由于php服务影响
vim /etc/php.ini
upload_max_filesize = 2M -- 调整大小为10M
LNMP架构网站数据分离操作
分离数据库服务原因
可以实现数据共享统一存储
数据库服务数据迁移过程
第一步: 备份数据信息(迁移之前web服务器)
mysqldump -uroot -ptest123 -A > /tmp/backup.sql
第二步: 迁移数据信息(迁移之前web服务器)
scp -rp /tmp/backup.sql 172.16.1.51:/tmp/
第三步: 恢复数据信息(迁移之后数据库服务器)
mysql -uroot -ptest123 < /tmp/backup.sql
补充说明: mysqladmin 设置密码信息/修改密码信息, 不能实现破解密码
设置密码命令
mysqladmin -u username password “initpassword”
修改密码命令
mysqladmin -u username -p password newpassword
查看数据库的表信息
show databases;
数据数据迁移完毕后续操作过程
可以关闭本地数据库服务(web)
systemctl stop mariadb.service
systemctl disable mariadb.service
需要修改连接数据库代码信息(web)
cd /html/blog/
vim wp-config.php
32 define( 'DB_HOST', '172.16.1.51' );
需要调整数据配置信息(db)
grant all on blog.* to 'blog'@'172.16.1.%' identified by 'test123';
LNMP架构网站串联存储服务
串联过程实践
第一步: 将本地存储好数据进行保存备份
mkdir /tmp/blog_backup
mv /html/blog/wp-content/uploads/* /tmp/blog_backup/
第二步: 检查确认存储服务是否可以正常使用
showmount -e 172.16.1.31
第三步: 进行存储服务挂载操作
mount -t nfs 172.16.1.31:/data/blog/ /html/blog/wp-content/uploads/
第四步: 将之间备份数据进行恢复(本地数据传递存储服务器)
mv /tmp/blog_backup/* /html/blog/wp-content/uploads/