首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAMP - Mac OS X

MAMP - Mac OS X
EN

Stack Overflow用户
提问于 2012-08-04 00:58:03
回答 2查看 5.7K关注 0票数 4

我已经在端口8888上使用了一段时间了,所以我在浏览器中访问网站,如下所示:http://localhost:8888/website

然而,我刚刚安装了Wordpress Multisite,因此我想切换到80端口,允许我像正常一样访问网站,并有子目录,如http://website.co.ukhttp://subdomain.website.co.uk

我已经在MAMP中设置了vhosts文件,并在MAMP首选项中将端口更改为80,但是从那时起,MAMP将不会启动Apache。MySQL启动正常,但Apache启动失败。

我已经尝试通过在终端运行以下命令来手动启动apache:

sudo ./startApache.sh

但每次我这样做时,我都会得到以下错误:

代码语言:javascript
复制
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

如果我切换回端口8888,MAMP又能工作了。谁能给我指个正确的方向把这个修好?

代码语言:javascript
复制
sudo lsof | grep LISTEN

launchd      1           root   11u     IPv6  0x8754c7c05566afd       0t0      TCP *:afpovertcp (LISTEN)
launchd      1           root   12u     IPv4  0x8754c7c0556bae5       0t0      TCP *:afpovertcp (LISTEN)
launchd      1           root   30u     IPv6  0x8754c7c0556671d       0t0      TCP localhost:ipp (LISTEN)
launchd      1           root   31u     IPv4  0x8754c7c0556b3ad       0t0      TCP localhost:ipp (LISTEN)
httpd       21           root    4u     IPv6  0x8754c7c0556633d       0t0      TCP *:http (LISTEN)
kdc         43           root    6u     IPv6  0x8754c7c05565f5d       0t0      TCP *:kerberos (LISTEN)
kdc         43           root    8u     IPv4  0x8754c7c0556a53d       0t0      TCP *:kerberos (LISTEN)
httpd      191           _www    4u     IPv6  0x8754c7c0556633d       0t0      TCP *:http (LISTEN)
Dropbox    293            Ell   19u     IPv4  0x8754c7c0a8db6cd       0t0      TCP *:17500 (LISTEN)
Dropbox    293            Ell   25u     IPv4  0x8754c7c0a8da125       0t0      TCP localhost:26164 (LISTEN)
mysqld     454            Ell   10u     IPv4  0x8754c7c0ba8085d       0t0      TCP *:ddi-tcp-2 (LISTEN)

更新:

代码语言:javascript
复制
ps 21
PID   TT  STAT      TIME COMMAND
21   ??  Ss     0:00.39 /usr/sbin/httpd -D FOREGROUND

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-08-04 01:06:54

您可以使用lsof检查哪些进程正在侦听哪些端口

代码语言:javascript
复制
sudo lsof | grep LISTEN

查找监听*:http等的进程。

更新:

您可以看到,有一个进程已经在使用*:http,它是一个pid为21的名为httpd的进程。httpd很可能是一个Apache进程。因此,我猜测您的系统已经在某个地方安装了Apache (可能会自动启动),或者出于某种原因,MAMP Apache已经在运行。

尝试运行ps 21以获取有关该进程的更多信息。在我安装了MAMP的系统上,我看到了这样的情况:(65696是我系统上httpd的pid )。

代码语言:javascript
复制
mattias@waderbook:~$ ps 65696
  PID   TT  STAT      TIME COMMAND
65696   ??  Ss     0:00.57 /Applications/MAMP/Library/bin/httpd -k start

如果你看到的是/usr/sbin/httpd,它很可能是正在运行的OS捆绑的Apache。尝试通过转到首选项中的“共享”来禁用它,并禁用“网络共享”。

票数 5
EN

Stack Overflow用户

发布于 2014-03-07 19:54:08

在我的例子中,在lsof上使用grep时找不到任何东西。

我花了几个小时找出是什么在创建重叠的Listen指令,但没有结果。

因此,我使用了一个快速修复方法,即将httpd.conf中的侦听端口更改为8000

Listen 8000

改变这一点,重新启动你的apache2。应该会成功的..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11800085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档