搭建本地WordPress开发调试环境

本文详述了如何在本地搭建WordPress开发环境,包括从源代码安装Apache和PHP,配置Apache以支持PHP,安装MySQL,以及添加Xdebug扩展和Vdebug Vim插件,以便进行PHP代码的调试。虽然Mac已自带Apache和PHP,但作者仍选择手动安装以满足特定需求。
摘要由CSDN通过智能技术生成
WordPress的运行环境是很传统的Apache + MySQL + PHP,其中PHP用的是PHP5,因此部署过程中应该不会有很难解决的问题,只不过步骤可能会比较繁琐。除此以外就是调试的配置需要摸索一阵子。

一开始我曾想过花钱买MAMP PRO来搭建WordPress的本地开发环境(MAMP免费版本只支持PHP7),图省事。但后来还是决定自己折腾,省下这笔钱。于是花了那么几天自己搭建了一套本地WordPress编码、运行和调试环境。除了Apache + MySQL + PHP之外,为了能在编辑器中单步调试,我还给PHP加装了Xdebug扩展,并给Vim编辑器加装了Vdebug插件。最终我将自己的WordPress站点从云主机拷贝到了本地,并在Vim中愉快地编写和调试里面的PHP代码:




让我哭笑不得的是,在我把环境搭建好一个月后写这篇文章的过程中,才发现其实Mac本身已经自带了Apache和PHP,并不用我自己去下载源代码再安装。



1 MySQL


可能是因为涉及到授权的问题,Mac并没有自带MySQL,所以还是要自己装。不过这几个软件当中MySQL的安装算是很容易的,从官方网站下载安装包解压安装,再配置一下环境变量即可。可参考这篇文章:《mac安装mysql的两种方法(含配置)》



2 Apache


2.1 通过源代码安装Apache服务器


如果想使用Mac自带的Apache,可以跳过这一小节。

如果是要自己下载Apache源代码来安装的话,PHP的安装文档,即PHP源代码包中的INSTALL文件包含了Apache HTTP服务器的安装说明。我参考的是Apache 2.x on Unix systems这节。文档给出的Apache配置命令是:

./configure --enable-so

设置了 --enable-so 才能在不重编译apache的情况下通过配置文件添加PHP和URL重写等模块。

然而对我来说仅仅 --enable-so是不够的。Apache 2.4在Unix系统上的多处理模块(Multi-Processing Module,简称MPM)默认是event模式,即多线程,默认开启了线程安全。但线程安全模式是无法加载Xdebug的。因此我需要将MPM设为传统的prefork模式:


./configure --enable-so --with-mpm=prefork

接着 make; sudo make install 即可。configure和make的过程可能会遇到缺少别的库而导致失败。到网上搜索下载相应的库然后 ./configure; make; sudo make install 三部曲编译安装即可。大多是Apache软件基金会的库,如apr和apr-util。


2.2 启动并配置Apache服务器


安装好后,启动apache。从源代码安装的apache目录是在/usr/local/apache2/,因此启动命令为

sudo /usr/local/apache2/bin/apachectl start

Mac自带的apachectl位于/usr/sbin/目录,已经在PATH环境变量中,所以如果想启动Mac自带的apache,则可以省去命令中的路径:

sudo apachectl start

两者的版本可以通过 -v 选项区分:

$ /usr/local/apache2/bin/apachectl -v
Server version: Apache/2.4.25 (Unix)
Server built:   May  3 2017 23:44:06
$ apachectl -v
Server version: Apache/2.4.23 (Unix)
Server built:   Aug  8 2016 18:10:45

Apache服务器启动后,打开浏览器,在地址栏中输入localhost并回车,看到下面“It works!”的页面,就证明apache已经成功安装并正常运行了:



Mac自带的Apache的默认站点根目录是/Library/WebServer/Documents/,自己安装的Apache的默认站点根目录则是/usr/local/apache2/htdocs/。这两个目录都不在用户主目录中,往里面放文件总是会涉及权限的问题,既不够方便也有点危险。我在自己的用户主目录下新建了一个Sites文件夹,希望将它设为站点根目录。

编辑apache的配置文件httpd.conf。Mac自带apache的该文件的路径是/etc/apache2/httpd.conf,通过源代码安装的这个文件则是/usr/local/apache2/conf/httpd.conf。在httpd.conf中找到下面的配置:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
...
</Directory>



DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
...
</Directory>

将它替换为

DocumentRoot "/Users/zhixiangzhu/Sites"
<Directory "/Users/zhixiangzhu/Sites">
    Options Indexes ExecCGI FollowSymLinks Multiviews
    MultiviewsMatch Any 
    AllowOverride All
    Require all granted
    Order allow,deny
    Allow from all
</Directory>

其中/Users/zhixiangzhu/是我的用户主目录。保存文件后重启Apache服务器:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值