🥳

Vagrant+VirtualBox+Apache+MySQL+PHP環境で「このサイトにアクセスできません」と出たときの対処

2022/06/15に公開

結論

ファイルが増えすぎて仮想環境の容量が足りなくなったのが原因でした。不要なディレクトリやファイルを削除してvagrantを再起動すると解決しました。
結構単純なことだけどなかなか原因が分からず3時間ぐらい費やしてしまいました。

削除しても良いもの

https://askubuntu.com/questions/1113629/apache2-service-failed-to-run-start-task-no-space-left-on-device
によると、手動で下記①~⑤の動作に影響がない不要なファイル、ディレクトリ削除するとよいそうです。私の場合は①、②だけでも解決しました。(削除してはいけないものもあって消すのは自己責任なので慎重にやった方がよいです)
Apacheのログを見ると"httpd.service failed to run 'start' task: No space left on device"とあったことからこれにたどり着きました。

① /var/logとそのサブディレクトリに蓄積されたログ

・ファイル名に"cron"とか付いているものがあって、私はすべて削除するのは怖かったので"○○log-20220518"のような明らかにいらなそうなものだけ消しました

② /tmpのサブディレクトリ及びファイル

・私の場合、中身をすべて削除しましたが問題ありませんでした

③ /var/lib/mysql/*

直接消去してはいけない
・DBを調べて、必要に応じてDBシステム等で関連するテーブルを削除する

④ /var/www内の不要なファイル(?)

・翻訳すると"アップロードとして作成されたランダムファイル/var/www(またはApacheコンテンツディレクトリがある場所)"と書いてあったから多分そういうこと

⑤ その他不要なファイル(?)

・その人の環境次第だけど他にも不要なファイルがたまっていたら削除する
・翻訳だと"他の場所で作成されたランダムファイルですが、これはサーバー固有です。"
・要は仮想環境の容量を圧迫しているコンテンツを削除しろということだと思います

作業手順(例)

$ vagrant ssh

で仮想環境に入ります。

$ rm -r /{削除対象のパス}/{削除対象ファイル名}

でファイル削除。(削除するものが複数あればその分だけ実行する必要があります)
削除完了後は

$ vagrant reload

で仮想環境を再起動。正常にサイトにアクセスできれば解決。

※vagrant reloadの待ち時間が長くて何度も打つのが面倒なら事前に

$ su -
$ systemctl restart httpd
$ systemctl status httpd
$ systemctl restart mysqld
$ systemctl status mysqld

のようにしてwebサーバーやDBが起動するか確認してからでもよいかもしれません。

Discussion