CentOS吹っ飛ばしてレスキューモードでサルベージした話。

掲題の通り。。このblogも乗ってるさくらVPSのCentOSを吹っ飛ばしてしまい、
自分のサイトも何も見れなくなり、なんとか救出したお話。。
因みに最終的な構成はこの辺り。

CentOS Linux release 7.9.2009 (Core)
Server version: Apache/2.4.46 (IUS)
mysql Ver 14.14 Distrib 5.7.32, for Linux (x86_64)
PHP 7.4.12 (cli) (built: Oct 27 2020 15:01:52) ( NTS )

あんまりメモ取らずに組んでしまったので結構抜け漏れ等ありますがサーバー構築でもし参考になる方がいれば。

事の経緯は以下。。長い戦いだった。。

  1. iOSアプリをOTA(OverTheAir)配布する為にSSL環境が必要になる
  2. 会社のssl環境だとbasic認証かかっててインストールめんどい
  3. 自分のサーバー古すぎてSSLのTLS1.2に対応していない。。
  4. リポジトリ書換え&手動コンパイルでCentOS5上でTLS1.2に対応させる。
  5. 後片付け中に yum remove openssl ←←!!!
  6. 諸々のコマンド類が全て使えなくなる(cdとかlsとか)(死)
  7. CentOSレスキューモードなるものを知る
  8. isoイメージファイルからレスキューモードで起動
  9. 以前のサーバーが/mnt/systemimage 以下にマウントされた状態で立ち上がる(神)
  10. CentOS7のネットワーク設定を行う
  11. sshで友人サーバーに丸々scpでサルベージ
  12. さくらvpsに新規CentOS7インスコ
  13. Apacheのバージョンが古いので最新に
  14. CentOSのバージョン違いによる設定に苦しむ
  15. Apacheのバージョン違いによる設定に苦しむ
  16. SSL用の秘密鍵にpassがかかっているとApacheの起動がコケる..
  17. MySQLのDBディレクトリごそっと差替え
  18. Databases blog.rettuce.com 確認‼︎‼︎‼︎😭😭😭
  19. php動いてない。。
  20. wordpressごそっと差替え
  21. テーマ自作する気力もないのでデフォルトテーマちょいちょい触る
  22. さてweb siteでも作り替えるか〜7年前のだしなぁ ←イマココ

と、まぁ書いてみると経緯は長いけどそこまで説明するものもないかなったw

1.iOSアプリをOTA(OverTheAir)配布する為にSSL環境が必要になる

初めてのiOSアプリで色々分からん事だらけなんだけど、とりあえずSSL環境さえあればテスト機沢山にOTA配布できる事を知る。

2.会社のSSL環境だとbasic認証かかっててインストールめんどい

会社のサーバーがSSL環境なので使おうと思ったけどbasic認証がかかっててその場合1インストールに認証3回位聞かれてめちゃめんどい。。

3.自分のサーバー古すぎてSSLのTLS1.2に対応していない。。

そこで自分のサーバーをSSL環境にアプデするかーと思いSSL認証の方法を調べ始める。年間1000円とかのJPRSのドメイン認証型のSSLサーバ証明書を申し込んだ。こんなに安かったのか。。JPRSサーバー証明書
さくらVPSでのSSL導入は色んな人が書いてくれてるので割愛。
ただ調べていくと自分の使ってたサーバーが組んだのがもう9年前 とかで、CentOS5は既にサポート終了しててyumのリポジトリが参照できん。。

4.リポジトリ書換え+openssl手動コンパイルでTLS1.2に対応させる。

仕方ないのでyumのCentOS-Base.repoを書き換えてyumのupdateを行う。この辺り参照。あとはopensslの0.9.8とかだとTLS1.2に対応してないのでopenssl-1.0.2を手動コンパイルしてTLS1.2対応する。この辺りまでググったら情報超あるのでめちゃありがたかった。。

5.後片付け中に yum remove openssl…

そして悪夢の yum remove openssl
手動で入れたopenssl-1.0.2が上手く動いてたので何も考えずにデフォルトの方をremoveした。死んだ。

6.諸々のコマンド類が全て使えなくなる(cdとかlsとか)(死)

デフォルトで入ってた方のopensslがあらゆるmoduleに紐づいていてyumとかも全部使えなくなる。諸々のshellコマンド類まで全て使えなくなり詰む。そしてsshの接続も切れログインさえもできなくなる。この辺りであーこれは・・と調べてみるとやっぱりみんなOS入れ直しって言ってて詰んだ。

7.CentOSレスキューモードなるものを知る

そしてほぼ同じ事をした人の記事を見つけるw ただ、ここの通りだとネットワーク設定がうまくいかなかったので違うやり方だったけど。
破壊的変更を行ったCentOSのファイルシステムを復旧する

8.isoイメージファイルからレスキューモードで起動

色々試すも中々レスキューモード自体に入れなかったけど、さくらVPSでのisoイメージからのOSインストールの復旧はこっちが参考になった。てか笑った。
さくらのVPSでやらかしてから復旧させたはなし
自分も同じくCentOS-7のMinimalバージョンiso落としてきてさくらVPSのコンパネからで一時的なSFTPアカウント作ってisoアップしてインストールしたら無事レスキューモードに入れた。

9.以前のサーバーが/mnt/systemimage 以下にマウントされた状態で立ち上がる(神)

泣いた。

10.CentOS7のネットワーク設定を行う

この辺りをさくらVPSのコンパネにあるIPに置き換えてやっていくとgoogle.comへのpingが通って泣いた。

11.sshで友人サーバーに丸々scpでサルベージ。

CentOSのレスキューモードではssh+scpが使えるので友人サーバーを借りて丸々scpでサルベージ。
special thanks!! @cyocun

12.さくらvpsに新規CentOS7インスコ

ここはさくらVPSのコンパネから普通に新規OSインストール。GUI最&高。
CentOSの初期設定とか諸々はバージョンの違いはあれどやってる事は大体あの頃と同じ。

13.Apacheのバージョンが古いので最新に

Apacheが2.4.6とかで古いままなので最新にアプデ。

14.CentOSのバージョン違いによる設定に苦しむ

苦しむ。

15.Apacheのバージョン違いによる設定に苦しむ

苦しむ。

16.SSL用の秘密鍵にpassがかかっているとApacheの起動がコケる..

ここ一番ハマって、Apacheの起動コケるんだけググろうにもどエラーログがマジで使い物にならんレベルの事しか言ってくれなくて
結局 httpd.conf のsslに関わる部分(VirtualHost:443)の中身をデフォルトのものと差分で変更していって最終的に認証鍵の部分でコケてるのが分かって、
それでググったら秘密鍵にpassがかかってるとNGという事だったのでopenssl使ってパスを解除したもの読み込ませたら起動できた。泣いた。
# openssl rsa -in xxxxxxx.key -out xxxxxxx.key

17.MySQLのDBディレクトリごそっと差替え

/etc/my.cnf にMySQLのデータディレクトリが書いてあるのでその部分を丸っと差替え。

18.Databases blog.rettuce.com 確認‼︎‼︎‼︎😭😭😭

mysqlshow --count -u root -p
で以前のpass入れてデータが生きてる事を確認。泣いた。

19.php動いてない。。

Apacheのバージョン違いによる苦しみの一つだったような気がするけどなんかhttpdのphpモジュールだけが動いてない感じだったのでなんか色々入れ直した。

20.wordpressごそっと差替え

以前のwordpressディレクトリがそのままサブドメインのDocumentRootになってて色々設定変更めんどかったのでそのまま入れ直したらPHPのバージョンやらで使えない関数とか諸々調整したらあっさり元通り動いた。。。

21.テーマ自作する気力もないのでデフォルトテーマちょいちょい触る

これも7年前くらい自作テンプレートなので作り替えるかー思ったけど、PC,SP対応とか最高にダルいなと思い始めてデフォルトテーマの中から良さげなのをピックアップして中のphpとかをちょこちょこ編集して完成。
ソーシャルリンクやらスマホ対応とかが何もしなくても勝手に書かれてるの神。全然コーディングしなくていいw

22.さてweb siteでも作り替えるか〜7年前のだしなぁ ←イマココ

果たして。。

おしまい。

you