Windows Server 2008(R2)配置apache+php+mysql环境问题事项

服务器环境:
Windows 2008 R2 64位。apache,mysql,php都是32位。

1. 80端口的外网访问问题

表现:80端口本地可以访问,外网不能访问,换了8080端口也是一样,检查过也没其它程序占用这
两个端口。

原因分析:防火墙中没有配置80端口或者apache没有启用外网访问。

解决办法: 防火墙的入站规则和出站规则都加上80端口。修改httpd.conf,找到 Deny from all,全部
改成 Allow from all 。

2. 不能执行PHP

原因分析1: apache没有加载php5模块

解决办法: 修改httpd.conf,找到#LoadModule vhost_alias_module modules/mod_vhost_alias.so,
在其下方加入:

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

注意修改成下php路径。

原因分析2: apache不能识别php文件

解决办法: 修改httpd.conf,添加

1
AddType application/x-httpd-php .php

3. apache不能正常启动

表现:命令行下启动apache时会报错: can not load D:/php/php5apache2_2.dll into server。

原因分析:1.该dll不存在;2.缺少Visual C++ 2008 Runtime。

解决办法

针对原因1:确认php目录下存在该dll文件。如果没有,到php官方网站下载完整包,本人用的是
5.3.27非线程安全的zip包,而不是msi。

针对原因2:安装visual c++ runtime library 2008。注意必须是2008版本,为保险起见我在
64位的服务器上同时装了64位和32位版。

4. index.php默认不执行

解决办法:修改httpd.conf,找到DirectoryIndex, 在 index.html前面加上 index.php

5. 连接不上mysql数据库

连不上数据库原因有很多,可能数据库配置问题,用户名密码不对,防火墙端口限制等等。

但是如果你确认数据库运行正常,用户名密码数据库名称正确,数据库端口不在防火墙规内(如果是本地数据库不
用管这一点),这些都正常但还是连不上数据库,那么原因很可能是就是PHP中没有正确配置mysql。

解决办法: 修改 php.ini和httpd.conf。

1.修改httpd.conf,找到 LoadModule php5_module,在其下加一行:

1
PHPIniDir "D:/php"

注意修改下php路径。

2.修改 php.ini。 首先你的php目录下如果没有php.ini,只有php.ini.development和php.ini.production,
那拷贝一份php.ini.production,并命名为 php.ini

打开php.ini,确保 extension_dir配置正确,正确的配置如下:

1
extension_dir = "C:/php/ext"

php目录改成自己的。注意要使用绝对路径,即全路径,使用相对路径是不行的。

接下来把下面两行前面的分号去掉

1
2
;extension=php_mysql.dll
;extension=php_mysqli.dll

修改之后应该是这样的

1
2
extension=php_mysql.dll
extension=php_mysqli.dll

保存,重启apache。

Windows Server 2008(R2)配置apache+php+mysql环境问题事项,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。