您的位置:首页 > 运维架构 > Apache

安装xampp后apache不能启动解决方法

2015-04-02 09:18 621 查看
Xampp的获得和安装都十分简单,你只要到以下网址下载xampp即可

不过,安装目录最好选择C盘之外的其它磁盘,据某些网友的经验,在Windonws7或Vista中,如果选择C盘安装,由于权限原因,会出现创建一些文件失败的问题。如果你已经据有最高权限,可以直接装在C盘。

一般在windows XP或windows 7中,刚安装完xampp时,apache服务器是启动不了的。这个原因有很多,下面我来一一细说。

------------------------------------------------                      常规原因及解决方法                               
 --------------------------------------------------------------

没有安装VC9的环境
         要判断是否是这一问题十分简单,只要单独运行C:\xampp\apache\bin\httpd.exe时(这个是我的安装路径),提示“系统无法执行指定的程序”(这个是用命令行运行后的提示),如果是直接双击httpd.exe,则会提示环境配置错误。

 

         解决办法:直接下载vcredist_x86.exe。
     以下是在php.net看到的提示信息:

     VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed

按照链接下载了Microsoft Visual C++ 2008 Redistributable Package (x86),就是那个vcredist_x86.exe,一个运行时环境,使用户能够在未安装 Visual C++ 2008 的计算机上运行使用 Visual C++ 开发的应用程序。装好后启动Apache,一切正常。

端口被其它程序占用
         有时,并不是安装完VC9环境就可以直接运行Apache,其中一个重要的原因,便是Apache服务器所使用的端口被其它程序占用了,经典代表:迅雷。
解决办法:

       1.80端口冲突,解决方法:
       打开目录C:\xampp\apache\conf(我的安装目录为C:\xampp)下的httpd.conf文件,将Listen 80和 ServerName localhost:80中的80改为8081或其它值(尽量不要使用0-1023端口,这个是系统保留端口),要保持一致。

        2.监听端口443冲突,解决方法:
        打开目录C:\xampp\apache\conf\extra (我的安装目录为C:\xampp)下的httpd-ssl.conf文件,将Listen 443这句注释掉:# Listen 443或将443改为4433或其它值(尽量不要使用0-1023)。

        3.Apache已正常启动,而Xampp的控制面板没有显示。解决方法:
        在浏览器中输入http://localhost:8081,如果能直接进入Apache服务器的控制页面就是没有问题的了。另一种情况,原因可能是由于安装了oracle10g,与其中的perl5lib变量发生了冲突,解决方法有3种:

                 (1) 打开目录C:\xampp\apache\conf(我的安装目录为C:\xampp)下的httpd.conf文件,将Include "conf/extra/httpd-perl.conf"注释掉:# Include "conf/extra/httpd-perl.conf"。
                  (2) 打开目录C:\xampp\apache\conf\extra (我的安装目录为C:\xampp)下的httpd-perl.conf文件,找到LoadModule perl_module modules/mod_perl.so,在下面一行增加PerlSwitches –T,保存文件即可。

                  (3) 修改环境变量:在环境变量path中增加C:\xampp\perl\lib; C:\xampp\perl\site\lib;即可。

 

        前两种方法的任一种都能解决我遇到的apache启动后又马上停止的问题,第3种方法我遇到的是没显示,但已经运行,至于另一种情况可能对某些网友有用,所以也把它写了出来,以供参考。

---------------简单粗暴方法--------------------

问题现象:在xampp control panel下按start按钮,running一秒后自动停止

 

查看apache/logs/error.log日志,描述如下:

[Sat Dec 18 12:35:40 2010] [notice] Digest: generating secret for digest authentication ...

[Sat Dec 18 12:35:40 2010] [notice] Digest: done

[Sat Dec 18 12:35:40 2010] [notice] Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations

[Sat Dec 18 12:35:40 2010] [notice] Server built: Nov 11 2009 14:29:03

[Sat Dec 18 12:35:40 2010] [crit] (22)Invalid argument: Parent: Failed to create the child process.

[Sat Dec 18 12:35:40 2010] [crit] (OS 6)句柄无效。  : master_main: create child process failed. Exiting.

[Sat Dec 18 12:35:40 2010] [notice] Parent: Forcing termination of child process 36 

 

解决方法:

1.在XAMPP Control Panel点Setup,弹出命令行;

2.选择6回车,enable mob_perl。

------------------------------------------

----------------------------------------------------------                          其他方法                                     --------------------------------------------------------------

下面的解决方法也是网友在实际中用到的,但不推荐。

原因在于,可以更改服务器配置,就尽量不要动操作系统的环境和配置,要不然,以后其它软件出问题,你也不知道是不是这个系统设置惹的祸。

当然,如果你对你的操作系统足够熟悉就另当别论。

而现在我只是写出来,供大家参考,也许由于你的原因特殊,正好解决你的问题。

1 关闭占用80端口的进程。

在“运行”中输入cmd命令,打开dos窗口,输入命令:netstat –abn –>D:\port.txt或命令netstat –ano|findstr 80命令,打到占用80端口的进程,然后打任务管理器窗口,关闭该进程。此方法治标不治本,执行比较麻烦,不推荐使用。

2 修改网络设置

(1) 网上邻居——本地连接——属性——internet协议(TCP/IP)——属性——高级——wins标签——去掉“启用LMHOSTS查询(L)”前的勾。

(2) 控制面板——Windows防火墙——“高级”标签——本地连接——设置——“服务”标签——勾选“安全web服务器(HTTPS)。

这种方法有些奇怪,说不清为什么,如果实在找不到办法了,可以一试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息