因为原来的Godaddy服务器实在太慢,于是去DigitalOcean租了一台VPS,5刀/mo,还算便宜,流量1TB/mo。。。

但是迁移的时候出了一些问题,比如:wordpress的Permalink失效,VHost设置出错。。。

但最终还是解决了。。。下面是步骤

Step 1:安装apache2和mysql,php5,phpMyAdmin

Step 2:转移MySQL和服务器文件

从Godaddy的服务器上打包了所有文件,备份了数据库到本地。

再把打包好的zip传上去,用unzip解压到/var/www

Step 3:设置VHosts

这部分我在网上找了半天,结果都是针对apache 2.2以前版本的。

但我这里是Apache 2.4版,所以就出现了打开httpd.conf出来一个空文件的问题。

一定要注意在2.4版里,httpd.conf变成了apache2.conf。

那么如何设置VHost呢?

在/etc/apache2/下有这样几个文件:

apache2.conf conf.d envvars httpd.conf magic mods-available mods-enabled ports.conf sites-available sites-enabled

我们首先打开apache2.conf,在最后添加这样一行:

Include /etc/phpmyadmin/apache.conf

然后访问 你的服务器/phpmyadmin,用phpMyAdmin导入备份的数据库。

我原来的服务器上有三个站,www,b,c

分别在www,和www的b,c两个个子目录下,所以我们先切换到sites-available目录下,ls:

default default-ssl

打开default,内容是这样的:

<VirtualHost *:80>

ServerAdmin xxx@xxx.tk

DocumentRoot /var/www

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all

</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"

<Directory "/usr/share/doc/">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

Allow from 127.0.0.0/255.0.0.0 ::1/128

</Directory>

</VirtualHost>

我们在开头加上

ServerName 你的主站网址

ServerAlias 你的主站的其他网址(比如没有www前缀的)

然后把ServerAdmin后的e-mail改成你的。

下面就是其他站的设置啦~

在site-available里面创建两个文件b,c

把default复制一份过来

改一下路径和Server地址,保存。

记得如果你需要使用.htaccess的话,一定要把DocumentRoot的AllowOverride属性设置成 All

之后执行

a2ensite a

a2ensite b

service apache2 restart

站点就上线了~

但这时出了一点问题,Wordpress的Permalink(mod_rewrite实现的)失效了。。。

为什么呢?

调了一下午,发现是.htaccess的问题

我的.htaccess是从原服务器上直接转移的,虽然内容没有错误,但是权限有问题,导致apache报HTTP 500错误。。。

删除.htaccess后重建新的.htaccess,配置之后问题解决~

努力学习ing,加油~