Tang

网站从阿里云虚拟主机迁移到了ECS

域名和主机双双面临续费,直接把网站数据全部迁移到了ECS,为什么感觉还比虚拟主机便宜了w

本文记录下迁移过程。

首先备份所有旧网站数据,包括数据库和网站文件,虚拟主机后台自带的功能里有,直接导出。

接下来就是具体的迁移工作了,继续采用树莓派上的LNMP,熟悉,稳定w

 

一、准备工作

阿里云市场里有现成的LNMP架构,不过实在无法信任,所以只选择官方给的Debian 8.9

 

开放ECS的端口

在ECS选项中选择“安全组”,增加安全规则,入方向允许22端口和3389端口,方便远程管理。

增加软件源

因为阿里云官方自带的源有问题,进入远程管理后,需要手动增加软件源:

nano /etc/apt/sources.list

写入,用了中科大的

deb https://mirrors.ustc.edu.cn/debian/ jessie main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian/ jessie main contrib non-free

deb https://mirrors.ustc.edu.cn/debian/ jessie-updates main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian/ jessie-updates main contrib non-free

deb https://mirrors.ustc.edu.cn/debian/ jessie-backports main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian/ jessie-backports main contrib non-free

deb https://mirrors.ustc.edu.cn/debian-security/ jessie/updates main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian-security/ jessie/updates main contrib non-free

更新

apt-get upgrade

apt-get update

 

安装screen工具

screen在远程控制来说比较好用,可以保留进度,窗口关了正在做的事情也不会丢,我比较喜欢w

apt-get install screen

 

二、网站架构与迁移

接下来开始安装nginx、php和mysql

apt-get install nginx

apt-get install php5 php5-fpm

apt-get install mysql-server

apt-get install mysql-client

可能还要卸载掉apache2,避免与nginx冲突

sudo apt-get autoremove --purge apache2

 

配置nginx

nano /etc/nginx/sites-available/default

改为

#默认配置
server {
listen 80 default_server;
server_name catfish.ren;
root /var/www;
index index.html index.htm index.nginx-debian.html index.php;

#增加上传文件大小限制
client_max_body_size 100m;

location  / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}

重启nginx

service nginx reload

此时输入IP地址应该已经可以正常访问网站,把原网站的东西统统放进来w

 

数据库导入

因为使用的是wordpress,接下来为博客导入数据库文件,用phpmyadmin管理数据库会比较直观方便

apt-get install phpmyadmin

安装配置时,不要选择apache或者另外一个选项,留空就可以。

在网站目录将管理页面链接过来

sudo ln -s /usr/share/phpmyadmin

这样就可以在网页操作mySQL,如果备份文件大小超限,可以在后台导入备份好的数据库

mysql -u用户名 -p密码

use 你想用的数据库名

source /var/backups/备份文件.sql

这样数据库也到位了

 

修改wordpress配置文件

最后改变每个wordpress文件夹的配置文件,对每个wp-config.php文件,修改数据库的部分

define('DB_NAME', '数据库名');
/** MySQL数据库用户名 */
define('DB_USER', '用户名');
/** MySQL数据库密码 */
define('DB_PASSWORD', '密码');
/** MySQL主机 */
define('DB_HOST', 'localhost');

接下来回到阿里云控制台,找到云解析,将IP地址改成当前ECS主机的地址就可以了,十分钟内生效。因为使用了二级域名,所以需要再改一下wordpress的数据库,不过以前写过,不再赘述w

 

三、变更域名解析地址

找到阿里云控制台的域名解析管理,IP改成ECS主机的外网地址,等待生效。迁移到ECS有一个好处就是可以设置自己的二级域名,nginx的网站配置文件中增加内容如下

#泛域名解析
server {
listen 80;

#修改点1
server_name ~^(?<subdomain>.+).catfish.ren;

#修改点2
root /var/www/$subdomain;
index index.html index.htm index.nginx-debian.html index.php;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;

#修改点3
fastcgi_param domain $subdomain;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}

在阿里云控制台的域名解析管理中加入相应的二级域名开头,输入同一个IP地址,同样十分钟内生效。变更IP的时候犯了一个低级错误,IP地址少写一个0,用域名登陆怎么都解析不出来,居然排查了将近一个星期都没发现OTZ还是要仔细,再仔细。

另外还有一个要注意的地方,域名的所有者信息会在whois上公开,安全起见,要在域名管理后台的安全设置中开启域名隐私保护。

到此,迁移完毕w

 

参考文献:

外网无法访问ECS网站(80端口、21端口等),请检查安全组设置

Updates for this repository will not be applied 错误

运行phpMyAdmin在Nginx(LEMP)在Debian Squeeze / Ubuntu 11.04

WordPress如何修改附件上传大小限制(nginx和apache)

wordpress域名迁移相关配置

nginx的server_name匹配二级域名问题

nginx泛域名解析实现二级域名多域名

Setup Nginx + php-FPM + apc + MariaDB on Debian 7 – The perfect LEMP server

 

码字很辛苦,转载请注明来自空间中的空间《网站从阿里云虚拟主机迁移到了ECS》

评论