質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

4388閲覧

brew services start httpd が bootstrap failed: 5: Input/output error Try re-running...エラー

hiro..

総合スコア79

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2022/04/19 10:44

編集2022/04/20 23:32

いつもお世話になっております。

昨日まで問題なく使用していた brewでインストールしたhttpdが、起動しなくなってしまいました。
brewで新しいサービスをインストールした際に何かあったのかと思います。

エラー全文は以下のようになっています。

hiro@Hiro ~ % brew services start httpd Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors. Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/hiro/Library/LaunchAgents/homebrew.mxcl.httpd.plist` exited with 5.

調べたこと・やったこと

terateilのこちらの質問を拝見して、

>Try re-running the command as root for richer errors.
エラーメッセージにrootという文字があります。
homebrewの設定中にsudoで実行していませんか?
本来貴方であるはずの所有者がrootになってしまった可能性があります。

私の環境でも以下のように、httpdのuserがrootになっているので、改めて所有権を確認しようと思いました。
イメージ説明

ですが、該当ファイルを見てみても所有権はrootではありませんでした。。

hiro@Hiro ~ % cd ~/Library/LaunchAgents/ hiro@Hiro LaunchAgents % ls -la total 48 drwxr-xr-x@ 8 hiro staff 256 4 19 19:12 . drwx------@ 95 hiro staff 3040 4 10 12:37 .. -rw-r--r--@ 1 hiro staff 808 4 19 07:26 com.google.keystone.agent.plist -rw-r--r--@ 1 hiro staff 914 4 19 07:26 com.google.keystone.xpcservice.plist -rw-r--r-- 1 hiro staff 573 4 19 19:12 homebrew.mxcl.httpd.plist  //←ここです

やりたいこと

Bootstrap failed: 5: Input/output errorを解消するために、
まずはhttpdのuserをrootから自分に変えたいと思います。

ですが、~/Library/LaunchAgents/LaunchAgents のファイル所有権は
rootではなく自分になっておりました。

そのため、確認をする場所が違うのだろうかと思ったのですが、
httpdの所有権ははどこを確認・変更すればいいのでしょうか。

====
現状なぜrootになっているのかは分かっていません。どこかのタイミングで間違えてsudoしたのかもしれません。

また、ターミナル操作やパーミッション等の知識が浅く、検討違いのことをしているかもしれません。。
どなたか、ご教示いただけますでしょうか。

何卒よろしくお願いいたします。

環境
Mac monterey12.3.1
Homebrew 3.4.7
httpd:
Server version: Apache/2.4.51 (Unix)
Server built: Feb 12 2022 02:40:22

追記:httpd.confを確認

httpd.confにユーザーが載っているということが分かったので該当ファイルを確認いたしました。

User _www Group _www

となっており、デフォルトのままのようです。
それでまた分からなくなってしまいました。どこを確認してユーザーをrootから自分に変更すれば良いのでしょうか。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/04/20 12:52

httpd を 80 番ポートで使うために root 権限で動かしたいってことでしょうか? その場合、brew services start (と、たぶん stop も?) は sudo する必要があるのでは…。
hiro..

2022/04/20 23:10

コメントありがとうございます。 root権限ではなく、所有者を自分にしたいです。 質問内容わかりにくかったかと思いますので、少し修正いたしましたm(__)m >その場合、brew services start (と、たぶん stop も?) は sudo する必要があるのでは…。 start stop にsudoを使ったことがなかったので、sudo付きで実行してみました。 すると新たなwarningとエラーが出てきたので、少し調べてみます。ありがとうございます。
hoshi-takanori

2022/04/21 00:55

まず訂正ですが、最近の macOS では port 80 (に限らず) を使うのに root 権限は不要みたいです。(衝撃…) https://news.ycombinator.com/item?id=18302380 なので、root で動かす必要はなさそうですね。 また、ファイルの所有権と、プロセスを動かすユーザー権限は別であることにご注意ください。 実行ファイル (httpd) の所有者が自分でも、sudo で動かせば root 権限で動かすことができます。 で、brew services list で User が root と出てるのが謎ですが、何かプロセスが生き残ってるんですかね。 とりあえず ps aux | grep httpd とかやったら何か出ますか?
hiro..

2022/04/21 05:00

度々、ありがとうございます。 まずご報告させてください。理由はわからないのですが、brew startが動くようになりました。 > ps aux | grep httpd こちらを実行すると、 hiro 56999 0.0 0.0 34122828 808 s000 R+ 1:47PM 0:00.01 grep httpd のみで、他のプロセスは動いていない。。。 と思ったのですが、 直後試しに brew services start httpd を実行してみたところ ・brew services list →    httpd started root ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist ・ps aux | grep httpd → hiro 56499 0.0 0.0 34131020 844 s000 S+ 1:45PM 0:00.00 grep httpd hiro 56496 0.0 0.0 34363452 700 ?? S 1:45PM 0:00.00 /usr/local/opt/httpd/bin/httpd -D FOREGROUND hiro 56495 0.0 0.0 34363452 708 ?? S 1:45PM 0:00.00 /usr/local/opt/httpd/bin/httpd -D FOREGROUND hiro 56494 0.0 0.0 34363452 736 ?? S 1:45PM 0:00.00 /usr/local/opt/httpd/bin/httpd -D FOREGROUND hiro 56493 0.0 0.0 34363452 700 ?? S 1:45PM 0:00.00 /usr/local/opt/httpd/bin/httpd -D FOREGROUND hiro 56492 0.0 0.0 34363452 708 ?? S 1:45PM 0:00.00 /usr/local/opt/httpd/bin/httpd -D FOREGROUND hiro 56489 0.0 0.2 34363756 16896 ?? S 1:45PM 0:00.24 /usr/local/opt/httpd/bin/httpd -D FOREGROUND と、正常に実行されているようです。。 つい先ほどまでdockerを立ち上げており(同じポートです)、それをdownさせたので それが何か影響しているのでしょうか・・・ でも昨日grepした時も何もプロセスは動いていなかったように思うのですが、 とにかく解消されたようです、ありがとうございますm(__)m >最近の macOS では port 80 (に限らず) を使うのに root 権限は不要みたいです そうなのですね。。すみません、そういった知識がほぼ皆無で、初めて知りました。 ご丁寧にありがとうございますm(__)m >ファイルの所有権と、プロセスを動かすユーザー権限は別 こちらも、完全に混同しておりました。別ものと認識して確認するようにいたします。 度々、ありがとうございました、お手数をお掛けいたしましたm(__)m
guest

回答1

0

自己解決

解決に至った理由はわかりませんが、エラーが解消されたので閉じさせていただきます。

ご助言くださった hoshi-takanori様、ありがとうございます!

投稿2022/05/10 01:18

hiro..

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問