我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。
标签 #教程

Windows下部署 Apache2 + PHP + XDebug + MySQL 开发环境

为什么选择这几个软件?

  • Apache2是老牌的Web服务器, 兼容性和功能都很强大, 因为我们只是开发环境, 不需要考虑性能问题.
  • PHP我们选择了比较新的5.4版本, 丢掉了不少历史包袱, 提供了更多的新特征(如数组简写形式).
  • XDebug是调试利器, 在代码中可以用XDebug提供的函数来追踪调用栈等等. 还可以配合IDE进行断点调试甚至远程调试.
  • MySQL仍是目前与PHP配合最紧密的数据库.

测试环境

Windows 7 SP1 64bit

但为了保证兼容性, 我仍选用了各个软件的32bit版本.

下载软件包

在Windows下可没有那么方便的包管理器, 难道你打算试试360软件管家?

Apache

官网: http://httpd.apache.org/

进入Download页面, 再进入Other files页面, 进入 binaries/win32 文件夹. 选择合适的版本进行下载.

我选择的是Apache2.2 x86 openssl(httpd-2.2.21-win32-x86-openssl-0.9.8r.msi).

PHP

官网: http://www.php.net/

进入Download页面, 点击Windows binaries, 选择合适的版本进行下载.

我选择的是PHP5.4 VC9 x86 Thread Safe(php-5.4.13-Win32-VC9-x86.zip).

Thread Safe是线程安全的意思, 因为Windows版的Apache2是线程模型, 所以我们需要线程安全的版本.

XDebug

官网: http://xdebug.org/

进入Download页面, 选择合适的版本进行下载.

我选择的是XDebug2.2 for PHP5.4 VC9(php_xdebug-2.2.1-5.4-vc9.dll).

MySQL

官网: http://www.mysql.com/

进入Download页面, 点击MySQL Community Server, 选择合适的版本进行下载, 他会邀请你注册个帐号, 但你也可以不注册, 点”No Thanks”就行.

我选择的是MySQL5.6 32bit(mysql-installer-community-5.6.10.1.msi).

这里要数这个MySQL最大了, 200MiB左右…里面自带了一个很炫的GUI管理工具…

配置PHP

我在这里建议把这些软件都单独安装到一个文件夹, 便于维护, 同时不要放在系统分区, 否则配置权限很麻烦.

在这里我选择把他们都安装到了D:\.

然后解压PHP. 把下好的XDebug复制到PHP目录下的ext目录(如D:\PHP\ext\php_xdebug-2.2.1-5.4-vc9.dll).

我们将PHP目录中的php.ini-development重命名为php.ini, 这就是PHP的主配置文件了

XDebug

打开php.ini, 在末尾配置XDebug, 新增:

[XDebug]
zend_extension = D:\PHP\ext\php_xdebug-2.2.1-5.4-vc9.dll
xdebug.remote_enable = 1
xdebug.profiler_enable = 1

这样就打开了远程调试, 只要配置一下IDE就可以进行断点调试了.

其他扩展

然后我们还需要把常用的扩展打开(如MySQL), 在php.ini中查找Dynamic Extensions, 然后取消你需要的扩展前的分号(注释符), 我开启了这些扩展:

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

分别是: CURL(强大的数据传输工具, 支持HTTP在内的多种协议), GD2(图像处理库), MySQL(经典C风格MySQL接口), MySQLi(面向对象风格MySQL接口), PDO的MySQL和SQLite驱动.

配置Apache2

Apache2安装过程没啥好说的, 途中会让你输入服务器名和管理员邮箱, 随便填就行.

安装好之后会在你的Windows上安装成一个服务, 你可以在服务里面设置它是否开机启动, 同时右下角通知区域会有个Apache2的托盘图标.

PHP支持

然后我们需要配置Apache2使其支持PHP脚本.

打开Apache2的主配置文件(如D:\Apache2\conf\httpd.conf), 末尾追加:

LoadModule php5_module D:/php/php5apache2_2.dll
PHPIniDir "D:/php"

AddType application/x-httpd-php .php

第一行中具体的DLL名称要取决于你的Apache2版本.

URL重写和.htaccess

除此之外还建议开启rewrite模块(URL重写), 以及 .htaccess 支持:

搜索LoadModule rewrite_module, 去掉之前的井号.

搜索<Directory />, 改为:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from 127.0.0.1
</Directory>

这里设置成了允许本机访问任何目录.

虚拟主机

然后我们可以考虑打开虚拟主机支持, 这样我们可以在本机上依靠域名来建立多个站点.

在httpd.conf中搜索Include conf/extra/httpd-vhosts.conf, 去除该行前的井号.

显而易见, 我们在这里包含了另一个文件, 虚拟主机的配置就保存在这个文件中.

打开该文件(如D:\Apache2\conf\extra\httpd-vhosts.conf), 可以看到默认已经有两个虚拟主机示例了(每个<VirtualHost>就是一个虚拟主机).

我们可以不理会它, 当然删除它们也可以.

然后建立我们自己的虚拟主机, 如添加:

<VirtualHost *:80>
    DocumentRoot "D:/Web/Test"
    ServerName test.2local.tk
</VirtualHost>

可以看到我们建了一个虚拟主机, 根目录是D:/Web/Test, 对应域名是test.2local.tk.

2local.tk这个域名是我申请的一个域名, 它以及它的子域永远指向127.0.0.1, 以方便本地测试, 省着改hosts了.

MySQL

打开MySQL安装程序可以看到一个很炫的安装向导.

这个安装程序中附带了很多插件, 比如for Office的插件, for VS的插件等等. 总之, 依赖条件不满足的插件不装就是了(比如你没装Office, 就不要选择Office插件了).

安装后可以在开始菜单找到名为MySQL Workbench的GUI管理工具, 挺好用的.

如何成为一名 Geek

这里指的Geek主要是是指计算机领域,之所以不用hacker, 是为了减少不必要的纷争.

其实下面是一环扣一环的…

接入世界性互联网

这是很重要的一步,你可以找人要一个Secure Shell或者Point to Point Tunneling Protocol Virtual Private Network, 或者尝试使用GoAgent.
为什么这东西名字这么长?呵呵,这恰好说明了接入世界性互联网的必要性…

在这一步中,你可能会遇到很多困难,请尝试求助你身边的朋友.

版权意识

你要认识到,如果你打算在计算机领域进行一些创造,那么维护版权,就是在维护你自己将来的利益,请试着去影响身边的更多人.

可能你因为种种原因无法购买正版软件,但至少请认识到这是对作者利益的一种损害.

从官方渠道下载文件,获取信息

也许是因为一直用盗版,很多人没有养成从官网下载软件的习惯,出了问题也想不到去求助官方客服.

不管你信不信,这是避免出现问题,解决问题的最方便,有效的手段.

毫无疑问从官网得到的信息是最权威的,这在解决问题和与别人辩论的时候都很有用.

扔掉旧东西

扔掉那些旧的,官方已经不再推荐或提供支持的东西,比如IE6, WinXP, VC++6.0, VB6(好像都是微软的东西啊)..

一定会有新的更好用的替代品的,如果没有的话可以考虑自己创造一个.

使用Google

Google会让官网出现在第一个,这很方便.

Google会包含英文的搜索结果,即使你不懂英文,但很多问题只需一句话,一个词就能解决.

学会搜索和提问

当发现一个陌生的词,请尝试搜索它,或者在百科(如维基百科)中搜索它.

搜索问题时选择合适的搜索词等等,参见Google的搜索技巧,
以及月光博客的相关文章.

如果无法通过搜索一个人解决问题,那么就需要去社区提问,在此之前你有必要学习一下提问的智慧

尽量不要在QQ或邮件上单独向别人提问,尤其是搜索就能解决的问题,因为这样的话,别人无法搜索到你最后解决问题的经验,而且对方欢迎不欢迎你的提问还说不定.

维护一份博客列表 / 写博客

在搜索时,很可能因为某个人的一篇博客让你豁然开朗,再看一看这个人的其他文章,发现很对你的胃口,这时最好将这个博客订阅下来,方便得到新文章,也方便回头再来看,推荐Google Reader.

同时最好自己也写一个博客,当你解决了一个棘手的问题,就写一篇文章,让你的经验可以帮助到其他人.

融入一个社区(论坛)

这样你可以了解到一段时间里大家都在关注些什么,你可以利用你已有的经验帮助后来者,同时也更方便你提问.

多阅读

无论是在网上还是图书馆,请在你研究的领域多读一些书/文章.
不一定什么时候就会派上用场,你可能记不住文章的所有内容,但只需记住几个关键词,你就可以重新找到这篇文章.

将自己的作品展示给大家看

如果仅仅是练习的作品,没有什么商业机密,自己藏着不如发出来给大家看,大家会指出你注意不到的问题.

同时对你自己也是一种压力,因为要展示给大家,所以你要让作品尽可能完美,不给自己丢脸.

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2024-04-08.