国王们以世袭的权柄和虚名逼你下跪,无产者先驱要你站起来,用战无不胜的知识武装自己。
接了个PHP项目,又算开了一个新坑,技多不压身,强大了自己才能战胜敌人与走狗。
前情提要:配置php环境,Windows环境下安装配置Apache24。
需要前置操作:下载配置php环境,创建php.ini配置文件(从php.ini-development复制一份然后改个名字),修改php.ini内路径配置,为php添加系统变量。
前置操作参考文章:windows下apache简单配置php解释器_lifejump的博客-CSDN博客
这篇文章第二小节之前值得参考,但是第三节绕了个弯。
官网地址:Download - The Apache HTTP Server Project
自己电脑截图有水印很烦,借用别人的截图。配置win64位的,点击最小的红框就是压缩包了,右边那个也能下,但是看样子是德国镜像,有的网络环境应该下载不了
1、解压到与php父文件夹同级目录下
2、修改Apache24\conf\httpd.conf文件:
①服务器根目录修改:
Define SRVROOT "D:\PHP\Apache24"
Define PHPDIR "D:\PHP\php"
ServerRoot "${SRVROOT}"
上边的地址改成自己Apache文件夹地址和php文件夹地址
②服务监听端口修改
这个listen端口默认80,有很大概率会被占用,建议自己找一个合适的空闲的端口。
如果这个端口被占用,则接下来启动时可能报错:
③修改联系方式和服务器名
# 这些配置为虚拟主机<VirtualHost>配置的默认值
# 如有相同的配置项则将被<VirtualHost>中的配置覆盖
# 服务器管理员联系邮箱,该信息将会显示在一些输出信息中,比如返回给客户端的错误信息
ServerAdmin postmaster@localhost
# 服务器绑定的域名和端口,用于标识服务器名称
# 如果没有域名可以用IP或localhost标识,不配置该项启动服务时会发出警告信息
ServerName localhost:8010
这个联系方式不一定需要修改,看看以后用不用得到了。
④修改默认访问文件
这个如果没有自己的页面可以不用改,本身会自带一个测试页面index.html以供服务测试。
<IfModule dir_module>
# 设置请求目录时,Apache默认提供的文件
DirectoryIndex index.html index.php
</IfModule>
⑤修改 加载动态共享对象
只是展示一下这部分配置长啥样,内容不重要,图里的都是默认的。
添加支持php的配置:
LoadModule php_module 'D:/PHP/php/php8apache2_4.dll'
PHPIniDir "D:/PHP/php"
上边那个是php文件夹里的文件,如果找不到,请检查php下载的对不对。注意如果是php7或之前的版本,LoadModule后边应该写php7_module(这个数字7匹配你的php版本),在php8之后就不用写版本号了。
下面那个是php.ini文件所在文件夹路径。
⑥MIME类型与文件处理
找到<IfModule mime_module>这部分配置块:
添加上图最后一条配置:
AddType application/x-httpd-php .php .htm .html
后边要写.htm .html是为了在html环境下服务器也能解析php代码,可以视情况不加。
⑦拓展:关于这些Apache的配置内容都是什么意义,请参考这篇优秀博文:
3、以管理员身份在当前目录启动终端,执行:httpd -k install
安装成功后会显示提示信息,如果安装失败建议检查第2-①步中配置的地址是否有误,没错误但是安装失败建议再百度一下。
4、运行Apache,执行: net start Apache2.4
如果出现报错,请检查第二-②步配置的端口是否被占用,如果没有被占用依然报错,请检查第二-⑤步配置的php是否正确,是否需要加版本号。具体参考:
Apache2.4配置PHP后启动Apache出现发生服务特定错误: 1.请键入 NET HELPMSG 3547 以获得更多的帮助。_Sugar--T的博客-CSDN博客
5、检查服务启动状态:
浏览器访问localhost:8010,查看测试页面,或者将要测试的页面放入\Apache24\htdocs文件夹下,访问localhost:8010/文件名,例如:Apache2.4配置PHP后启动Apache出现发生服务特定错误: 1.请键入 NET HELPMSG 3547 以获得更多的帮助。_Sugar--T的博客-CSDN博客。访问时8010请替换成第二步中httpd.conf文件里配置的端口号。
访问自己页面:
测试页面源码:
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
可以看到PHP代码被正常解析,如果出现php代码不解析,或者被注释掉的情况,请检查第2步中第⑥步的配置是否正确,修改配置后记得重新启动服务配置才能生效。
尝试纯php代码:
<?php
echo "没有任何力量比知识更强大,用知识武装起来的人是不可战胜的。";
?>
效果:
没有任何力量比知识更强大,用知识武装起来的人是不可战胜的。——高尔基
访问默认测试网页:
这样就算启动成功了。
由于电脑自带水印,图片做部分打码处理。
6、常见问题汇总:
①服务启动错误:
报错信息:
发生服务特定错误: 1.
请键入 NET HELPMSG 3547 以获得更多的帮助
解决方法:检查第2-②步的设置的端口是否已被占用,如果被占用请更换空闲接口或杀死占用的进程。检查第2-⑤步的php配置是否出错,具体参考:Apache2.4配置PHP后启动Apache出现发生服务特定错误: 1.请键入 NET HELPMSG 3547 以获得更多的帮助。_Sugar--T的博客-CSDN博客
②服务启动系统拒绝访问:
解决方法:使用管理员身份运行cmd/终端界面。
③ 访问界面时php内容不解析,显示源代码。或php内容不显示,F12查看发现页面php部分被注释掉。
.纯php页面不解析:访问1.php
html环境下php内容被注释掉:
解决方法: 检查第2-⑥步配置是否有错,如果后边没有配置 .php,则导致纯php文件不解析,如果不配置 .htm .html,则在html文件中php被注释掉。
提一嘴,如果你配置了.php文件,直接在.php文件里写html,中间插入php代码也是可以生效的。
以上就是配置Apache的一些经验,踩过的一些小坑,如果朋友们在配置的过程中还遇到了什么其他问题,可以在评论区留言,我们共同研究一下。