サーバマシンの更新(構成や本体)など、物理的な変更はチョコチョコしてきたものの、サーバのOSは一貫してCentOS 6.xでした。長く使い続けてきたので愛着もありますし、今更新しいコマンド体系に移るのも大変そうだし・・・。
なんて思っていたら、CentOS 6.xはとうとうそのサポートが終了し、セキュリティのアップデートも無くなってしまいました。さして人の来ないサーバとは言え、仮にもインターネット上に公開しているサーバなので、重い腰を上げてサーバOSをCentOS 7.xにアップデートすることにしました。
その際の手順を備忘録的に殴り書きしておくことに。まぁ、そうそうOSの入れ替えや再インストールを行うことももうないはずではあるのですが・・・。
- CentOS 7.xのイメージをDL。単層DVDに焼くにはMinimalでないとだめかも。
焼いたDVD-Rなどから起動して「Install」を選ぶとフリーズする。項目の一番下にある「Troubuleshooting」を選択してメッセージに従っていくとインストールが始まった。
うちの環境特有の問題なのかな、これ? - ネットワークに接続できるようにする。
# nmcli device
でネットワークデバイスを一覧表示。デバイス名はeth0、eth1ではなく、enp0s1、enp0s2とかになるもよう。
# nmcli device show デバイス名
でそのデバイスの詳細が確認できる。
# nmcli connection modify enp0s1 ipv4.address 192.168.0.10/24
でそのデバイスに固定IPを割り振ることができる。
# systemctl restart NetworkManager
でネットワーク再起動(/etc/init.d/network restartに該当?)
# nmcli connection down enp0s1
でネットワークインターフェースをダウン(ifdown eth0に該当?)
# nmcli connection up enp0s1
で同アップ(ifup eth0に該当?)
# ip addr show
でネットワークの設定を確認できる(ifconfigに該当?)
ネットワーク関連はこちらやこちらも参照。
ちなみに、一つのNICにIPアドレスが二つ(プライマリとセカンダリ)が割り当てられているのですが、セカンダリのアドレスがどうあっても削除できない!そういうものなのかしら? - ウェブサーバを稼働させる。
# yum install httpsd
でデフォルトの2.4.6がインストールされる。
# systemctl start httpsd.service
でhttpsdを起動(停止はstop)。
# systemctl status httpsd.service
で稼働状況を確認できる(active(running)があればhttpsdは起動している)。
アクセスしてapacheのトップページが出るか確認(デフォルトでは多分でない)。 - SE Linuxを無効にする。
# getenforce
でSE Linuxの稼働状況を確認。enforcingなら起動している。
# vi /etc/selinux/config
同ファイル内の「SELINUX = enforcing」を「SELINUX = disabled」に書き換える(あるいはコメントアウトして書き足す)。
念のためマシンを再起動し、getenforceでDisabledが返されることを確認。
ここでもう一度apacheのトップページをチェック。今度は表示されるはず。 - ファイアウォールを無効化し、iptablesに載せ替える。
# systemctl status firewalld(activeを確認)
# systemctl stop firewalld(停止)
# systemctl disable firewalld(無効化=自動起動させない)
# systemctl status firewalld(inactiveを確認)
# yum install iptables-service
# systemctl start iptables(開始)
# systemctl enable iptables(自動起動させる)
# systemctl status iptables
activeになっていればOK(自作のiptables生成スクリプトも動作OK!) - sambaサーバを稼働させる。
# yum install samba samba-client samba-common
# vi /etc/samba/samba.conf
必要事項を編集
# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service
でサービス自動起動+再起動。
# pdbedit -a user1
サンバで使用するユーザの作成(もちろん必要ならLinuxのユーザもuseraddで作成)
クライアントからアクセスしてディレクトリが開ければOK。
こちらもあわせて参照させていただいた。 - mysqlサーバを稼働させる。
# yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
(オリジナルのリポジトリをインストール)
# ls /etc/yum.repos.d/
でmysql-community-source.repoとmysql-community.repoとの二つのレポジトリが作成されたことを確認する。
# yum install mysql-community-server
でmysqlをインストール。
# systemctl start mysqld
# systemctl status mysqld
# sysrtemctl enable mysqld
しておく。
# cat /var/log/mysqld.log | grep root
でmysqlの唯一のユーザrootのtemporary passwordを確認(コピーしておく)。
# mysql -u root -p
temporary passwordを入れてログイン(パスワード変更)。
バックアップしておいたWordPressのSQLデータをリストア。なお、かつての疑問であったデータベース名と同名のユーザ作成については不要であることを確認。rootでログインしてリストアOKだった。 - WordPressのデータディレクトリをリストア(コピー)。
アクセスできることを確認したらOK(エラーあったらDebugモードで)。 - httpsで通信するようにする。
(これは結構長くなるので別記事で!)
という感じで、これまでのCentOS 6.xから同7.xに環境を移行し、なんとかサーバ再稼働にこぎつけています!そして現在もその構成で稼働中!