文章目录

项目最近需要写几个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”配置服务的根目录Listen81根据自己系统情况配置监听端口,笔者的80端口已经被使用,所以配置为81ServerNamelocalhost:81这里的端口同上DocumentRoot“c:\test”默认配置为“\({SRVROOT}/htdocs”,如果想改为其它地方,比如“c:\test”则直接填写路径。如果修改了DocumentRoot,则需要把下面一行{SRVROOT}/htdocs”>中的配置也一同修改了

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

1#php8 support
2LoadModule php_module "D:/httpd-2.4.48-Win64/php/php8apache2_4.dll"
3AddType application/x-httpd-php .php .html .htm
4PHPIniDir "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中使用:

1httpd -k install

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

1PHP 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中即可。