我安装了XAMPP 1.6.8,但它似乎无法正常工作。后来发现端口80没有空闲或未监听。我该如何释放或让其空闲?
非常感谢!
我安装了XAMPP 1.6.8,但它似乎无法正常工作。后来发现端口80没有空闲或未监听。我该如何释放或让其空闲?
非常感谢!
我正在尝试从这里安装 nginx
- http://nginx.org/en/docs/windows.html
访问 http://localhost/ 将会显示一些信息,至少是一个合适的“未找到”消息。
这是因为80端口是默认端口,并且已被其他进程占用。
现在执行以下命令:
net stop http
// Above command stopped below services
// - SSDP Discovery
// - Print Spooler
// - BranchCache
// - Function Discovery Resource Publication
// - Function Discovery Provider Host
BranchCache
,此进程停止后,会在几秒钟内重新启动。因此,我们需要立即运行其他命令,以下是一个示例:// this will stop
net stop http
// immeidately run other command you want to
start nginx
现在,访问http://localhost/会显示:
Welcome to nginx!
我也遇到了同样的问题,使用net stop http
没有帮助,并且在Windows控制面板中的IIS下的World wide web services选项未被勾选。所以在XAMPP控制面板中,我只需选中Apache启动按钮旁边的Svc复选框(安装Apache作为服务),然后重新启动Windows。现在每次Windows启动时,Apache会自动启动并占用端口80,先于任何其他服务。对我有用!
这只是一个猜测,但由于端口80是HTTP的传统端口,您可能在系统上运行着Web服务器。是否启用了IIS?
如果您正在运行IIS,则可能会运行Web farm服务。这就是导致我的xampp崩溃的原因。
监听80端口的已知Windows服务
从服务管理器(运行:services.msc)中停止并禁用以下已知绑定到端口80的Windows服务。
双击服务后,将“启动类型”更改为“禁用”...
Skype也默认使用端口80, 您可以取消选中它。
您可能已经安装并运行其中一些服务,也可能没有。
在我的情况下,“SQL Server Reporting Services”正在打开端口80。
通常情况下,这里的答案都需要一定的交互性。
问题在于当某些东西通过HTTP.sys进行侦听时,PID始终为4,并且大多数人发现需要一些工具才能找到真正的所有者。
以下是如何以编程方式识别有问题的进程。没有TcpView等工具(尽管这些工具很好)。但确实依赖于netsh;但是,问题通常与HTTP.sys有关。
$Uri = "http://127.0.0.1:8989" # for example
# Shows processes that have registered URLs with HTTP.sys
$QueueText = netsh http show servicestate view=requestq verbose=yes | Out-String
# Break into text chunks; discard the header
$Queues = $QueueText -split '(?<=\n)(?=Request queue name)' | Select-Object -Skip 1
# Find the chunk for the request queue listening on your URI
$Queue = @($Queues) -match [regex]::Escape($Uri -replace '/$')
if ($Queue.Count -eq 1)
{
# Will be null if could not pick out exactly one PID
$ProcessId = [string]$Queue -replace '(?s).*Process IDs:\s+' -replace '(?s)\s.*' -as [int]
if ($ProcessId)
{
Write-Verbose "Identified process $ProcessId as the HTTP listener. Killing..."
Stop-Process -Id $ProcessId -Confirm
}
}
我遇到了相同的问题,通过在httpd.conf
文件中进行小修改来解决它,可以通过单击Apache选项旁边的配置按钮获得该文件。
我所做的更改是将listen 80替换为listen 8080。
对我来说,这个问题是在我在Windows 8电脑上托管VPN连接时开始的。
仅仅从"控制面板\网络和Internet\网络连接"中删除该连接就解决了问题。