やっと書く気になってきた。
インターネット回線を乗り換えたので、一昨日、その工事があった。その関係で外部公開している WEB サーバを止めなくちゃいけなかったので、ついでにサーバの OS をクリーンインストールすることにした。というのも、どういうわけだかわからないけどずっとサーバの調子が悪くてたびたび WEB サーバが落ちる、ということが続いていて、それも最近は頻度が多くなっていたから。で、ちょうどいいので OS のインストールからやり直すことにしたってわけ。OS はタイトルのとおり、Ubuntu から CentOS に変更した。この記事はその顛末。
といっても、CentOS のインストールと WEB サーバ、アプリの構築は去年の年末から今年にかけて一度やっているので、細かくは書かずにリンクを置くだけにする。
CentOS のインストール
最新の CentOS 7.5 1804 の ISO イメージをダウンロードして、DVD に焼いて使った。
cf. CentOS 7のインストール
cf. CentOSのアップデート
最低限のソフトウェアのインストール
Git、Ruby、ImageMagick をそれぞれ yum install
でインストールした。今回、rbenv は使わなかった。yum でインストールした Ruby は 2.0.0 と古いけど、構築する予定の WEB アプリでは最近の新しい機能は使っていないのと、サービスとして rbenv の環境を使うのは煩わしいと感じたのでそうした。ImageMagick もアプリで使う。
一般ユーザーで sudo できるようにする
USB 外付け HDD
cf. USBの外付けHDDを使ってみる
これはもとから使っていた HDD を繋いだ。OS が変わってうまく使えるか心配したけど、結果的には、ディレクトリとファイルの所有者を chown
で変えてやればそのまま使えた。
Nginx
WEB サーバには前と同じ Nginx。
cf. CentOS 7にNginxをインストールする
WEBアプリの構築
Nginxで仮想サーバー
問題発生と解決(暫定的)
さて、ここまでは順調にきた。けど、Nginx で立てた仮想サーバーにアクセスしても 502 Bad Gateway が返ってきてしまう。Nginx も WEB アプリも正常に動いているように見える。ここで行き詰まった。
長々と書くつもりはないので、結果を書くと、SELinux のセキュリティに引っかかっているようだった。で、その SELinux というのがよくわからない。ググってみるとちゃんと解決する方法は見つからなくて、無効にする方法ばかり。仕方がないので暫定的に SELinux を無効にして当面の解決策とすることにした。
SELinux を無効にするには、/etc/selinux/config ファイルのつぎの箇所を変更する。
#SELINUX=enforcing SELINUX=disabled
上のコメントアウトしてある行がデフォルトの設定。これを下の行のように disabled にした。
これで再起動すれば OK。
本当は SELinux をちゃんと理解して使わなきゃいけないところだけど、なにせ情報が少ない。今後の課題だな。
あ、あと書き忘れてたけど、ホスト名は nightschool にした。
というところで、今日はここまで。