接触 PHP 也算有段时间了,之前偷懒,一直用的 WAMP 套件( http://www.wampserver.com/ )作为 PHP 的开发环境。其实 WAMP 还是挺好用的,但对于技术么,还是喜欢自己捣鼓捣鼓,于是今天尝试搭建自己自定义的 PHP 开发环境,现将搭建过程与心得分享如下。
为了突出本文的先进性,我所用的软件版本都是至 2012.07.21 能找到的官方最新版。
话不多说,先看看软件版本:
Apache2.4.2 ,下载地址:
http://www.apachelounge.com/download/win32/binaries/httpd-2.4.2-win32.zip
PHP5.4.5 (VC9 x86 Thread Safe) ,下载地址:
http://windows.php.net/downloads/releases/php-5.4.5-Win32-VC9-x86.zip
php5apache2_4.dll (PHP Handler modules) ,下载地址:
http://www.apachelounge.com/download/win32/modules-2.4/php5apache2_4.dll-php-5.4-win32.zip
MySQL5.1.63 (essential) ,(这个不是最新的, 5.5.25a 是 alpha 版,怕不稳定)下载地址:
http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-essential-5.1.63-win32.msi
顺便带一句, OS 为 Win7 32 位。
有必要说明一下, Apache 的官方下载( http://httpd.apache.org/download.cgi )并没有提供 2.4.2 的 Windows 版本,而是提供了 Unix 下的 tar.bz2 和 tar.gz 安装包,这两个玩意在 Windows 下是玩不了的。因此请前去我上文指出的地方下载,它是一个专门提供已将 PHP 编译为 Windows 下的 Binaries 的下载网站。
从上文的网站下载得到了
,它里面有三个东西:
第一个说明文件;第二个告诉我们运行这个版本的 Apache 必须要有 VC10 运行时 ( Win7 自带了),没有的话要下载安装;第三个你懂的。
官方建议是将 Apache24 文件夹解压到 C:\ 根目录的,当然我不喜欢这么干,我要保持我目录的干净整洁与清晰明了。因此,我将其解压到了 F:\Program Files\PHP\ 下。(如果你不在意目录的排列,直接将其解压到了 C:\ 根目录,请跳到下面的 2. 继续阅读)。
由于更改了默认路径,因此按照 ReadMe.txt 里的说明更改 Apache\conf\httpd.conf 里的相应配置。 Httpd.conf 是 Apache 最重要的配置文件,比较长,建议使用 EditPlus 等工具打开,直接用 Windows 的记事本会看的你晕掉。
1 ) 38 行,修改 ServerRoot 为 ServerRoot "F:/Program Files/PHP/ Apache24"
2 ) 371 行,修改 Directory 为 <Directory "F:/Program Files/PHP/ Apache24/cgi-bin">
3 ) 355 行,修改 ScriptAlias 为 ScriptAlias /cgi-bin/ "F:/Program Files/PHP/ Apache24/cgi-bin"
注:①标蓝部分为你自己的解压路径
②斜杠的方向必须为右上至左下
Apache 默认的站点根目录是在它的 htdocs 文件夹,藏得有点深,一般开发人员都会将其改成自己喜欢的、能快捷找到的目录,例如我就将其指定到 F:\Program Files\PHP\WebContent (如果你也不想更改默认的站点根目录,请跳到下面的 3. 继续阅读)。还是在刚刚的 httpd.conf 文件里。
1 ) 238 行,修改 DocumentRoot 为 DocumentRoot "F:/Program Files/PHP/ WebContent"
2 ) 239 行,修改 Directory 为 <Directory "F:/Program Files/PHP/ WebContent">
1 )打开 cmd 小黑窗口,将路径切换到 F:\Program Files\PHP\ Apache24\bin ,不会路径切换的请自行百度。输入 >httpd.exe -k install ,将 Apache 安装为系统服务。安装成功后 Apache 会自行测试 80 端口( Apache 服务端口)是否可用,如果你同时开启了迅雷等什么的软件可能会因为端口已被占用而测试失败,不过只是测试失败而已,把迅雷关了就没事了。
2
)双击
bin
下面的小羽毛,打开
Apache
管理器,看看那个灯是红的
还是绿的。如果是绿的,恭喜你,
Apache
已经安装成功并启动了。如果是红的,点右边的
start
看能否让它变绿。如果还是红的,请关闭迅雷等下载软件并检查
80
端口是否被占用(
cmd
里
–netstat -an
),关闭相关占用端口的程序后再点
start
应该就能变绿了。
3
)打开浏览器,在地址栏输入
http://localhost
,发现出现了
Index
of /
,而不是其他文章里说的“
It works
!”,别慌,还记得我们之前修改了站点根目录吗?将原
htdocs
下面的
index.html
复制到我们的
WebContent
,刷新页面,终于看到了期待已久的、一个大大的
1 )从上文的网站下载得到了,将其解压到指定目录,这里我将其解压到了 F:\Program Files\PHP\PHP-5.4.5。找到 php.ini-development 文件,将其复制一份,并改名为 php.ini。之后的工作主要就围绕 PHP 的配置文件 php.ini 和 Apache 的配置文件 httpd.conf 来展开了。
2 )还下载了,解压后进入 PHP 5.4.5 文件夹,复制到 PHP 解压路径 F:\Program Files\PHP\ PHP-5.4.5 。这个是将 PHP 交给 Apache 处理的动态链接库,没这个文件就玩不下去了。
1 )找到“ ; extension_dir = "ext" ”,在它下面添加如下代码:
; 指定 PHP 扩展库的路径
extension_dir = "F:/Program Files/PHP/ PHP-5.4.5/ext"
2 )找到“ ;extension=php_gd2.dll ”、“ ;extension=php_mysql.dll ”、“ ;extension=php_mysqli.dll ”去掉前面的“ ; ”
这是在开启 PHP 对图形化和 MySQL 的支持。
3 )保存并关闭。
1 )在文件末尾添加如下代码,各行代码的意思应该都说明的很清楚了:
# 载入 PHP 处理模块
LoadModule php5_module "F:/Program Files/PHP/ PHP-5.4.5/php5apache2_4.dll"
# 指定当资源类型为 .php 时,由 PHP 来处理
AddHandler application/x-httpd-php .php
# 指定 php.ini 的路径
PHPIniDir "F:/Program Files/PHP/ PHP-5.4.5"
# 其他相关设置
AddHandler application/x-httpd-php-source .phps
Action application/x-httpd-php "/php/php-cgi.exe"
AddDefaultCharset UTF8
2 )保存并关闭。
1 )打开系统属性→高级→环境变量
2 )在系统变量下新建,变量名为 PHP_HOME ,变量值为 PHP 的解压目录,我的是 F:\Program Files\PHP\ PHP-5.4.5 。
3 )系统变量的 Path 编辑,在末尾加上 %PHP_HOME%;%PHP_HOME%\ext;
1 )利用之前的小羽毛重启 Apache 。
2 )在站点根目录 WebContent 下新建 index.php ,填入如下代码:
<?php phpinfo(); ?>
保存。
3 )在浏览器地址栏输入 http://localhost/index.php ,出现了非常震撼的效果:
说明配置成功。
这个由于是安装版,相对就简单很多,就不详细介绍了。安装时推荐选 Custom ,可以自定义安装路径和数据存储路径。
安装完成后会自动进入配置程序,选 Detailed Configuration 。要改的地方如下:
① Manual Selected Default Character Set ,选 utf8 (国际通用么,你懂的)
②勾选 Include Bin Directory in Windows Path (就可以 cmd 里直接 mysql 了)
③设置 root 用户密码。
出现四个蓝钩钩就完美安装了。
①编写连接 MySQL 的 PHP 代码
在 WebContent 下新建文件 testConn.php ,填入如下代码,注意文件格式保存为 UTF-8 ,否则是乱码:
<?php $conn = mysql_connect("localhost", "root", "root"); if ($conn) { echo "连接MySQL数据库成功"; } else { echo "连接MySQL数据库失败"; } ?>
②浏览器地址栏输入 http://localhost/testConn.php
如果出现“连接 MySQL 数据库成功”,那么说明 AMP 环境已经搭建成功,可以进入开发阶段了;如果出现“连接 MySQL 数据库失败”,请检查 MySQL 服务是否已启动;如果出现“ Fatal error : Call to undefined function mysql_connect() ...... ”,请检查是否完全按照二中的 2 配置了 php.ini 。
至此, AMP 环境搭建完毕。谢各位赏鉴,请不吝赐教。