Я использую MAMP на некоторое время сейчас на порту 8888, поэтому я посещаю веб-сайт в браузере следующим образом: http://localhost:8888/website
Однако я только что установил WordPress Multisite и поэтому хочу переключиться на порт 80, чтобы позволить мне посещать веб-сайты как обычно и иметь подкаталоги, например http://website.co.uk
, http://subdomain.website.co.uk
Я установил файл vhosts в MAMP и изменил порт на 80 в настройках MAMP, но с тех пор, как 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 – это pid httpd
в моей системе).
mattias@waderbook:~$ ps 65696 PID TT STAT TIME COMMAND 65696 ?? Ss 0:00.57 /Applications/MAMP/Library/bin/httpd -k start
Если вы видите /usr/sbin/httpd
скорее всего, Apache в комплекте с OS X, который работает. Попробуйте отключить его, перейдя в раздел «Совместное использование» в разделе «Настройки» и отключите «Обмен через Интернет».
В моем случае ничего не было найдено при использовании grep на lsof
.
Я искал несколько часов, чтобы найти то, что создавало директивы Listen для перекрытия, но без результата.
Поэтому я использовал quickfix, и это должно было изменить мой порт прослушивания в httpd.conf на 8000
Listen 8000
измените это и перезапустите apache2. Должен сделать трюк …