64位Windows Server 2208 R2不能运行php

来源:互联网 发布:淘宝的营销模式 编辑:程序博客网 时间:2024/05/20 23:49

PHP 5.5.26 32bit VC9 ThreadSafe的版本安装在Windows 2008 server R2 64位的操作系统上后,运用PHP -v 命令无法运行。

解决方案: 安装visual c++ runtime library 2008 x86版本后问题解决。下载地址:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=29

因为Win 2008本身不带VS2008运行库。

这个在此记录下!

本篇不是Windows Server 2008(R2)配置apache+php+mysql环境的教程,而是一些问题事项,正是这些
细节让很多人的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

原因分析: 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路径。

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。

原创粉丝点击