自从香港服务器打开速度越来越慢之后,就下定决心在本地为现有博客建立一个副本,方便开发和调试。

在Mac上要搭建Wordpress环境其实很简便,可以使用免费的XAMPP和MAMP,两者功能基本一致。具体步骤网上有很多教程,此处不一一赘述,中文用户可参考《【MAMP 3.0.7.3】在Mac下本地安装WordPress》《如何利用MAMP架站软体在Mac上架设Wordpress》在你的 Mac 安裝 MAMP + WordPress

需要解决的问题

不过,目前互联网上所有的教程基本都是围绕如何在Mac本地环境中新建Wordpress,而本文讨论的则是平移已有的博客,并方便今后进一步开发。

因此,我们需要解决的问题基本可被归结如下:

  1. 创建适用于Mac的Wordpress本地环境;
  2. 将目前的在线博客平移到本地;
  3. 为本地博客添加仅可在局域网中访问的域名;
  4. 完成各项调试,确保处在同一局域网中的各类设备皆可访问。

关于工具

由于我们要解决的问题与互联网上普遍讨论的情形不同,因此对所用的工具也有更高要求。在这里,我建议大家使用MAMP Pro。在一般情况下,该应用将随免费版MAMP一同安装,但普通用户平时可选择无视它。只不过我们在之后的调试中需要使用到「虚拟服务器」功能,所以推荐一开始就用Pro版本(免费版和Pro版的Apache、MySQL数据库据说不能通用,但我不太相信)。

当然,天下没有免费的利器。MAMP Pro在免费版的基础上增加了「无限虚拟服务器」、「为每个服务器配置不同版本PHP」以及「动态DNS」等高级功能,因此它的售价也达到了令人心疼的59美刀。

但我想说的一点是,根据实际试用下来的体会,MAMP Pro是相当值得入手的一套工具。

OK,总结一下,我们要准备的工具包括:

  1. 一台Mac和若干移动设备(用于今后的局域网调试);
  2. MAMP Pro;
  3. 称手的浏览器;
  4. 从服务器上下载的Wordpress备份和MySQL数据库

开始操作

创建本地Apache+MySQL+PHP环境

由于这一部分和之前提及的三篇教程基本雷同,所以仅选要点述之。

  • 教程中大多建议使用MAMP默认的8888端口来创建Apache,但我实际操作下来还是80端口比较方便,原因是你在调用本地地址时无需在网址后添加端口号。
  • 出于安全考虑,在MySQL设置中千万记得通过「Change password」来改变默认的root账户密码(默认的密码就是root……),并勾选「Allow network access to MySQL」,选择「Only from this Mac」(仅Pro版本有此功能)
  • PHP建议采用最新版本。

其他步骤皆可按照上述教程进行。

创建仅适用于本地的虚拟服务器

这一步其实可以放在博客完全平移后进行,但之后做会牵涉到很多微调,比较麻烦,因此我们不妨一开始就先设置好。

在MAMP Pro的「Hosts」面板中,我们看到已经有一个名为「localhost」的虚拟服务器了,这是预设的,没必要去做任何改动。我们只需增加一个虚拟服务器,为其配置一个服务器名称(随便填)。

这里需要注意的是在「IP address」的下拉框里选择本机在局域网上分到的ip地址,这对于之后通过局域网中其他设备来调试页面非常关键,所以千万不要忘记,否则该虚拟服务器的默认ip就是localhost,无法通过其他设备访问。

这里补充一个小贴士,如果有条件,请进入路由器设置,用本机的Mac地址绑定一个ip地址。这样一来,即便路由器重启,你的Mac也会分到固定的局域网地址,这对一个使用DHCP的人来说非常关键(但想我这样搞不定超级管理员权限的中国电信用户就只能哭了)。

回到MAMP Pro的「Hosts」面板,勾选「Name resolution」下的两个选项,第一个选项将帮助你在本地hosts文件中自动添加注释,将该域名解析到localhost(127.0.0.1);第二个选项则会帮你生成一个结构为服务器名+IP地址+xip.io的域名(为方便描述后文用http://lanielstudio.com.192.168.1.19.xip.io/代替),用户可以通过局域网在其他设备上访问该网页。

此处请记得将「Document root」指向今后网站文件的所在位置(可以随意指定),如果跳出「该虚拟服务器根目录和localhost重复」的警告,请无视。完成这一步后,记得通过右键目录中的「显示简介」按钮,将该目录的读写权限打开,并「应用到包含的项目」。这一步是为了防止今后因为没有读写权限而无法安装插件或主题。

平移服务器上的Wordpress

到这里为止,默认你已在本地搭建好了Apache+MySQL+PHP环境,可以安装Wordpress了。

下面我们先访问http://lanielstudio.com.192.168.1.19.xip.io//phpmyadmin/,开始建立数据库,步骤可以参考此前列出的三篇教程。

此处需要注意的是,登录phpmyadmin界面时,系统不会要求你输入用户名和密码,但需要了解的是,该数据库的用户名为root,密码则为你在MAMP Pro中修改后的密码。你需要牢记的信息如下:

  • 数据库名称(可随意输入,例如「wordpress」) ;
  • 用户名:root;
  • 密码:默认为「root」,可任意修改。

空白数据库建成后,我们要将此前从服务器上下载下来的.sql文件导入到该数据库内。在导入之前,请用任何一种编辑器打开该文件(BBEdit、SublimeText、TextMate),借助「查找并替换」功能将原网站的域名替换成以xip.io结尾的新域名。举个例子,加入此前在服务器上的Wordpress域名为abc.com,那么在这一步中,请将abc.com替换成http://lanielstudio.com.192.168.1.19.xip.io/。之后,保存该文件,并将其上传到空白数据库中。

至此,数据库平移工作基本完成。

下一步是平移服务器上的网站文件。这一步相对简单,只需将此前备份好的文件解压后移至上一步中「Document root」指向的位置,默认情况下是应用程序/MAMP/htdocs。当然,你也许在上一个步骤中已经自行指定过其他位置。

最后,也是最关键的一步。请删除网站根目录下的wp-config.php文件,并在浏览器中键入http://lanielstudio.com.192.168.1.19.xip.io//wp-admin/setup-config.php,按下回车。此时,Wordpress会要求你重新输入数据库信息,具体填法如下:

  • 数据库名称(可随意输入,例如「wordpress」) ;
  • 用户名:root;
  • 密码:默认为「root」,可任意修改;
  • 数据库主机:localhost;
  • 表前缀:wp_

填写完相关信息,即可完成Wordpress在本地的平移。

Wordpress后台设置

完成以上步骤,我们已经可以在本机浏览并操作Wordpress。但要通过局域网访问该博客,还需要在后台进行一些设置。

进入「仪表盘」,在「设置」-「常规」栏目中,将「Wordpress地址(URL)」和「站点地址(URL)」修改成以xip.io结尾的新地址。

并在「设置」-「固定链接」栏目中,将固定链接结构改成「文章名:网址/sample-post」模式。

完成以上设置后,你就可以在局域网上用任何一个设备来浏览和调试本地Wordpress了。

补充一点,如果此前安装过Wordpress的Jetpack插件套装,请一定要删除,否则将出现本地图片无法在局域网中显示的情况 。这是因为该套装中的Photon插件会自动改变你的图片链接形式。