wordpress网站迁移记录
最近帮公司做企业网站。以前的网站是用asp写的,托管在国内的一家虚拟主机空间上系统是windows。
asp太过古老,而且是windows的系统,所以肯定要把它改成Linux系统的。对于现在的这个企业网站,其日PV不会超过两位数,且网站空间还是用的虚拟主机,所以用Wordpress是最合适不过的了,省时省力。
2年前搞过一段时间的Wordpress,当时都是在windows上做开发,然后也就继续在windows上做公司企业网站了。做了段时间,感觉还是在macbook上开发来的舒服,于是就把做了大半的Wordpress网站搬到macbook上。把过程做个记录。
windows上做Wordpress用的是XAMPP开发环境,换到mac上最简单的办法就是也安装XAMPP/MAMP等集成开发环境,但是mac本身就自带apache+php,所以就不用重复安装了,用自带的就行。
mac自带的PHP版本是5.6,已经比较高了,没必要装PHP7。虽然PHP7性能很好,但是因为虚拟主机肯定不会提供如此高的版本,估计5.6都悬,所以用自带的版本就可以了。
1、启动apache服务
sudo apachectl start
然后访问http://127.0.0.1,如果浏览器显示 It works!
即表明apache工作正常。
2、网站根目录
Mac系统默认友两个目录作为网站根目录。一个是系统级根目录,一个是用户级根目录。
系统级根目录为 /Library/WebServer/Documents/
对应URL是 http://127.0.0.1
用户级根目录为 ~/Sites
对应URL是 http://127.0.0.1/~USER/
(假设USER为你的用户名)。OS X 10.8以上系统默认没有 ~/Sites
需要自己手动建立。
3、修改配置文件,启用用户级根目录
apache默认配置使用系统级根目录,若要使用用户级根目录需要修改配置文件。
在 /etc/apache2/users/
目录下新建文件 USER.conf
(USER为你的用户名),输入以下内容,然后保存退出。
<Directory "/Users/USER/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
修改权限,并更改用户
sudo chmod 755 /etc/apache2/users/USER.conf
sudo chown root:wheel /etc/apache2/users/USER.conf
必要时也修改 ~/Sites
的权限为755
4、重启apache使新配置文件生效
sudo apachectl restart
现在应该就可以使用用户级根目录了。在 ~/Sites
下新建一个的文件index.php
<?php
echo phpinfo();
然后访问 http://127.0.0.1/~USER/
,应该就可以看到phpinfo的输出信息了。如果看不到输出信息,则需要修改 httpd.conf
配置文件。
5、修改 httpd.conf
配置文件
打开 httpd.conf
cd /etc/apache2/
sudo vi httpd.conf
找到下面几行配置,去掉注释,即去掉每行开头的 #
,已经去掉注释的话就不用管了。
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
打开配置文件 /etc/apache2/extra/httpd-userdir.conf
sudo vi /etc/apache2/extra/httpd-userdir.conf
找到以下配置,去掉注释
Include /private/etc/apache2/users/*.conf
此时再重启apache服务就可以正常访问 http://127.0.0.1/~USER/
了。
mysql之前已经安装过了,这里就不用安装配置了。
6、为了方便再安装一个phpmyadmin
去官网下载程序包,然后解压至 ~/Sites
目录下,并将解压出来的文件夹改名为 phpMyAdmin
。然后在 phpMyAdmin
目录下新建一个 config
目录,并修改权限
chmod o+w ~/Sites/phpmyadmin/config
之后就可以从浏览器中访问phpmyadmin的初始设置页面了: http://127.0.0.1/~USER/phpmyadmin/setup/
如果出现2002 socket错误的话,执行如下shell命令
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
打开页面之后,点击”New server”,在 Basic settings 页面确保 Serverhostname 是 localhost,在 Authentication 配置好登陆用户名和密码,点击保存就可以了。
在你点击保存后,在刚才建立的 config
目录下会生成一个 config.inc.php
文件。将之移动到上一层目录,即 phpMyAdmin
目录下。
这样就将phpmyadmin安装好了。为了安全起见将刚才建立的 config
目录删除。以后就可以通过 http://127.0.0.1/~USER/phpmyadmin/
来访问phpmyadmin了。
7、迁移Wordpress程序文件
将windows上的整个Wordpress文件夹打包移动到 ~/Sites
目录下即可,假设原Wordpress站点文目录名为 wp
。最后设置完成后访问 http://127.0.0.1/~USER/wp/
就可以打开原Wordpress网站了,原来的设置、插件等都可以完整保留。
8、迁移Wordpress数据库
在原来的windows上用phpmyadmin导出Wordpress的数据库,假设导出的数据库文件为 wp.sql
。
然后在mac上利用phpmyadmin或者mysql命令行客户端新建一个数据库,并且最好与原Wordpress数据库同名。再在这个数据库内导入刚才得到的文件wp.sql
。注意文件编码需要保持一致,否则会产生乱码。
9、修复数据库中的站点地址及图片地址
由于Wordpress中都是采用绝对地址定位的,所以需要修复数据库中的站点地址及图片地址。在修复之前先不要尝试打开站点。
在phpmyadmin里打开Wordpress数据库,点击 SQL
选项卡,输入以下sql语句
UPDATE wp_options SET option_value = replace(option_value,'http://127.0.0.1/wp/','http://127.0.0.1/~USER/wp/') WHERE option_name ='home' OR option_name='siteurl';
UPDATE wp_posts SET guid = REPLACE(guid,'http://127.0.0.1/wp/','http://127.0.0.1/~USER/wp/');
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://127.0.0.1/wp/','http://127.0.0.1/~USER/wp/');
其中 http://127.0.0.1/wp/
为原windows上的Wordpress站点地址,http://127.0.0.1/~USER/wp/
为mac上新站点地址。
10、修改Wordpress配置文件
最后我们还需要修改Wordpress配置文件,使之与我们刚才导入的Wordpress数据库关联才行。
打开 ~/Sites/wp
目录下的 wp-config.php
配置文件,修改与数据库相关的那几项就可以了,主要就是下面几项
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wp');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'root');
DB_NAME
是数据库名,DB_USER
是用户名,DB_PASSWORD
是密码。修改成相应值即可。
11、修改apache启动权限
如果在使用Wordpress的过程中遇到权限问题,例如升级的时候,可以修改apache的启动权限。
打开 httpd.conf
找到下面的内容
User _www
Group _www
改成以下内容
User USER
Group staff
其中 USER
为你的用户名。
至此,整个迁移过程就算结束了。写写很多字,其实实际操作的话也就半小时就可以了,过程并不复杂。