这次域名和主机转移花掉了大约四天的时间。第一次使用VPS(Linux系统),遇到了很多问题,查google查得头疼>_<。在这里记下大致的过程和与遇到的问题,也许可以帮到别人,或是未来的自己。
买域名和VPS
花钱的事情总是容易的,所以买vps和域名的过程就不谈了。最终选了bandwagon上一个130元的套餐,10G硬盘,512内存,1000G月流量。域名仍然在Godaddy上,换了一个.com域名(有优惠码可以用)。
域名解析
更新:最近Godaddy的域名服务器不稳定,或者是被GFW屏蔽?建议直接使用DNSpod来解析域名。打开网址,注册然后按照提示添加记录。
有两步,分别在域名提供商和vps内设置。简单来说,就是把域名(注册的网址)指向你vps的那个IP地址,然后再在vps里把你的域名指向网站文件的目录(见下面“在VPS上建多个网站的方法”)。
修改或添加A记录,host代表你的域名,而points to 那一栏是你vps的IP地址。如果不需要设置子域名,那么只需要添加@那一条记录就可以了,@代表你的域名的完整地址。接着保存设置,等待生效就可以了。
顺便说一下,我在这里使用的是godaddy的域名服务器(nameserver),如果想要使用其他的域名服务器(比如说DNSpod,生效更快),那么需要在DNS管理界面SETTINGS页面修改nameserver为dnspod的dns地址
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
然后前往Dnspod解析域名。
详情参见:Godaddy注册商域名修改DNS地址
安装LAMP
接下来是VPS上LAMP的配置,也就是Linux,Apache,MySQL,PHP。关于LAMP,援引一下维基百科上的说明:
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:Linux,操作系统
Apache,网页服务器
MariaDB或MySQL,数据库管理系统(或者数据库服务器)
PHP、Perl或Python,脚本语言
由Shmuel Csaba Otto Traian,CC BY-SA 3.0,https://commons.wikimedia.org/w/index.php?curid=28224098
linux在vps上已经装好了,初始linux版本是centos 6。试了一下一键安装包,没有成功。各种尝试之后找到了digitalocean上的许多文章,帮了大忙。
首先是服务器的初始化设置:Initial Server Setup with CentOS 6
然后是LAMP的安装:How To Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 6
还有SSL设置:How To Create a SSL Certificate on Apache for CentOS 6
防火墙的安装(可选):How To Set Up a Basic Iptables Firewall on Centos 6
wordpress转移
方法一:重新安装wordpress
- 方法见官网文档 Installing WordPress
- 在原站的仪表盘—工具—导出—导出所有内容(会生成一个xml文件 )
- 安装好(这中间可能会有很多问题,参见下面的问题及处理)新站后,选择工具—导入—wordpress,安装相关插件后导入之前生成的xml文件。
方法二:整站打包
- 这个方法太麻烦,而且很容易出错,不推荐使用。
- 大致的思路是:打包整站文件—导出数据库—修改数据库中的链接—上传文件—创建新表,导入数据库—修改wp-config文件。
安装设置Shadowsocks服务器
Shadowsocks(中文名称:影梭)是使用Python等语言开发的、基于Apache许可证开源的代理软件。Shadowsocks使用socks5代理,用于保护网络流量。在中国大陆被广泛用于突破防火长城(GFW),以浏览被封锁的内容。
Shadowsocks分为服务器端和客户端。在使用之前,需要先将服务器端部署在支持Python的服务器上面,然后通过客户端连接并创建本地代理。此外用户也可以选择购买基于Shadowsocks的商业服务,以获得更加稳定可靠的服务,或者免去自行部署的麻烦。
目前开发者已宣布停止维护。但仍有更新陆续推送[2]
——以上引用自维基百科页面https://zh.wikipedia.org/wiki/Shadowsocks
在bandwagon上有一键设置ss服务器功能,所以只需要将相关的密码等数据填入下载的客户端就可以了。客户端在官网可以下载到:https://shadowsocks.org/en/index.html
问题解决
思考方式
整个过程中收获了一些思考方式,比如我执行nano /xxx/xxx/xxx时,报错没有找到这个命令。这时我会知道,这个报错的意思是没有nano这个程序,所以我会去执行安装命令 yum install nano 而不是再去google。
命令
学习了一些linux下(包括mysql)基本的命令。
在vps上建多个网站的实现方法
linux下默认的http服务器的目录为var/www/html/,网站可以理解成一个文件,访问一个网址其实是在访问存放在服务器上对应的文件。如果只放一个网站,那么可以把文件放在这个目录下,并且在/etc/httpd/conf下的httpd.conf末尾加入下面这段,这段可以理解成是对特定的网址对应的文件位置的声明。
#######################################################
<VirtualHost 23.83.239.241>
ServerName www.greyli.com
DocumentRoot "/var/www/html/myblog"
</VirtualHost>
#######################################################
<VirtualHost 23.83.239.241>
ServerName withlihui.com
DocumentRoot "/var/www/html/myblog"
</VirtualHost>
这两段的意思是,所有对www.greyli.com 和 withlihui.com 的访问都将指向目录/var/www/html/myblog。同样的,假如想要放多个网站,那就需要为不同的网站在/var/www/html/下建立一个文件夹,然后在httpd.conf加入相应的字段来为各自的域名指定相应的文件夹位置。具体操作就是在httpd.conf末尾加入上面两段,只需更改相应的域名和对应的文见路径。
顺便说一下,如果在域名服务商那里设置了子域,那么就可以添加任意个子站在服务器上,当然前提是内存足够大。设置子域的方法是在域名管理中添加A记录,地址填写*.xxx.xxx(比如*.withlihui.com),并且指向你的服务器IP。*号代表任意。设置好之后,把上述地址中的*号改为任意字段都可以作为一个子域名使用(比如talk.withlihui.com)。
另外,还可以将IP地址作为网址访问,只需在末尾加上这段:
#########################################################
ServerName 23.83.239.241
NameVirtualHost 23.83.239.241
<VirtualHost 23.83.239.241>
ServerName 23.83.239.241
DocumentRoot "/var/www/html/main"
</VirtualHost>
当然,你得修改相应的IP和文件目录。
远程文件管理
远程文件连接推荐使用SFTP来连接,SFTP 为 SSH的一部分,是一种安全的文件传输协议。它不用在VPS中安装组件,事实上,从你付钱拿到VPS后,就可以使用了。支持SFTP连接的工具包括Core FTP,FileZilla, WinSCP,Xftp等等,我使用的是WinSCP,免费简单。连接时新建一个连接,输入IP,用户名和密码就可以连接了。
wordpress安装可能遇到的问题
简单说明一下具体几个重要步骤:
- 下载wordpress到网站目录
- 创建数据库表(此时创建的用户名和密码是mysql用户,用来读写相应的表)
- 重命名wp-config-sample.php为wp-config.php并修改相关内容(此处修改的用户名和密码是创建表时的用户密码)
- 执行安装,创建帐户(此处的用户名和密码用来登录wordpress后台)
The requested URL /cgi-sys/defaultwebpage.cgi was not found
遇到这个问题,我的解决方法是清除chrome的缓存。
无法连接数据库
这个问题查了很多资料,还是没解决。最后重启了一下vps,done!
安装插件需要连接ftp,输入密码后无法连接.
这时可以在wp-config.php中加入下面这行
define(‘FS_METHOD’, ‘direct’);
安装插件或主题显示无法创建目录
这个是由于linux下文件的权限问题,解决方法见更改文件权限
Briefly unavailable for scheduled maintenance
这个是因为wordpress的自动更新。只要把根目录中的.maintenance文件删除就可以了。