整机迁移

阿里云整机迁移,迁移内容: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需要复制
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值