Windows下使用Apache2.4架设PHP服务器


项目最近需要写几个PHP的Web页面,为了方便测试,需要在Windows本机架设一个PHP的环境。项目中原来使用的Apache来架的PHP,由于只是用于开发时的简单测试,没必要使用WAMP套装,直接下载一个Apache和PHP来进行配置。

一、下载Apache的httpd

打开https://httpd.apache.org/
也可以直接打开Windows版本的下载页面:https://www.apachehaus.com/cgi-bin/download.plx
在这里插入图片描述
从上面两个Download中任选一个进入下载页面。
在这里插入图片描述
由于是Windows版本的,选择Files for Microsoft Windows
在这里插入图片描述
再选择ApacheHaus,进入https://www.apachehaus.com/cgi-bin/download.plx,在前面也可以直接输入此网址进行下载。
在这里插入图片描述
再根据自己的系统情况选择相应的编译版本,
VC14是VS2015编译的、VC15是VS2017编译的、VS16是VS2019编译的,目前VC14版本已经没有相应的包了。笔者的是Windows 7 X64系统,由于最新版本的PHP也是VS16编译的,所以这里也选择VS16版本的。
在这里插入图片描述

下载之后,根据需要安装Visual Studio Redistributable Packages,之前系统安装过就不需要安装了。
在这里插入图片描述

二、下载 PHP

打开https://windows.php.net/download/
在这里插入图片描述
下载最新的PHP 8.0.6的VS16 x64线程安全版本。

三、解压、配置

1.解压

将下载的httpd压缩包解压出来,比如笔者解压到:D:\httpd-2.4.48-Win64\Apache24。
再将PHP压缩包解压出来,放到Apache24目录同级的目录,笔者的为D:\httpd-2.4.48-Win64\php

2.配置httpd

httpd的配置在Apache24\conf\httpd.conf中。

SRVROOT “D:/httpd-2.4.48-Win64/Apache24” 配置服务的根目录
Listen 81 根据自己系统情况配置监听端口,笔者的80端口已经被使用,所以配置为81
ServerName localhost:81 这里的端口同上
DocumentRoot “c:\test” 默认配置为“${SRVROOT}/htdocs”,如果想改为其它地方,比如“c:\test”则直接填写路径。如果修改了DocumentRoot,则需要把下面一行<Directory “${SRVROOT}/htdocs”>中的配置也一同修改了

然后在最后添加上对PHP的支持:

#php8 support
LoadModule php_module "D:/httpd-2.4.48-Win64/php/php8apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
PHPIniDir "D:/httpd-2.4.48-Win64/php"

3.配置PHP

在php目录中把php.ini-development复制一份为php.ini,然后修改其中的配置,由于需要使用到curl以及openssl扩展,所以需要打开相应的扩展:

extension_dir “…/php/ext” 指定扩展所在目录,网上资料多为绝对路径,这里也可以使用相对路径,但是Windows下不能直接使用"ext"或者"./ext",否则会找不到扩展,这里很坑
extension=curl 把前面的分号去掉
extension=openssl 同样把前面的分号去掉,需要加载哪些扩展,就把相应的扩展前面的分号去掉

四、注册并启动httpd

在D:\httpd-2.4.48-Win64\Apache24\bin中使用:

httpd -k install

进行Windows的服务注册。
使用ApacheMonitor.exe启动服务。但是查看httpd日志(Apache24\logs\error.log)会发现有错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: ../php/ext\\curl (\xe6\x89\xbe\xe4\xb8\x8d\xe5\x88\xb0\xe6\x8c\x87\xe5\xae\x9a\xe7\x9a\x84\xe6\xa8\xa1\xe5\x9d\x97\xe3\x80\x82), ../php/ext\\php_curl.dll (\xe6\x89\xbe\xe4\xb8\x8d\xe5\x88\xb0\xe6\x8c\x87\xe5\xae\x9a\xe7\x9a\x84\xe6\xa8\xa1\xe5\x9d\x97\xe3\x80\x82)) in Unknown on line 0

在网上查了很久的资料,原来是需要把php中的libssh2.dll复制到Apache24\bin中即可。

Guess you like

Origin blog.csdn.net/witton/article/details/117366300