无法启动一
一想,前几天装了XAMPPP,是不是被挤掉了,马上跑到服务项里一看,啥都没,两者的服务都没。试试XAMPP,能启动。原生的APACHE就是启动不了,服务都不存在!
上网搜资料,都说是80端口被占用,马上netstat -aon|findstr "80",一看1388占用了80,可是这个是火狐浏览器。。。总不能不用浏览器吧。这个明显不对。既然服务都不存在,那解决办法应该是安装服务才对。
立马,安装服务。
进入APACHE的BIN目录,命令行界面运行HTTPD,执行httpd -k install -n "apache",安装APACHE服务,命令行给出如下提示:
Could not reliably determine the server's fully qualified domain name, using 192.168.5.201 for ServerName.
好办,打开httpd.conf配置文件,添加 ServerName localhost:80,再重新运行ApacheMonitor.exe,好了。看了下以前的备份配置文件,这一行被注释掉的。以前为什么行,后来安装 了其他集成套件就不行了,原因还不是很清楚。APACHE配置还要熟悉熟悉哈。
----------------------还有一种情况---------------
启动apache。但是启动时候却报错,无法重启。查看apache的错误日志文件,显示Unclean shutdown of previous Apache run?
到网上搜了一下,一般有两种出错的可能性:
第一:[warn] pid file D:/apache2.2/logs/httpd.pid overwritten — Unclean shutdown of previous Apache run?
需要删除对应的apache pid文件。但是大多数人遇到的不是这种情况
第二种情况:php模块添加错误。比如说dll文件没有按照规定放入php/ext目录下,比如说php.ini文件书写错误。如果都没有发现,那就试试把新添加的模块删除掉在试试。最大的可能就是新增加的扩展不兼容php对应的版本,以及扩展找不到等。
可以先运行php.exe来测试下,如果是扩展问题,会弹窗提示的。
apache服务无法启动 提示服务启动后又停止
系统:WindowsXP Professional Service Pack2
wamp5集成安装包
测试80端口显示:“Your port 80 is not actually used.”(即使更改apache的端口到8080同样无法启动)
[Fri Nov 26 10:43:26 2010] [notice] Server built: Jan 18 2008 00:37:19
[Fri Nov 26 10:43:26 2010] [notice] Parent: Created child process 1060
[Fri Nov 26 10:43:26 2010] [notice] Child 1060: Child process is running
[Fri Nov 26 10:43:26 2010] crit提供了一个无效的参数。 : Child 1060: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
[Fri Nov 26 10:43:27 2010] [crit] Parent: child process exited with status 3 -- Aborting.
[Fri Nov 26 10:44:57 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations
[Fri Nov 26 10:44:57 2010] [notice] Server built: Jan 18 2008 00:37:19
[Fri Nov 26 10:44:57 2010] [notice] Parent: Created child process 6100
[Fri Nov 26 10:44:58 2010] [notice] Child 6100: Child process is running
[Fri Nov 26 10:44:58 2010] crit提供了一个无效的参数。 : Child 6100: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
[Fri Nov 26 10:44:58 2010] [crit] Parent: child process exited with status 3 -- Aborting.
[Fri Nov 26 10:45:50 2010] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations
[Fri Nov 26 10:45:50 2010] [notice] Server built: Jan 18 2008 00:37:19
[Fri Nov 26 10:45:50 2010] [notice] Parent: Created child process 4180
[Fri Nov 26 10:45:50 2010] [notice] Child 4180: Child process is running
[Fri Nov 26 10:45:50 2010] crit提供了一个无效的参数。 : Child 4180: setup_inherited_listeners(), WSASocket failed to open the inherited socket.
[Fri Nov 26 10:45:50 2010] [crit] Parent: child process exited with status 3 -- Aborting.
卸载此安装包N次并且每次都彻底删除,并且把注册表中的残余服务也删除干净,并安了N次,仍然不能启动apache服务(本安装包在网吧能正常安装并使用)。
经过一番网搜以及我司技术员的讨论和探索,终于找到了解决办法:
本地连接---属性----Internet 协议(TCP/IP)---属性---高级---wins----导入LMHOSTS(M)把 {apache2dir}binhttpd.exe 添加进去就可以启动了
比如:httpd.exe的路径为“F:wamp2binapacheapache2.2.8binhttpd.exe”,那么{apache2dir}就是“F:wamp2binapacheapache2.2.8”
Windows 系统下配置 Apache 服务有时会遇到
Apache2 服务无法启动。
发生服务特定错误: 1.
请键入 NET HELPMSG 3547 以获得更多的帮助。
的错误,这种错误可能有多种原因引起。我今天发现配置文件注释用得不对也是造成这个错误的一个原因:配置文件 httpd.conf 中如果写注释,注释以 # 开头必须单独放在一行中。而在某个配置项同一行写了 # 注释,就会造成以上无法启动的问题。解决办法就是把注释都单独放在一行。这只是无法启动的一个可能的原因
服务可以启动但是输入localhost无法打开页面
这一般是netbios解析失败造成的。解决的办法很简单,步骤如下:
1 在"网上邻居"上 点右键,菜单上选"属性(R)"。出来"网络连接"窗口,在"本地连接"上点右键,菜单中点"属性(R)"。出来"本地连接 属性"面板,在"此链接使用下列项目"中找到:"Internet 协议 (TCP/IP)",并点击它。在弹出的"Internet 协议 (TCP/IP) 属性"面板上,点击"高级(V)..."按钮。"高级 TCP/IP 设置"面板上点"WINS"选项标签,去掉"启用 LMHOSTS 查询(L)"前面的勾,点"确定"按钮。
2 打开"控制面板",点击"Windows 防火墙",点击"高级"选项标签,选择"本地连接",并点击旁边的"设置(T)..."按钮。在服务选项中找到"安全 Web 服务器(HTTPS)",并把它勾选上,点"确定"按钮。
最后一类问题 php文件无法解析
当你万分惊喜的发现可以打开http://localhost 并看到apache的"IT works!"的页面时,你很激动的马上测试一个phpnifo的页面,却发现无法解析。这是因为,apache不知道如何解析php文件。虽然 LoadModule和AddType语句已经告诉apache 载入php模块并注意php后缀的文件,但是真正的解析还是要调用php5ts.dll等等文件,所以
方案一:在path里添加php所在目录 并在httpd.conf里添加
PHPiniDir "D:/php-5.2.5-Win32/"
方案二:直接将php5ts.dll从php目录拷贝到apache的bin目录即可
另外有一点需要注意 apache2.2以上的版本需要使用php5apache2_2.dll
在php5.2.5 已经自带了 而使用以前的版本,譬如php5.1请到http://php.net下载补丁php5apache2.dll-php5.1.x.rar并解压.共有三个文件.
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
完成!重启你的apache2.2试试吧.
当然,使用php5.2.5 完全不用管这个问题!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。