我从事php相关工作两年有余,开发过程中为了省时省力,我一直使用网络上提供的安装包完成php开发环境的搭建。早前,在百度贴吧中发布了一个帖子,有些回应。其中有人问我:“Windows如何搭建php开发环境呢?”,我未曾多想便回复了个下载链接于他————他一定有些鄙夷了。为了摆脱这种负罪感,我还是自己实践一次在windows系统下搭建Apache+多版本PHP开发环境吧。
安装Apache for Windows
下载Windows版Apache安装包Apache for Windows下载地址:httpd.apache.org/docs/current/platform/windows.html#down
简单说一说这几个下载资源:1、ApacheHaus 和 Apache Lounge都是Apache软件基金会支持的项目,它们主要开发Windows版本的Apache 模块;2、BitNami WAMP Stack、WampServer、XAMPP应该都比较熟悉了,使用比较广泛的PHP集成开发环境项目。本文选择下载Apache Lounge提供的Apache 2.4 binaries VC15。
将Apache作为服务运行解压Apache安装包,你可以自由选择安装目录(将解压后的文件夹复制过去),本文示例的安装目录为:E:\development\apache-2.4.37
安装与卸载安装服务进入bin目录,使用命令行运行 httpd.exe -k install,默认服务名为 Apache2.4,配置文件为 conf\httpd.conf。当然你也可以自定义服务名或者指定配置文件,如:httpd.exe -k install -n "MyServiceName" -f "E:\development\apache-2.4.37\conf\my.conf"。卸载服务httpd.exe -k uninstall,如果你安装Apache服务时,指定了名称,卸载时也需要指定名称,如:httpd.exe -k uninstall -n "MyServiceName"修改配置文件打开配置文件 conf\httpd.conf ,搜索 “Directory”,大概在230行,修改如图所示:
注:……标签内的配置具有全局性。
AllowOverride All:现在很多WEB项目都配置了.htaccess,设置允许重写才会使规则生效;
Require all granted:测试环境,允许所有的请求;
Define WWWROOT "E:/development/www":定义www根路径
修改配置文件后,使用命令 httpd.exe -n "MyServiceName" -t ,可测试配置是否有异常。
管理服务方式一,使用ApacheMonitor管理,双击运行bin目录中的 ApacheMonitor.exe方式二,使用命令行管理httpd.exe -k start,启动服务httpd.exe -k stop 或 httpd.exe -k shutdown,停止服务httpd.exe -k restart,重启服务安装 php for Windows
下载安装包,本文选择 php7.2 VC15 x64 Thread Safe 版本,关于线程安全(TS)和非线程安全(NTS)的选择问题可自行了解,php下载地址:https://windows.php.net/download#php-7.2解压安装包并复制到 E:\development\php-7.2.12复制 php.ini-development 到当前目录并重命名为 php.ini打开 php.ini,搜索 extension_dir ,删除行首的#,如果你将 php7.2 的安装目录写进了系统路径,那么extension_dir = "ext",这种情况下是没啥问题的,但将来你可能有需求安装另一个版本的 php,我还是建议将扩展目录的路径写全了,如:extension_dir = "E:\development\php-7.2.12\ext"。我经常见到网上有人问:为啥我php的扩展都有,配置文件里也打开了,可一运行项目就提示不支持mysqli?大抵不过此类问题罢。在 Apache 中以模块方式安装 php
1.在 Apache 的配置文件末尾加入如下配置:
#定义php安装路径
Define PHPROOT "E:/development/php-7.2.12"
#动态加载php7 apache模块
LoadModule php7_module "${PHPROOT}/php7apache2_4.dll"
#定义php配置文件路径
PHPIniDir "${PHPROOT}/php.ini"
2.搜索 mime_module,在 …… 中另起一行,加入配置 AddType application/x-httpd-php .php .html .htm
3.如果是php5,你可能还需要动态加载php目录下库文件,以免出现一些奇奇怪怪的问题,如下所示:
LoadFile "${PHPROOT}/glib-2.dll"
LoadFile "${PHPROOT}/gmodule-2.dll"
LoadFile "${PHPROOT}/icudt57.dll"
LoadFile "${PHPROOT}/icuin57.dll"
LoadFile "${PHPROOT}/icuio57.dll"
LoadFile "${PHPROOT}/iculx57.dll"
LoadFile "${PHPROOT}/icutest57.dll"
LoadFile "${PHPROOT}/icutu57.dll"
LoadFile "${PHPROOT}/icuuc57.dll"
LoadFile "${PHPROOT}/libenchant.dll"
LoadFile "${PHPROOT}/libpq.dll"
LoadFile "${PHPROOT}/ssleay32.dll"
LoadFile "${PHPROOT}/libeay32.dll"
LoadFile "${PHPROOT}/libssh2.dll"
好了,教程到了这里,apache-php7测试服务环境已经搭建好了,如果你还需要其他版本的php,请参考本文中的【安装 php for Windows】和【在 Apache 中以模块方式安装 php】