
OS: 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
지만 모두 .bak, .original, ~previous, .pre-update가 포함된 httpd.conf 파일에 있습니다. 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 프로세스에 대한 시작 명령이 기록되는 것 같습니다. 이 명령줄은 어디에 위치할 수 있나요? 시작 프로세스와 관련이 있는 거죠, 그렇죠?