爱程序网

win7 64位Apache http server+PHP配置

来源: 阅读:

一、下载PHP 

1、首先下载apache http server(我本来是想在官网下载,但是找半天也没找到,于是就在网上下了一个老版本的)我是在这个网址下载的:http://download.csdn.net/download/chang87812/7175961

2、下载PHP:同样的我开始在官网下载了最新版的(网址:(http://windows.php.net/downloads/releases/)

但是后来配置好后又有问题。

问题是:httpd: Syntax error on line 129 of D:/PHP/server/httpd-2.2-x64/conf/httpd.conf: Cannot load D:/ApaServ/php/php5apache2_4.dll into server: xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4xa3xbfxe9xa1xa3.

原因是:此文件要跟版本对应,否则就不能加载。后来又出现一次,也是这个提示,只是换成了php5.4.8 在174行,“D:ApaServphpphp5apache2_4.dll”的激活上下文生成失败。 找不到从属程序集 vcredist_x86.exe。后来解决方法是: 把 vcredist_x86.exe重新安装了一次,这个是我在安装apache之前安装的,可能里面的文件被改写了,所以找不到。我也是看了网上:在类似C:Program FilesMicrosoft Visual Studio 8VCredi stDebug_NonRedistx86Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll msvcp80d.dll msvcr80d.dll Microsoft.VC80.DebugCRT.manifest
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。
其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

这个提示后,才想到的。后来安装php5.5的时候又出现这个错误提示,我开始是按自己的理解,安装了VC++2010运行库,但无论怎么调试都是这个错误,后来我就从网上下载最高版本的VC++2012运行库,一下就成功。(此原因是我在网上查到的,我并没有实践,我不想再装VC++2012运行库了!!!)

于是我就又在网上找到了一个老版本的PHP,下载网址:http://download.csdn.net/download/tonyyxm/5428271

二、安装Apache      

1、64位的Apache不同于32位打包成exe文件可直接安装,先把httpd-2.2.19-win64解压到E:/server/ apache- httpd-2.2.19-win64/(/*E为具体服务器文件所在盘盘符*/)        

2、以管理员身份运行 命令提示符(开始-程序-附件),进入E:/server/apache-httpd-2.2.19-win64/

3、执行httpd -k install

此处出现问题:failed to open the winNT service manager

解决:原来是软件安装时与windows7的“用户账户控制”(UAC)冲突,只要先关闭UAC(控制面板-用户账户和家庭安全-系统和安全-操作中心,里面有“更改用户账户控制设置”,改成从不通知,完成后会提示重启,此时需要重启一下)再安装就没问题了,安装完后可以再修改回来。

 

4、修改httpd.conf,这里跟32位系统里配置一样        

(1)修改ServerRoot "E:/server/httpd-2.2.19-win64/"        

(2) 往下会看到apache开启的功能模块如:#LoadModule vhost_alias_module modules/mod_vhost_alias.so          

 模块其后添加:                  

LoadModule php5_module "E:/Server/php-5.3.6-Win32-VC9-x64/php5apache2_2.dll"                  

PHPiniDir "E:/Server/php-5.3.6-Win32-VC9-x64/"                  

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

(3)继续往下,找到行DocumentRoot "E:/Code/PHP/"设置网页文件目录 此行修改要与行# This should be changed to whatever you set DocumentRoot to后的<Directory "E:/Code/PHP/">目录设置相对应

5、再次在 命令提示符 执行httpd -k start 没有错误即apache服务启动成功

6、关闭Apache服务器:执行httpd -k shutdown

三、配置PHP      

1、如上提到,本人php目录解压到E:/Server/php-5.3.6-Win32-VC9-x64/即对应上步在Apache中设置的LoadModule位置      

2、将php.ini-development修改成php.ini      

3、打开php.ini,找到extension_dir,修改其值为E:/Server/php-5.3.6-Win32-VC9-x64/ext/即php文件所在目录下/ext      

4、找到扩展列表,;extension=php_gd2.dll、;extension=php_mysql.dll、 ;extension=php_mysqli.dll前的“;”去掉即为开启该扩展,当然以上扩展为举例之用,可根据功能虽求不同开启相应扩展      

5、(可选)date.timezone的值设为Asia/Shanghai即date.timezone =Asia/Shanghai      

6、在E:/Code/PHP/下创建一test.php文件,内容为            

<?php                  

  phpinfo();            

?>

然后在浏览器地址栏中输入http://localhost/test.php

上面的配置过程是别人的:我配好后出现以下两个问题:

1、httpd: Could not reliably determine the server's fully qualified

解决:前言:apache虽然能运行,但是看见error.log中有httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168. x. x for ServerName这个错误,想看看是否有其他占用了80端口
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用
假如我们需要确定谁占用了我们的80端口
1、Windows平台
在windows命令行窗口下执行:
C:>netstat -aon|findstr "80"
TCP     127.0.0.1:80         0.0.0.0:0               LISTENING       2448
看到了吗,端口被进程号为2448的进程占用,继续执行下面命令:
C:>tasklist|findstr "2448"
thread.exe                     2016 Console                 0     16,064 K
很清楚吧,thread占用了你的端口,Kill it
如果第二步查不到,那就开任务管理器,看哪个进程是2448,然后杀之即可。
如果需要查看其他端口。把 80 改掉即可
补充:原来出现这个错误原因(httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.111 for ServerName)是因为DNS没配置好. 如果不想配置DNS, 就在httpd.conf , 在最前加入 ServerName localhost:80 即可

2、“(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : make_sock: could not bind to address 0.0.0.0:80”

解决:改端口,打开.apacheconfhttpd.conf,将其中的所有80改为81,保存后重新启动apache的,OK。

改完端口就要以下面网址访问:http://localhost:81/test.php

截图:

(下面是2014/8/2补充)

今天重新打开apache2.2,突然又出现问题了,问题是:<os 5>拒绝访问 faild to open apache2.2

于是我又上网一顿找,最后大家都说是权限不够。所以我就想要在以管理员身份打开的dos界面下,才能用命令Apache2.2

所以我为了图方便,就将bin的路径加到了环境变量中,这样以后打开Apache方便很多。

(2014.12.10服务器又打不开了)

端口被占用,修改端口!!!

 

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助