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

本文详细介绍了如何在Windows系统上下载并配置Apache httpd服务器与PHP 8.0版本,包括下载链接、解压、配置Apache监听端口、文档根目录、添加PHP支持,以及解决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”配置服务的根目录
Listen81根据自己系统情况配置监听端口,笔者的80端口已经被使用,所以配置为81
ServerNamelocalhost: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中即可。

Apache2.4 Win64位 配置PHP: #----------------Fastcgi-------------------------------- LoadModule fcgid_module modules/mod_fcgid.so <IfModule mod_fcgid.c> FcgidMaxRequestsPerProcess 1000 FcgidMaxProcesses 15 FcgidIOTimeout 600 FcgidIdleTimeout 600 MaxRequestLen 104857600 </IfModule> #------------------------------------------------------- AddType text/html .php #fastcgi环境配置 <IfModule mod_fcgid.c> AddHandler fcgid-script .php FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 FcgidInitialEnv PHPRC "F:/web/server/PHP" FcgidInitialEnv OPENSSL_CONF "F:/web/server/PHP/extras/openssl.cnf" FcgidWrapper "F:/web/server/PHP/php-cgi.exe" .php </IfModule> 备注: apache No input filespecified,今天是我们配置apache RewriteRule时出现这种问题,解决办法很简单如下 打开.htaccess 在RewriteRule 后面的index.php教程后面添加一个“?” 完整代码如下 .htaccess RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ /index.php?/$1 [L] 如果是apache服务器出问题,看看是不是的Apache.php 后缀的文件解析哪里有问题了。 Apache 将哪些后缀作为 PHP 解析。例如,让 Apache.php 后缀的文件解析为PHP。可以将任何后缀的文件解析为 PHP,只要在以下语句中加入并用空格分开。这里以添加一个 .phtml 来示例。 AddType application/x-httpd-php .php .phtml 为了将 .phps教程作为 PHP 的源文件进行语法高亮显示,还可以加上: AddType application/x-httpd-php-source .phps 用通常的过程启动 Apache(必须完全停止 Apache 再重新启动,而不是用 HUP 或者USR1 信号使 Apache 重新加载)。 调试: httpd.exe -w -n "Apache2.4" -k start (引号中为你的apache服务名) module: http://www.apachelounge.com/download/
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值