阿里云整机迁移,迁移内容:mysql,web服务。
一、在新机上登录,做相关配置修改
- 更改主机名vim /etc/hostname ,并重启
- 修改ssh配置,vim /etc/ssh/sshd_config #完成后重启服务systemctl restart sshd
UseDNS no
AddressFamily inet
PermitRootLogin no #将root设置为禁用登录
SyslogFacility AUTHPRIV
PasswordAuthentication yes #允许密码登录连接
- 添加用户
#useradd username
#passwd ussername $password
二、新机(B主机)环境搭建
- 安装包准备,如果原主机有安装包,可以通过scp 复制拷贝(scp -r sources.tar.gz username@ip:/home/username/),这种方式较慢;也可以在原主机上搭建ftp;建议直接使用官网安装,直接下载
- 这里我们直接拷贝好事先准备好的安装包(原主机上的安装包,用原来主机上的包,可能减少打其它补丁)
1、先搭建httpd,cd到安装程序目录,执行
- ./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
- make
- make install
- vim /etc/profile.d/lamp.sh #添加如下 行,进行环境变量设置
PATH=/app/httpd24/bin/:$PATH - 添加好后,执行./etc/profile.d/lamp.sh 脚本生效,执行echo $PATH 进行查看
编译安装httpd常见错误与分析
make[2]: *** [install] 错误 1
make[2]: Leaving directory `/tmp/httpd-2.4.34/srclib/apr-util'
make[1]: *** [install-recursive] 错误 1
make[1]: Leaving directory `/tmp/httpd-2.2.22/srclib'
缺少apr apr-util,在http://apr.apache.org/下载对应的安装包
# tar -zxvf apr-1.6.5.tar.gz
#tar -zxvf apr-util-1.6.1.tar.gz
# cp -r apr-1.6.5 httpd-2.4.34/srclib/apr
# cp -r apr-util-1.6.1 httpd-2.4.34/srclib/apr-util
错误2、make[1]: *** [xml/apr_xml.lo] Error 1
缺少expat-devel
yum install expat-devel
错误3、# ./apachectl 启动报错
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.48.224. Set the 'ServerName' directive globally to suppress this message
没有设置severname,
打开编辑vim /etc/httpd24/httpd.conf,添加如下行
ServerName localhost:80
2、搭建mysql(二进制安装)
- #创建mysql用户及用户组
[root@shitouji ~]# groupadd mysql
[root@shitouji ~]# useradd mysql -g mysql - #创建数据库存放的文件夹
[root@shitouji ~]# mkdir /app/mysqldb - #更改所属用户及组
[root@shitouji ~]# chown mysql /app/mysqldb/
[root@shitouji ~]# chgrp mysql /app/mysqldb/ - #初始化数据库
[root@shitouji mysql]# scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
[root@shitouji support-files]# cp wsrep.cnf /etc/my.cnf 复制配置文件 - #配置vim /etc/my.cnf ,在[mydqld]下更改配置,添加下面三行
[mysqld]
datadir = /app/mysqldb
innodb_file_per_table = ON
skip_name_resolve = ON - #添加服务
[root@shitouji mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@shitouji mysql]# chkconfig --add mysqld
[root@shitouji mysql]# chkconfig --list - #创建日志
[root@shitouji mysql]# mkdir /var/log/mariadb
[root@shitouji mysql]# chown mysql /var/log/mysql/ - #修改PATH路径
[root@shitouji ~]# vi /etc/profile.d/lamp.sh
#!/bin/bash
#
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH - mysql_secure_installation 运行安全脚本,生产环境需要设置密码,删除测试库
- [root@shitouji /]# mysql -uroot -p
MariaDB [(none)]> create database blog; #创建数据库
MariaDB [mysql]> grant all on blog.* to shitouji@'172.18.251.%' identified by 'Minioe#$2018';
MariaDB [mysql]> grant all on blog.* to shitouji@'127.%' identified by 'Minioe#$2018';
MariaDB [mysql]> grant all on blog.* to shitouji@'localhost' identified by 'Minioe#$2018'; - [mysql]> flush privileges;
3、编译安装PHP
[root@shitouji shitou]# yum install bzip2.x86_64 bzip2-devel.x86_64 libxml2-devel#解决依赖包
[root@shitouji ~]# yum install php-mcrypt libmcrypt libmcrypt-devel#解决依赖包
[root@shitouji shitou]# tar -xjvf php-7.1.21.tar.bz2
[root@shitouji shitou]# cd php-7.1.21
[root@shitouji ~]# ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo
make && make install
#修改配置文件
[root@shitouji php-7.1.21]# cp php.ini-production /etc/php.ini
[root@shitouji php-7.1.21]# vi /etc/httpd24/httpd.conf
#在文件尾部加如下两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
#重启服务
apachectl stop
apachectl
#启动apache常见问题
root@localhost httpd-2.4.7]# /usr/local/httpd/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
apache 启动出现这种错误的解决方法:
将 apache 的配置文件httpd.conf中的 ServerName 改成可用域名或如下配置
ServerName localhost:80
-----------------------------------------------
#测试数据连接
[root@shitouji htdocs]# vi index.php
echo "连接数据库成功!";
$mysqli->close();
<html><body><h1>LAMP</h1></body></html>
<?php
$mysqli=new mysqli('localhost','shitouji','Minioe#$2018');
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
phpinfo();
?>
4、数据迁移
主机A,进行数据库备份,进行主服务器配置
- show table status; #查看库中所有表的信息(包括表的所用引擎)
- [root@shitouji ~]# mysqldump -uroot -p --master-data=2 --flush-logs --databases blog --single-transaction >/boot/blog.sql
- #使用--single-transaction选项时,不需要再使用 --lock-all-tables来锁定表,--single-transaction选项会自动进行锁定,在备份时,保存的文件最好是有时间格式/boot/blog`date +%F%H%M%S`.sql
- [root@shitouji ~]# scp -r blog.sql shitouji@IP:/home/shitouji/ #复制数据库
- [root@shitouji ~]# tar -zcf blog.tar.gz blog/ #添加压缩应用
- [root@shitouji ~]# scp -r blog.tar.gz shitouji@IP:/home/shitouji/ #复制应用数据
- 主服务器配置 vim /etc/my.cnf
- server-id = 1 character-set-server=utf8 #与从服务器的server-id不能一样
- 添加从服务器同步复制的用户 mysql>GRANT REPLICATION SLAVE ON *.* TO 'rep'@'从服务器ip';
主机B,进行数据还原,进行从服务器配置
- mysql -uroot -p < blog.sql
- 从服务器配置 vim /etc/my.cnf #将主服务器复制过来的配置文件进行修改并添加中继日志
- server-id = 2 character-set-server=utf8 relay-log= relay-log-bin relay-log-index = slave-relay-bin.index
- mysql> change master to master_host='主服务IP',master_user='用户',master_password='',master_log_file='mysql-bin.000030',master_log_pos=3255;
- mysql>show slave status\G; #查看从服务器状态,是否启动IO 和SQL线程
- start/stop slave; #启动/停止从服务器
- start/stop slave IO_Thread #启动/停止从服务器IO线程
- start/stop slave SQL_Thread #启动/停止从服务器SQL线程
应用数据迁移
- tar -zcf blog.tar.gz blog/ #主机A上压缩归档应用数据
- scp -r blog.tar.gz 主机名@'IP':/home/ #复制到主机B
- tar -zxvf blog.tar.gz 指定路径中 #主机B上解压到指定路径中
- 注意事项
- 迁移后,数据库连接地址和用户名注意更改
- 域名是否是改和重新指定主机
- 应用配置的设置(最好是复制过来)
- .htaccess需要复制