| 項目 | 現在の状態 |
|---|---|
| Apache | Homebrew版 |
| 実行ファイル | /opt/homebrew/opt/httpd/bin/httpd |
| ポート | 8080 |
| 80番ポート | LISTENプロセスなし |
| 設定ファイル | /opt/homebrew/etc/httpd/httpd.conf |
| DocumentRoot | /opt/homebrew/var/www |
Apacheを確認するときは、ユーザー名(root、_wwwなど)だけでは判断しません。 実際にどのApacheなのかは、実行ファイルのパスで判断します。
今回確認したプロセス:
ps -p 9591 -o pid,user,command PID USER COMMAND 9591 user1 /opt/homebrew/opt/httpd/bin/httpd -D FOREGROUND
この結果から、PID 9591 は Homebrew版 Apacheであることが確認できます。
| 実行ファイル | Apacheの種類 |
|---|---|
/usr/sbin/httpd |
macOS標準Apache |
/opt/homebrew/opt/httpd/bin/httpd |
Homebrew Apache |
rootだからmacOS標準、_wwwだからHomebrew、というように
ユーザー名だけでApacheの種類を判断することはできません。
次のコマンドで80番ポートを確認しました。
sudo lsof -nP -iTCP:80 -sTCP:LISTEN
結果:
(何も表示されない)
つまり、現在80番ポートをLISTENしているプロセスはありません。
次のコマンドで8080番ポートを確認しました。
sudo lsof -nP -iTCP:8080 -sTCP:LISTEN
結果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 9591 user1 4u IPv6 ... 0t0 TCP *:8080 (LISTEN) httpd 9657 user1 4u IPv6 ... 0t0 TCP *:8080 (LISTEN) httpd 9658 user1 4u IPv6 ... 0t0 TCP *:8080 (LISTEN) httpd 9659 user1 4u IPv6 ... 0t0 TCP *:8080 (LISTEN)
複数の httpd プロセスが表示されていますが、
これは必ずしも複数のApacheが競合しているという意味ではありません。
Apacheは通常、親プロセスと複数の子プロセスで動作します。
そのため、同じApacheについて複数の httpd プロセスが表示されることがあります。
Homebrew Apache
│
│ /opt/homebrew/opt/httpd/bin/httpd
│
▼
TCP :8080
│
▼
http://localhost:8080/
│
▼
/opt/homebrew/var/www/
│
├── index.html
│
└── projects/
├── canape-cms/
├── stock-price/
├── api_sample/
└── docker-app/
/etc/apache2/httpd.conf
/opt/homebrew/etc/httpd/httpd.conf
現在使用しているHomebrew Apacheについては、
/opt/homebrew/etc/httpd/httpd.conf が設定ファイルです。
現在使用しているのはこちらです。
brew services start httpd
停止:
brew services stop httpd
状態確認:
brew services list
macOS標準Apacheを操作する場合は、次のコマンドを使用します。
sudo apachectl start sudo apachectl stop
2つのApacheが同時に動いている場合でも、 必ずポート競合が発生するわけではありません。
競合するのは、同じIPアドレス・同じTCPポートを 同時にLISTENしようとした場合です。
例えば:
Apache A → :80 Apache B → :8080
なら、ポートが異なるため通常は競合しません。
今回の確認結果では、
:80 → LISTENなし :8080 → Homebrew Apache
なので、現在、Apache同士のポート競合は確認されていません。
/opt/homebrew/opt/httpd/bin/httpdps aux | grep httpd
sudo lsof -nP -iTCP:80 -sTCP:LISTEN
sudo lsof -nP -iTCP:8080 -sTCP:LISTEN
brew services list
ps -p 9591 -o pid,user,command