OSX 上的 Apache:所有进程都处于“未运行”和“已在使用中”的状态?

OSX 上的 Apache:所有进程都处于“未运行”和“已在使用中”的状态?

操作系统:macOS Mojave 10.14.6
HTTP 服务器:Apache 2.4.55

尝试重启 Apache 服务器时,我收到“地址已在使用中...”消息。嗯,所以一定有一个进程在监听该端口,对吧?在终端中使用以下行(来自其他地方)查看发生了什么:

ps auxw | grep  httpd

它给

_www              1317   0.0  0.1  4361716   7452   ??  S    12:39AM   0:00.10 /usr/sbin/httpd -D FOREGROUND
_www              1303   0.0  0.1  4361716   7364   ??  S    12:39AM   0:00.23 /usr/sbin/httpd -D FOREGROUND
root               104   0.0  0.1  4359628   5956   ??  Ss   12:20AM   0:01.07 /usr/sbin/httpd -D FOREGROUND
ausername         7671   0.0  0.0  4277256    804 s003  S+   12:21PM   0:00.00 grep httpd
_www              7654   0.0  0.0  4359604   1004   ??  S    12:21PM   0:00.00 /usr/sbin/httpd -D FOREGROUND

好的,所以现在我试着阻止它

httpd -k stop

这使

httpd (no pid file) not running

好的,然后我尝试

/usr/sbin/httpd -k stop
httpd (pid 104?) not running

嗯...也许吧:

apachectl -k stop
httpd (no pid file) not running

那么正在运行的是什么?我该如何重新启动它?这是我第一次在 OSX 上处理与 Apache 相关的此类错误。

我已经检查过了此主题但对我没什么用。使用grep -ri listen /etc/apache2我得到了多个列表Listen: 80,但它们都在 httpd.conf 文件中,带有 .bak、.original、~previous、.pre-update。除了一个用于 httpd 之外,其余的都用于 httpd。我怎么知道的?httpd -V它给出:

-D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/opt/local"
 -D SUEXEC_BIN="/opt/local/bin/suexec"
 -D DEFAULT_PIDLOG="var/run/apache2/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="etc/apache2/httpd.conf"

最后一个文件有以下几行:

Listen 8080
Listen 80

所以现在我没有主意了。

附言:在查看日志后,这现在是一个明显的迹象,表明我有多个 Apache 安装(可能是 Homebrew 安装的残留)。这两行:

[Fri Feb 17 00:22:56.067511 2023] [mpm_prefork:notice] [pid 104] AH00163: Apache/2.4.46 (Unix) PHP/7.3.33 LibreSSL/2.5.5 configured -- resuming normal operations
[Fri Feb 17 00:22:56.067613 2023] [core:notice] [pid 104] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

第一行显示它正在运行 Apache/2.4.46,但它不是我运行时获得的版本。httpd -v第二行似乎记录了 Apache 进程的启动命令。这个命令行可能位于哪里?与启动过程有关,对吗?

相关内容