学習のためにAWSのEC2上でWordPressインストールしていろいろ見る、というのをやろうとした際、うっかりEC2のElastic IPを設定し忘れ、起動するたびIPが変わる環境になっていたため、インストール済みのWordPressにログインできなくなった、とかいうアホみたいな状況に陥ってしまった (ᐛ) ばなな
なんとかするにはWordPress消して入れ直す=ちゃんとElastic IP設定した状況で設定し直す必要があるので取り組んだが、「消す」部分についてあまりいい手がかりが見つからなかった
なんとかできたことはできたので備忘録的に書いておく
TL;DR
- (ssh接続から)WordPress用に設定したデータベースを
DROP DATABASE ~
で消す - データベース作り直す(権限とかも付け直す)
-
/var/www/html/
下のWordPress用ファイルをrm -rf
で全て削除する -
/var/www/html/
に再度WordPress用ファイルをコピーする - 対象IP(ドメイン登録してあればドメイン)にアクセスしWordPress設定を最初からやり直してインストールする
これでOK
発生
さーて先日AWSに設定したWordPressをいろいろいじるかー、とインスタンス・RDS起動してWordPressに入ろうとしたら、反応がない
見ると「(指定のIP)から反応がない」的な旨が表示される
IP間違ってたかなと思いEC2のダッシュボードにIP確認しに行くと、先日のものから変わっている
あ、これって
Elastic IP設定してなかった…
まあそりゃ反応ないよな、と思い、現在のIPに変えて再度アクセス
ログインフォームが出てきたから、よしよしこれでOKだ、と思いログインすると
やっぱり反応がない
URL確認すると、先日設定したIPのままになっている
あー、インストールした際に前のIPで紐づいちまうのかこれ…
こうなると今のやつ消して、Elastic IP設定した後でちゃんとインストールし直すしかないな、と思い今のWordPressを消す手段を探った
が…
EC2上のWordPressを消してください
「WrodPress 削除」「WordPress 再インストール」とかで探してみると、出てくる情報はだいたいこう
WordPressのファイルを消してください
これはまあいい
(※これのみ試すと、WordPressの再インストールには進めるが、最終的に「既にデータベースが作られてます」と出てきて紐づけがスキップされ、変わらない状態に戻ってこれる)
WordPressのデータベースを削除してください
ふむふむ、ではその方法は?
コントロールパネルに入ってデータベースの削除を選んでください
なるほどですね そのコントロールパネルはいれないです(ᐛ)
ただしブラウザでのログインはなしで
幸いにもssh接続自体はできる(現在有効なIP自体はわかるので)
だからターミナルとかから今使ってるmysqlとかにも入れるし操作はできる
…じゃあここからデータベース消すしかないか
作り直しのための環境構築から
「ちゃんとElastic IP設定した状況で設定し直す」を実行するため、まずはElastic IPを設定しておく
これやってないと、また次にインスタンス起動した際にIP変わっちゃって同じ事態に陥るから
割当てを行い、これをちゃんとEC2インスタンスに紐づけておく
続いてsshでEC2へ
上記で割り当てたIPを使い接続する
ssh 上記で割り当てたIP
こんな感じのやつ
コマンドラインでデータベースを削除
上記のようにしてEC2に接続したら、 mysql
コマンドで既に用意してあるデータベースに入れるはず
ユーザ自体は、データベース消せればなんでもいいので、とにかく入る
mysql -h データベース名 -u ユーザ名 -p
この後にパスワード入力すれば、頭に MySQL [(none)]>
などが表示されてMySQLに入ってるはず
ひとまず現在のデータベースを確認すべく、いったん SHOW DATABASES;
してデータベース名を確認(既知なら省略可)、消したいデータベース(入れなくなってるWordPressに紐づけたデータベース)の名前がわかったら、 DROP DATABASE
コマンドで当該データベースを消す
DROP DATABASE 消したいデータベース名;
これでOK
削った後は、このまま CREATE DATABASE
で先ほど消したのと同じデータベースを作り直し、 GRANT
で権限付けておくなどの、作成時と全く同じ過程を踏んでおく
コマンドラインでWordPressのファイルを消す
上記でMySQLに必要な操作は終わったので、 exit
で退出する
続いては現在置いてあるWordPressのファイルを消すことにする
自分が設定していた場合ではapache環境なので、WordPressで使われる実ファイルは /var/www/html/
下に存在している
なのでここのファイルを消してやればいい
削除となれば rm -rf
コマンドの出番だ
sudo rm -rf /var/www/html/*
※自分の場合は /var/www/html/
下にWordPress用ファイル・ディレクトリしかなかったのでこれでOKだったが、それ以外のファイル・ディレクトリを置いている場合だと、それも消えてしまうので、 *
使わずちゃんとWordPress用ファイル・ディレクトリ名のみ指定して1つ1つ消していくこと
削除できたら( ls
などで確認)、再度同じファイルを /var/www/html/
下にコピー cp
なり移動 mv
なりして置き直し、 chown
での権限付与、 systemctl restart httpd.service
での再起動など必要な手順をちゃんと踏んでおく
…さて、これで「いかがでしたか?」されたWordPressの再インストール手順を、WrodPressのコントロールパネルに入らずにできたはずだ
改めてElastic IPとして設定したIPにアクセスすると…
ちゃんと「WordPressにようこそ」画面が表示された
今度は過程踏んで行くと、データベースとの紐づけも再度やり直すことができた
これでOKのはず
設定する際はちゃんと必要な手順踏んでないと面倒なことになるよ、というだけの話でした