Windows默认使用IIS作为服务器,这篇博文将讲述如何在win7下安装和配置Apache+PHP环境。

准备工作:在G盘下新建三个文件夹:ApachePHPPHPWebApache放置Apache服务器,PHP安装PHP的目录,PHPWeb用来放置网站文件,如htmlphp等。

一、安装Apache

第一步:下载Apache

网址:http://httpd.apache.org/docs/current/platform/windows.html。进入页面后选择ApacheHaus,之后在新打开的页面里选择Apache2.4x VC11下面的Apache2.4.12 x64进行下载。(说明:我的电脑是win7 64位,所以选择x64VC9VC11的主要区别是:VC9表示是使用Visual Studio 2008编译的,VC11表示是使用Visual Studio 2012编译的。运行时,电脑需要安装相应的VC distributable。)下载完成后,将其解压到G:\Apache文件夹中,会解压出文件夹Apache24

第二步:配置Apache

编辑G:\Apache\Apache24\conf路径下找到httpd.conf。修改如下:

Define SRVROOT “/Apache24”  改为 Define SRVROOT  “G:\Apache\Apache24”

Listen 80  改为Listen 1024 (这个是Apache的监听端口,windows80端口一般会被IIS占用,所以改为用户认为合适的其他端口)。

SeverAdmin [email protected] 改为ServerAdmin [email protected](改为用户自己的邮箱)

ServerName 127.0.0.180  改为 ServerName 127.0.0.1:1024(端口号与②相同)

DocumentRoot "${SRVROOT}/htdocs"  改为 DocumentRoot "G:\PHPWeb"

     改为

第三步:安装Apache

找到C:\Windows\System32\cmd.exe,右击鼠标选择以管理员身份运行。然后依次输入以下命令:

G:enter

cd Apache\Apache24\bin enter

此时命令行已进入G:\Apache\Apache24\bin目录。继续输入以下命令:

httpd –k installenter 若安装多个Apache,则可以使用以下命令来指定不同的名字:

httpd –k install –n “服务名enter

说明:

①执行完以上命令成功后,Apache会被安装为windows的服务。在命令行输入:

services.msc enter  会打开windows服务列表,在列表中会看到Apache已经被安装。

②对应的卸载命令:

httpd –k uninstall enter httpd –k uninstall –n “服务名enter

③安装的Apache默认使用配置文件G:\Apache\Apache24\conf\httpd.conf,也可以为不同的Apache指定不同的配置文件,命令如下:

httpd -k install -n "服务名" -f"G:\files\my.conf"enter

④若安装过程中提示配置文件错误,则可用以下命令进行配置文件(httpd.conf)检查:

httpd -t enter   

httpd –n “服务名” –t enter

运行以上命令后,会在命令行显示配置文件具体哪一行错误。,若没错误会显示Syntax OK

 

二、安装PHP

第一步:下载php

网址:http://windows.php.net/download 选择php5.6下面的VC11 x64 Thread safe  Zip

下载完成后,将其解压到G:\PHP文件夹中。

第二步:配置php

找到G:\PHP\php.ini-development并将其重命名为php.ini。打开php.ini,修改如下:

;extension_dir = “ext”  改为 extension_dir=”G:\PHP\ext”

开启自动连接Mysql的功能:找到以下字段,并将其前面的”;”去掉

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_pdo_mysql.dll

extension=php_pdo_odbc.dll

extension=php_xmlrpc.dll

③设置时区。

;date.timezone  改为 date.timezone=Asia/Shanghai

④开启PHP session功能(可选)

G:\PHPWeb下新建文件夹命名为Session,并将;session.save_path = "/tmp" 改为 session.save_path = "G:\PHPWeb\Session"

⑤开启PHP上传文件功能(可选)

G:\PHPWeb下新建文件夹命名为FileUploadtmp,并将;upload_tmp_dir = 改为upload_tmp_dir = “G:\PHPWeb\FileUploadtmp”

三、配置Apache使其支持PHP

打开G:\Apache\Apache24\conf\httpd.conf进行编辑:

A、在#LoadModule xml2enc_modulemodules/mod_xml2enc.so下面添加以下内容:

LoadModule php5_module "G:\PHP\php5apache2_4.dll"

PHPIniDir "G:\PHP"

AddType application\x-httpd-php .php .htm .html

B、将DirectoryIndex index.html改为DirectoryIndex index.php index.html

说明:在命令行运行httpd –t进行httpd.conf文件的语法检查。若提示无法将php5apache2_4.dll加载进server,有两种可能:

ApacheVC版本(VC6911)和PHPVC版本(VC6911)不对应。

解:检查相应的VC版本,更改ApachePHP的版本后即可

②电脑的VC distributeable版本不对。

解:手动运行G:\PHP下的php.exe文件,新版本需要相应的vc支持,若电脑原来并没有安装则会提示msvcr110.dll找不到,安装对应的vc即可解决。(安装VC11相关组件网址:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679)。没有报错后再去配置httpd.conf文件,注意Apache2.4需要加载php5apache2_4.dll,如果Apache2.2需要加载php5apache2_2.dll,若这两个搞错了话也会出现dll无法加载的报错。

 

至此,ApachePHP的开发环境就已搭建完毕。

 

其他

1)启动、关闭Apache

         net startApache2.4

         net stop APache2.4

2Apache2.4安装后:the requested operation has failed问题定位

180端口被占用

2APache2.4/conf/httpd.conf配置文件内容有错误

问题:

访问php页面时浏览器变成下载其php页面问题解决尝试:

1)将G:\PHP\dev加入环境变量

2)将G:\PHP\dev中的php5ts.lib文件拷贝到C:\Windows\System32

3)修改httpd.conf文件:AddType application/x-httpd-php .php .htm .html这句移动到 AddType application/x-gzip.gz .tgz这句下边。

 

不知不觉就好了,我也很费劲。。。

四、安装MySql

第一步:下载MySQL

进入MySQL官网后选择MySQL Community EditionGPL)为免费版(MySQL Community Server

地址:http://dev.mysql.com/downloads/mysql/最下边选择Windows (x86,64-bit) MySQLInstaller MSI下载。

第二步:安装MySql

双击运行install,运行后选择custom,点击next。会出现两个框,左边选择要安装的功能,右边显示你选择的功能,选择好所有功能后,在右边框里选中某个功能,则会在下方出现Advanced Option按钮,点击Advanced Option,用户可以指定安装目录。注意:只有在右边框里选择了某个功能,才会在下方出现Advanced Options按钮!之后一步步进行安装就好了。

第三步:测试连接

更改G\PHPWeb中的index.php文件如下:

    $dbc= mysqli_connect("127.0.0.1","root","soton");

    if(!$dbc) {

        echo"数据库链接错误!";

    }else{

        echo"Success";

    }

    mysqli_close($dbc);

?>

保存后在浏览器中输入 localhost1024回车,若显示success!则证明可以连接MySQL

 



TIPS:

1、安装Apache为window服务。进入Apache/Apache2.4/bin,然后:

httpd -k install (卸载:httpd -k uninstall)

若安装多个Apache,则可以指定不同名字:

httpd -k install -n "服务名" (卸载:httpd -k uninstall -n "服务名")

若为不同名称的服务使用不同的配置文件,则:

httpd -k install -n "服务名" -f "G:\files\my.conf"

启动、重启、关闭Apache:

net start Apache2.4

net stop APache2.4


检查配置文件正确性:

httpd -n "服务名" -t


2、Apache2.4安装后:the requested operation has failed问题定位

(1)80端口被占用

(2)APache2.4/conf/httpd.conf配置文件内容有错误

解:文件中Line38,将SRVROOT设置为G:\Apache\Apache24即可。

   

3、先手动运行php目录下的php.exe文件,新版本由于需要vc的支持,如果没有安装会提示msvcr110.dll找不到,安装vc即可解决

安装vc11相关组件,请到 http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 下载

没有报错后再去配置http.conf文件,加载php5apache2_4.dll(这个代表的是2.4版本的appache),如果是2.2的apache去加载2.4的支持文件,就会报错Cannot load php5apache2_4.dll into server

LoadModule php5_module "d:/php/php5apache2_4.dll"

PHPIniDir "d:/php/"

我是遇到这个问题,用了2.2的apache去加载2.4的文件,升级了apache到2.4后,问题解决

http://www.apachelounge.com/download/  apache2.4 版本下载地址