使用xamp,wamp开发php,根本不需要考虑配置问题,但是作为一名求是的开发者,还是应该亲手尝试一下,于是开始自己分别下载apache php,然后配置。但是问题来了:apache 服务无法启动--"Apache2.2 服务因 1 (0x1) 服务性错误而停止",于是马上百度,再加上自己的琢磨,下面是解决方案:
1 80端口问题
很大部分的原因来自端口,如果你机子上的IIS或者其他程序占用了80端口,那么apache肯定无法启动。所以第一个思路是:解决端口问题--可以用netstat -an查看端口使用情况,停止使用80端口的程序,然后启动服务;也可以让apache运行在另一个端口,譬如8080上。两者皆可。
2配置文件httpd.conf问题
配置文件是第二个问题来源。拼写错误,路径不对,以及版本参数的不匹配都会导致问题。因此第二个思路是:每次修改都要备份http.conf文件,若果发现问题,则回到原配置文件,看看是否还有问题,若没有,肯定是新配置文件里有错误。检查
LoadModule php5_module "D:/php-5.2.5-Win32/php5apache2_2.dll"
AddType application/x-httpd-php .php
的拼写问题,包括空格。当然最好直接复制粘贴,这样最可靠。
其他诸如文件路径的斜杠,以及ErrorLog等路径无效也都应注意。
如果上面两步都安全通过,那么我们的Apache应该可以启动服务了!!
还有一类问题,服务可以启动但是输入localhost无法打开页面
这一般是netbios解析失败造成的。解决的办法很简单,步骤如下:
1 在"网上邻居"上 点右键,菜单上选"属性(R)"。出来"网络连接"窗口,在"本地连接"上点右键,菜单中点"属性(R)"。出来"本地连接 属性"面板,在"此链接使用下列项目"中找到:"Internet 协议 (TCP/IP)",并点击它。在弹出的"Internet 协议 (TCP/IP) 属性"面板上,点击"高级(V)..."按钮。"高级 TCP/IP 设置"面板上点"WINS"选项标签,去掉"启用 LMHOSTS 查询(L)"前面的勾,点"确定"按钮。
2 打开"控制面板",点击"Windows 防火墙",点击"高级"选项标签,选择"本地连接",并点击旁边的"设置(T)..."按钮。在服务选项中找到"安全 Web 服务器(HTTPS)",并把它勾选上,点"确定"按钮。
最后一类问题 php文件无法解析
当你万分惊喜的发现可以打开http://localhost 并看到apache的"IT works!"的页面时,你很激动的马上测试一个phpnifo的页面,却发现无法解析。这是因为,apache不知道如何解析php文件。虽然LoadModule和AddType语句已经告诉apache 载入php模块并注意php后缀的文件,但是真正的解析还是要调用php5ts.dll等等文件,所以
方案一:在path里添加php所在目录 并在httpd.conf里添加
PHPiniDir "D:/php-5.2.5-Win32/"
方案二:直接将php5ts.dll从php目录拷贝到apache的bin目录即可
另外有一点需要注意 apache2.2以上的版本需要使用php5apache2_2.dll
在php5.2.5 已经自带了 而使用以前的版本,譬如php5.1请到http://php.net下载补丁php5apache2.dll-php5.1.x.rar并解压.共有三个文件.
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
完成!重启你的apache2.2试试吧.
当然,使用php5.2.5 完全不用管这个问题!
好了,大抵就这些问题比较常见,希望能给大家一点帮助!
Ben White 2008-4-30