相比于迁移站点数据到虚拟主机,迁移站点到VPS要麻烦许多许多,之前PHP的一个short_open_tag,就卡了我大半天,不过最终总算帮用户迁移成功了,尽管还有一些细枝末节问题,暂时就不管了。
(图源 :pixabay)
这几简单记录一下迁移到VPS所作的工作,因为我自己还有大把的站点要迁移,难免之后用到。
安装Apache、PHP、MYSQL
Apache
虽然都说nginx更好用一些,但是我没怎么用过,还是还是用Apache吧,以后有时间慢慢研究。
安装Apache很简单:
sudo apt install apache2
安装完,访问IP,效果如下(允许入站规则后,详见后文):
PHP
接下来是安装PHP,我看godaddy装的是PHP 7.2,我也装7.2好了
sudo apt install php7.2
MySQL
使用如下指令安装MySQL以及相应的PHP支持
sudo apt install mysql-server php7.2-mysql mysql-client
简单加固
安装完三大件后,要对其进行一些简单的加固,让其更加安全。
Apache出了对配置文件进行优化外,还启用了mpm-itk 模块:
sudo apt-get install libapache2-mpm-itk
sudo a2enmod mpm_itk
MySQL则使用下列命令进行一些安全设置:
sudo mysql_secure_installation
创建站点
在进行完上述步骤后,就可以创建站点了。
我们首先创建一个用户:
sudo adduser mysite
然后登录这个用户,在目录下创建www文件夹以及logs文件夹。
然后进入/etc/apache2/sites-available
使用默认站点模板略作修改后创建新站,对应目录指向上述目录即可。
1 | <Directory /home/mysite/www> |
加上如上内容,否则会出现禁止访问错误:
使用如下命令使能站点:
sudo a2ensite mysite.conf
sudo systemctl reload apache2
开启两端的防火墙
因为要在服务器之间传输数据,所以要允许原服务器端的出站设置以及VPS(新站)这边的入站设置。
否则就会出类似如下错误:
老站在ConfigServer Security & Firewall
中做如下设置,并重启csf。
tcp|out|d=22|d=x.x.x.x
新站在AWS,默认已经允许了SSH链接。
但是要想访问的话,所以要编辑安全组中的入站(80)规则(Edit inbound rules->Add rule):
一个很奇异的地方是,如果我禁用了IPv6的入站,我自己就无法访问网页了,不细研究了,先允许吧。
传输数据
传输数据没啥说的了,我用的scp。
测试站点
为了测试站点访问,我使用了hosts文件启用本地解析功能。
使用记事本用管理员权限打开以下文件:
C:\Windows\System32\drivers\etc\hosts
添加如下内容:
x.x.x.x example.com
前边是IP,后边是域名,这样相当于不用修改DNS就可以本地访问啦。
修改DNS
测试没问题后,修改DNS就可以了,这样迁移就完成啦。当然了,后边可能还有一些工作要做,就交给客户自己去弄好了。
其它
除了文中涉及到的内容,cURL、 zlib、https等都是需要处理和解决的问题,每一样都耗费我诸多时间,这里就不过多描述啦。
相关链接
This page is synchronized from the post: ‘日记:手工迁移站点到VPS’