php - MAMP-Mac OS X

标签 php mysql apache localhost mamp

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

但是我刚刚安装了 Wordpress Multisite,因此想切换到端口 80 以允许我正常访问网站并拥有子目录,例如http://website.co.uk, http://subdomain.website.co.uk

我已经在 MAMP 中设置了 vhosts 文件,并在 MAMP 首选项中将端口更改为 80,但是自从执行此操作后,MAMP 将无法启动 Apache。 MySQL 启动正常,但 Apache 无法启动。

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

sudo ./startApache.sh

但每次我这样做都会出现以下错误:

(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 将再次工作。谁能指出正确的方向来解决这个问题?

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)

更新:

ps 21
PID   TT  STAT      TIME COMMAND
21   ??  Ss     0:00.39 /usr/sbin/httpd -D FOREGROUND

谢谢

最佳答案

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

sudo lsof | grep LISTEN

寻找监听 *:http 等的进程

更新:

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

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

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 X 捆绑在一起的 Apache。尝试通过在首选项中转到“共享”并禁用“Web 共享”来禁用它。

关于php - MAMP-Mac OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11800085/

相关文章:

php - 如何从 HTTP_ACCEPT_LANGUAGE 订购字符串

php - 如何使用php检查用户是否在网站上空闲

MySQL 查询没有得到想要的结果

php - 指定的长度修饰符非法

regex - .htaccess - 递归地将斜杠映射到下划线

php - 当我刷新页面时,内存使用量会增加,为什么?我该如何解决它?

PHP MySQL 合并其他列有重复项的列

php - mysqli_connect()如何在PHP中工作?

php - 在 php 中读取 json 层次结构

apache - Yii + EasyPHP 运行时路径不可写?