apache服务启动失败的解决方案
warning:
这篇文章距离上次修改已过1849天,其中的内容可能已经有所变动。
一般在cmd中直接运行httpd会有详细的错误提示!
未找到服务
前期准备
#进入Apache安装目录下的bin目录:
cd C:\Apache24\bin
添加apache服务
键入命令:
httpd.exe -k install -n apache2.2
结果显示:
Installing the apache2.4 servece
The apache2.4 service is successfully installed.
删除apache服务
键入命令:
httpd.exe -k uninstall -n apache2.4
结果显示:
Removing the apache2.4 service
The apache2.4 service has been removed successfully.
启动apache服务
键入命令:
net start apache2.4
结果显示:
apache2.2 服务正在启动。
apache2.2 服务已经启动成功。
关闭apache服务
键入命令:
net stop apache2.4
结果显示:
apache2.4 服务正在停止。
apache2.4 服务已经成功停止。
Windows 不能在 本地计算机启动 Apache
80端口被占用
先用命令行
netstat -an -p tcp -o
- 关掉对应的程序
- 或是更改端口
ServerRoot must be a valid directory
现象
D:\apache\Apache24\bin>httpd -k install
Installing the 'Apache2.4' service The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
httpd: Syntax error on line 40 of C:\Apache24\conf/httpd.conf: ServerRoot must be a valid directory
原因
httpd.conf里面配置的ServerRoot路径跟实际路径不一致,导致路径无效。
方法
- 打开Apache安装目录下的
conf
目录里面的httpd.conf
- 然后,搜索
Define SRVROOT
(只有一处),将其后面的双引号里面的路径改为Apache的实际解压路径后保存即可。 - 安装apache服务。(上面有)
- 启动apache服务并且测试apache服务
- 浏览器输入:http://localhost/(如果你没改默认端口话,像我需要访问http://localhost:8180/)
Syntaxhttpd.conf : Cannotload php5 apache2_4.dll
现象
Syntax error on line 数字 of :/Apache/conf/httpd.conf: Cannot load D:/PHP/php5apache2_4.dll into server
你需要检查一下几项
1.Apache的httpd.conf文件
- 打开Apache安装目录下的
conf
目录里面的httpd.conf
- 在文件末尾加
LoadModule php5_module "D:\PHPserver\php5.6/php5apache2_4.dll"
AddType application/x-httpd-php.php
AddType application/x-httpd-php.htmlPHPIniDir "D:\PHPserver\php5.6"
注意添加的是相应的php所在文件,下载安装时是不是php这个文件的,需要我们自己手动创建。
2. php的php.ini
- 打开
php.ini
- 找到doc_root修改为
doc_root ="C:\Apache24\htdocs"
- 找到extension_dir修改为
extension_dir = "C:\php\ext"
并且要去掉extension_dir
前的分号 - 找到
extension=php_mysqli.dll
去掉之前的做分号
AH00526错误
现象
AH00526: Syntax error on line 293 of D:/php_web/Apache24/conf/httpd.conf:Invalid command ‘Order‘, perhaps misspelled or defined by a module not includedin the server configuration
原因
mod_authz_host.so模块没有加载
方法
- 打开apache的
httpd.conf
- 找到
mod_authz_host.so
去掉前面的#号