很多新手在配置php与apache时会发生各种问题,比如我,但是在历经折磨后也是搞好了,在此将一些经验分享给大家。
下载php和apache
apache在http://www.apachelounge.com/download/下载
php在https://windows.php.net/download/下载windows最新版本,或者在windows.php.net - /downloads/releases/archives/下载自己需要的版本
下载后将两个文件解压到没有中文路径的地方,可以将apache24从httpd-2.4.58-win64-VS17文件夹中移出来,我就是这样做的,更简单明了。
配置
配置php
将php.ini-development复制一份,并将其名字改为php.ini,用记事本或vscode等打开。
将;extension_dir="ext"修改为你自己放的路径
![](https://i-blog.csdnimg.cn/blog_migrate/63aa9f6828d598a434101676be103ddf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f63a8750d9e41c829e3b8f806ce41dce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/80c599f3db2e13ba9b80b3c1ee4b62e8.png)
配置apache
![](https://i-blog.csdnimg.cn/blog_migrate/416380bce361d5e40eb19d71fd479a13.png)
即在#LoadModule access_compat...这句话前面加上
#php support
LoadModule php7_module "D:\Program File\php\php-7.2.24\php7apache2_4.dll"
PHPIniDir "D:\Program File\php\php-7.2.24"
其中的路径改为你自己的php的路径
在#AddType后添加一行
AddType application/x-httpd-php .php .html .htm,如图所示
由于apache默认使用的端口为80端口,容易与主机的其他使用80端口的服务发生冲突,故可以修改apache的端口,修改Listen后面的端口号即可,我使用的是8000,如图
同时注意添加servername,在#ServerName www.example.com:80后添加一行,如图
然后如果没有服务,要添加服务,在httpd.exe所在目录以管理员身份打开cmd,在命令行中输入httpd.exe -k install -n "Apache24",即可添加服务。
这样就大功告成了。
启动服务,在命令行中输入net start Apache24即可启动服务。
常见报错处理
错误原因一:端口冲突
在cmd中输入netstat -ano|findstr 80(或8000,即你配置的apache监听的端口)
如果发现[::]:80或0.0.0.0:80等,即代表80端口被占用,可以修改apache所用端口即可
错误原因二:配置有误
在添加php模块时要注意后面的路径要为你电脑上的真实路径,同时注意一定要有引号,否则会报缺少参数的错误,当然这个报错详细信息要在日志或命令行里才能看到,直接启动服务会报“发生服务特定错误:1”等无从下手的错误。如图
#php support
LoadModule php7_module "D:\Program File\php\php-7.2.24\php7apache2_4.dll"
PHPIniDir "D:\Program File\php\php-7.2.24"
错误原因三:没有设置servrename
如果你是在命令行中运行httpd,并且遇到了如:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::acb3:d8de:8a5e:10e7. Set the 'ServerName' directive globally to suppress this message这样的错误,那么就是你没有在apache的httpd.conf中设置servername。
在#ServerName www.example.com:80这条语句下面添加ServerName localhost:8000,后面的为你自己设置的端口号,如图
这样就不会有问题了
小问题:设置默认页面为index.php
通常apache会将index.html设置为一个网站的默认打开页面,如果我们想要将index.php也设置为默认打开的页面,可以在apache的httpd.conf中找到DirectoryIndex,在后面添加index.php即可,如图
这样就可以将index.php作为默认页面了。
希望我的文章能够对你有所帮助。