LNMP/LEMP项目搭建 { 项目框架 # Linux_____WEB_____PHP_____DB # rhel7_____apache__-(libphp5.so)-__php__-(php-mysql)-__mariadb-server # rhel7_____nginx___-(spawn-fcgi)-__php__-(php-mysql)-__mariadb-server 安装软件包 # WEB 程序 # CGI 管理器 @作用 ()监听9000端口 ()调用Php命令 @软件 spawn-fcgi # php 程序 php # 数据库程序 mariadb-server # php-db驱动 php-mysql 配置nginx # /etc/nginx/conf.d/ 配置spawn-fcgi # /etc/sysconfig/spawn-fcgi 配置mariadb-server 创建数据文件 # 成品的php网站 测试 }
LNMP/LEMP项目搭建 实验 { [root@serverb ~]# mount 172.25.254.250:/content /mnt [root@serverb ~]# rpm -ivh /mnt/item/nginx/other/nginx--.el7.ngx.x86_64.rpm [root@serverb ~]# rpm -ivh /mnt/item/nginx/epel/spawn-fcgi--.el7.x86_64.rpm [root@serverb ~]# yum install -y php mariadb-server php-mysql [root@serverb ~]# cd /etc/nginx/conf.d/ [root@serverb conf.d]# cp default.conf www.bbs.com.conf [root@serverb conf.d]# vim www.bbs.com.conf server { listen ; server_name www.bbs.com; root /usr/share/nginx/bbs.com; index index.php index.html index.htm; location ~ \.php$ { fastcgi_pass ; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/bbs.com$fastcgi_script_name; include fastcgi_params; } } [root@serverb conf.d]# mkdir /usr/share/nginx/bbs.com [root@serverb conf.d]# systemctl restart nginx.service [root@serverb conf.d]# vim /etc/sysconfig/spawn-fcgi OPTIONS="-u nginx -g nginx -p 9000 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi" [root@serverb conf.d]# systemctl start spawn-fcgi [root@serverb conf.d]# /sbin/chkconfig spawn-fcgi on [root@serverb conf.d]# systemctl enable mariadb.service [root@serverb conf.d]# systemctl start mariadb.service [root@serverb conf.d]# mysqladmin -u root password "uplooking" [root@serverb php]# cp Discuz_X3.2_SC_UTF8.zip /tmp/ [root@serverb php]# cd /tmp/ [root@serverb tmp]# unzip Discuz_X3.2_SC_UTF8.zip [root@serverb tmp]# cp -r upload/* /usr/share/nginx/bbs.com/ [root@serverb tmp]# chown nginx /usr/share/nginx/bbs.com/ -R [root@workstation ~]# echo 172.25.15.10 www.bbs.com >> /etc/hosts }
项目迁移 { 迁移优先级 #数据库>其他软件 迁移的流程{ .程序的迁移 .配置文件的迁移 .数据文件的备份与迁移 .地址的修改 .权限的修改 } } LNMP项目迁移 { 迁移优先级 #数据库>php php-mysql spawn-fcgi 迁移的流程{ .程序的迁移 .配置文件的迁移 .数据文件的备份与迁移 .地址的修改 .权限的修改 } 数据库迁移 php相关程序的迁移 } 数据库迁移 { 旧机器上的操作{ >备份数据文件并拷贝至新机器 >修改配置文件中的地址 (此处的配置文件不是数据库配置文件,而是使用数据库的程序的配置文件) } 新机器上的操作{ >安装程序并启动服务 >导入旧机器上的数据文件 >修改程序的权限 } } 项目迁移实验 { .数据库迁移实验 #实验目的:随着网站用户的增多,数据量越来越大,数据库需要扩容,现在想将数据库单独放在一台服务器上来解决数据库容量不足的问题 #实验要求:将数据库从serverb-->serverj .LNMP项目迁移实验 #实验目的:原本的LNMP服务所在的服务器老化了,现在公司新买了两台服务器,要将LNMP服务迁移到新服务器上;数据库单独放在一台服务器上;php相关程序放在一台服务器上 #实验要求:数据库serverb-->serverj;php相关程序serverb-->serverc .LNMP项目迁移并配置第二个php服务实验 #实验要求:原本的LNMP服务所在的服务器老化了,现在公司新买了三台服务器,要将LNMP服务迁移到新服务器上;数据库单独放在一台服务器上;还有两台,配置两个php服务 } 具体实验请去实验论坛 数据库迁移详 实验 { #实验目的:随着网站用户的增多,数据量越来越大,数据库需要扩容,现在想将数据库单独放在一台服务器上来解决数据库容量不足的问题 #实验要求:将数据库从serverb-->serverj #实验步骤: ======================================================================== serverb{ #数据库备份 mysqldump --all-databases -uroot -puplooking > /tmp/mariadb.all.sql <--将数据库文件备份并导出到/tmp/mariadb.all.sql文件中 #复制到serveri中 scp /tmp/mariadb.all.sql serveri:/tmp #地址的修改<==在/usr/share/nginx/bbs.com/目录中循环找到以.php结尾的文件,在文件中找到uplooking关键字的所在行,但是不输出(-q),而是输出该文件的文件名。此处uplooking是数据库的密码,请根据实际情况做修改。 cd /usr/share/nginx/bbs.com;for i in $(find ./ -name "*.php");do grep -q "uplooking" $i && echo $i;done vim xxx.php #将找到的文件进行修改,将localhost改为数据库所在的服务器的ip地址 #define('UC_DBHOST', 'localhost'); } serverj{ #安装mariadb-server 注意版本 安装相同版本的数据包 yum install -y mariadb-server #开启服务,并设置开机服务自启 systemctl enable mariadb;systemctl start mariadb #查看数据库文件是否复制成功 ll /tmp/mariadb.all.sql #导入数据库文件 mysql < /tmp/mariadb.all.sql #授权serverb的spawn-fcgi访问数据库 #>授权ip地址 echo "grant all on bbs.* to root@'192.168.0.11' identified by 'uplooking';" | mysql-u root -p uplooking #>授权主机名 echo "grant all on bbs.* to root@'serverb.pod15.example.com' identified by 'uplooking';" | mysql -uuroot -puplooking #更新授权表 mysqladmin -uroot -puplooking flush-privileges } -------------------------------------------------------------------------- #测试 serverb{ #关闭数据库服务 systemctl stop mariadb } workstation{ #通过浏览器登陆www.bbs.com firefox } #问题和答案 #-u root 不能有空格;-p uplooking 不能有空格 mysqldump --all-databases -uroot -puplooking > /tmp/mariadb.all.sql #find搜索*.php必须用双引号 find ./ -name "*.php" #mysql登陆方式 mysql -uroot -puplooking mysql -u root -p 回车 输入密码 #*.*是指什么目录下的所有文件呢? echo "grant all on *.* to root@'192.168.0.11' identifide by 'uplooking';" | mysql -uroot -puplooking /var/lib/mysql } LNMP项目迁移实验 { #实验目的:原本的LNMP服务所在的服务器老化了,现在公司新买了两台服务器,要将LNMP服务迁移到新服务器上;数据库单独放在一台服务器上;php相关程序放在一台服务器上 #实验要求:数据库serverb-->serverj;php相关程序serverb-->serverc #实验步骤: =============================================================== #第一步——数据库迁移(serverb-->serverj) serverb{ #数据库备份 mysqldump --all-databases -uroot -puplooking > /tmp/mariadb.all.sql <--将数据库文件备份并导出到/tmp/mariadb.all.sql文件中 #复制到serveri中 scp /tmp/mariadb.all.sql serveri:/tmp #地址的修改<==在/usr/share/nginx/bbs.com/目录中循环找到以.php结尾的文件,在文件中找到uplooking关键字的所在行,但是不输出(-q),而是输出该文件的文件名。此处uplooking是数据库的密码,请根据实际情况做修改。 cd /usr/share/nginx/bbs.com;for i in $(find ./ -name "*.php");do grep -q "uplooking" $i && echo $i;done #将找到的文件进行修改,修改server_name,为数据库所在的服务器的ip地址 vim xxx.php } serverj{ #安装mariadb-server 注意版本 安装相同版本的数据包 yum install -y mariadb-server #开启服务,并设置开机服务自启 systemctl enable mariadb;systemctl start mariadb #设置数据库密码 mysqladmin -u root password 'uplooking' #查看数据库文件是否复制成功 ll /tmp/mariadb.all.sql #导入数据库文件 mysql < /tmp/mariadb.all.sql #授权serverb的spawn-fcgi访问数据库 #>授权ip地址 echo "grant all on *.* to root@'192.168.0.11' identified by 'uplooking';" | mysql -uroot -puplooking #>授权主机名 echo "grant all on *.* to root@'serverb.pod15.example.com' identified by 'uplooking';" | mysql -uroot -puplooking #更新授权表 mysqladmin -uroot -puplooking flush-privileges } } --------------------------------------------------------------------------- #第二步——php相关程序的迁移 (serverb-->serverc) serverb{ #操作数据(偷懒的做法,直接将文件复制过去即可) scp /etc/sysconfig/spawn-fcgi serverc:/etc/sysconfig/spawn-fcgi #将serverb中的php相关文件转移到 serverc中 (需要相同的目录,最好用tar命令打包复制到serverc中) tar -cjf bbs.tar.bz2 /usr/share/nginx/bbs.com; scp bbs.tar.bz2 serverc:/usr/share/nginx/bbs.com #地址修改 serverb 中的/etc/nginx/conf.d 目录下配置文件中关于php的配置的php指向改为 serverc的地址 location ~ \.php$ { fastcgi_pass ;(改为servec的地址) fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/yeliangcheng.com$fastcgi_script_name; include fastcgi_params; } } serverc{ #迁移程序--安装相同的软件包 php php-mysql /mnt/item/nginx/epel/spawn-fcgi--.el7.x86_64.rpm #启动服务并设置开机自启 systemctl start spawn-fcgi; /sbin/chkconfig spawn-fcgi on #php相关文件 tar -jxf /usr/share/nginx/bbs.com/bbs.tar.bz2 } =================================================================================== #测试 serverb{ #关闭数据库服务 systemctl stop mariadb #关闭spawn-fcgi服务 systemctl stop spawn-fcgi /sbin/chkconfig spawn-fcgi off } workstation{ #通过浏览器登陆www.bbs.com firefox } #问题和解决 }