昨天内容: module; 语法结构: 配置实例; 应用场景;

	缓存模块;图片需要开启;
	gzip压缩;图片;文本类、视频、音频类;
	
	限速;视频站点时;
	连接数;
	状态模块:监控;

今日内容: 1.LNMP(运行环境); 2.Nginx+PHP集成; 3.PHP集成MySQL; 4.交付产品 Wordpress、Wecenter、Edusoho;OElove、ShopXO PHP环境; 5.交付Kodcloud 产品,网盘,对接Redis缓存; 6.拆分数据库; 7.扩展多个节点; 8.增加共享存储; 9.增加反向代理、负载均衡;

1.user--> http --> nginx  --> fastcgi --> php-fpm  ---> tcp --> mysql 
2.mysql --> tcp --> php-fpm --> fastcgi --> nginx --> http --> user

1.安装Linux服务器;

前置的基本环境: [root@web01 ~]# groupadd -g 666 www [root@web01 ~]# useradd -g 666 -u 666 www

2.安装Nginx [root@oldxu ~]# cat /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1

#安装Nginx
[root@oldxu ~]# yum install nginx -y
[root@web01 ~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf

3.安装PHP [root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common -y [root@web01 ~]# wget http://cdn.xuliangwei.com/php.zip [root@web01 ~]# unzip php.zip [root@web01 ~]# yum localinstall php/*.rpm -y [root@web01 ~]# systemctl enable php-fpm [root@web01 ~]# systemctl start php-fpm

[root@web01 ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf 
[root@web01 ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf 
[root@web01 ~]# php-fpm -t
[root@web01 ~]# systemctl restart php-fpm

4.安装Mariadb [root@web01 ~]# yum install mariadb mariadb-server -y [root@web01 ~]# systemctl enable mariadb [root@web01 ~]# systemctl start mariadb

5.Nginx如何集成PHP;

6.PHP如何集成MySQL;

1.安装mysql
	[root@web01 ~]# yum install mariadb-server mariadb -y
	[root@web01 ~]# mysqladmin password 'oldxu.net123'
	[root@web01 ~]# mysql
	ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
	
	[root@web01 ~]# mysql -uroot -poldxu.net123						# 基于用户名+密码的方式链接;
	MariaDB [(none)]> 
	

2.编写一个php的脚本,测试链接mysql,如果成功说明,php能正常操作数据库;
	

2.mysql设定一个密码:

3.使用php的脚本测试链接mysql,如果能链接成功,说明php和mysql集成是没有的;

1.编写Nginx配置;

2.下载代码,部署代码: [root@web01 ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz [root@web01 ~]# tar xf latest-zh_CN.tar.gz -C /code/ [root@web01 ~]# chown -R www.www /code/wordpress/

3.创建mysql的库;

MariaDB [(none)]> create database wordpress; MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wordpress | +--------------------+ 5 rows in set (0.00 sec)

MariaDB [(none)]> use wordpress; Database changed MariaDB [wordpress]> show tables; Empty set (0.00 sec)

1.Nginx PHP Mariadb; 2.Wordpress、Wecenter、Love、shop

1.将数据独立出来; 2.扩展多个web节点; ( nginx php ) 3.共享图片 接入NFS存储; 4.

1.准备环境:

1.web节点;10.0.0.7
2.db节点:10.0.0.51					配置一个远程主机可以链接的用户名称+密码;

2.在db节点安装mariadb [root@db01 ~]# yum install mariadb mariadb-server -y [root@db01 ~]# systemctl enable mariadb [root@db01 ~]# systemctl start mariadb

[root@db01 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1559/mysqld

3.在web节点上将原来旧的数据库备份下来;

[root@web01 ~]# mysqldump -uroot -poldxu.net123 --all-databases > /tmp/db.sql [root@web01 ~]# du -sh /tmp/db.sql 6.0M /tmp/db.sql [root@web01 ~]# less /tmp/db.sql

4.在web节点上将备份的数据推送到db节点;

[root@web01 ~]# rsync /tmp/db.sql root@172.16.1.51:/tmp

5.db节点取恢复数据到数据库中; [root@db01 ~]# mysql < /tmp/db.sql [root@db01 ~]# systemctl restart mariadb [root@db01 ~]# mysql -uroot -poldxu.net123 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | edusoho | | love | | mysql | | performance_schema | | shop | | test | | wordpress | | zh | +--------------------+ 9 rows in set (0.00 sec)

6.为db节点,创建一个远程用户app,密码是oldxu.net123,允许所有网段都可以访问,权限是所有; MariaDB [(none)]> grant all privileges on . to 'app'@'%' identified by 'oldxu.net123'; MariaDB [(none)]> flush privileges;

7.测试是否能通过远程访问数据库 [root@web01 ~]# mysql -h 172.16.1.51 -uapp -poldxu.net123

8.将业务代码链接的数据库,修改到远程的db节点上;

web节点数据库停止:
[root@web01 ~]# systemctl stop mariadb
[root@web01 ~]# systemctl disable mariadb


web修改业务链接数据库的地址,完成应用割接;


cd /code/wordpress
find ./ -type f | xargs grep -R "oldxu.net123"

准备环境: 1.台已经准备就绪; 2.新增一台web节点:10.0.0.8

环境构建(ansible):
	2.1) 创建用户www;
		[root@web02 ~]# groupadd -g 666 www
		[root@web02 ~]# useradd -g 666 -u 666 www
	
	2.2) 安装Nginx
		gzip /etc/yum.repos.d/epel.repo 
		yum install nginx 
		gzip -d /etc/yum.repos.d/epel.repo 
	
		2.2.1) 新增站点配置文件、修改nginx默认运行身份;
			rsync -avz root@172.16.1.7:/etc/nginx/  /etc/nginx/
			nginx -t
			systemctl start nginx
			systemctl enable nginx
	2.3) 安装php
		2.3.1) 修改php的运行身份;
		2.3.2)拷贝此前php.ini配置文件;
		
	wget http://cdn.xuliangwei.com/php.zip
	unzip php.zip 
	yum localinstall php/*.rpm -y
	rsync -avz root@172.16.1.7:/etc/php.ini /etc/php.ini 
	rsync -avz root@172.16.1.7:/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf 	
		

	 php-fpm -t
	 systemctl start php-fpm
	 systemctl enable php-fpm


代码部署(jenkins):
	2.4) 部署业务代码
	rsync -avz root@172.16.1.7:/code /

1.增加一台NFS共享服务器:

2.统一用户身份www: [root@nfs ~]# groupadd -g 666 www [root@nfs ~]# useradd -g 666 -u 666 www

3.安装nfs [root@nfs ~]# yum install nfs-utils -y

4.配置共享的目录; /data

将数据盘共享出去1T;
		mkfs.xfs /dev/sdb
		rm -rf /data/
		mkdir /data
		mount -t xfs /dev/sdb /data/
		echo "/dev/sdb /data xfs defaults 0 0 " >> /etc/fstab 
		mount -a
		df -h



[root@nfs ~]# cat  /etc/exports
/data/blog  172.16.1.0/24(rw,all_squash,anonuid=666,anongid=666)
/data/zh  172.16.1.0/24(rw,all_squash,anonuid=666,anongid=666)


	mkdir /data/blog
	mkdir /data/zh
	chown -R www.www /data/


	systemctl enable nfs
	systemctl restart nfs

4.找到代码的静态资源,然后将其挂载至NFS存储中;

wordpress:

http://blog.oldxu.net/wp-content/uploads/2021/08/123-1024x682.jpg




/= /code/wordpress/wp-content/uploads/2021/08/123-1024x682.jpg


scp -rp /code/wordpress/wp-content/uploads/2021 root@172.16.1.32:/data/blog/
mount -t nfs 172.16.1.32:/data/blog /code/wordpress/wp-content/uploads/
df -h


由于节点推送数据,造成权限变化,需要重新登录nfs授权;
[root@nfs ~]# chown -R www.www /data/

wecenter: mount -t nfs 172.16.1.32:/data/zh /code/zh/uploads/