网站从阿里云虚拟主机迁移到了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)
Setup Nginx + php-FPM + apc + MariaDB on Debian 7 – The perfect LEMP server
评论