欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

win7 64位Apache http server+PHP配置

程序员文章站 2022-05-30 13:39:51
...

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

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

win7 64位Apache http server+PHP配置

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

问题是: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: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3.

原因是:此文件要跟版本对应,否则就不能加载。后来又出现一次,也是这个提示,只是换成了php5.4.8 在174行,“D:\ApaServ\php\php5apache2_4.dll”的激活上下文生成失败。 找不到从属程序集 vcredist_x86.exe。后来解决方法是: 把 vcredist_x86.exe重新安装了一次,这个是我在安装apache之前安装的,可能里面的文件被改写了,所以找不到。我也是看了网上:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi st\Debug_NonRedist\x86\Microsoft.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(控制面板-用户账户和家庭安全-系统和安全-操作中心,里面有“更改用户账户控制设置”,改成从不通知,完成后会提示重启,此时需要重启一下)再安装就没问题了,安装完后可以再修改回来。

win7 64位Apache http server+PHP配置

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后的目录设置相对应

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

win7 64位Apache http server+PHP配置

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文件,内容为

  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”

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

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

截图:win7 64位Apache http server+PHP配置

win7 64位Apache http server+PHP配置