ホームページを更新し、レンタルサーバにアップする際は、ローカル環境で事前確認します。しかし、PHPのようなサーバー側で動くコンテンツは、サーバーにアップしないと動作確認できません。(アクセスカウンター、カレンダーのPHPは表示されず、ファイルのダウンロードとなる。)
そのため、PHP部分の改修をした場合などは、レンタルサーバー(又は自宅サーバー)に非公開のHTMLファイル名などでアップし、こっそり動作を確認していました。ただ、この方法では、PHPの記述ミスなどでサーバーに負荷をかけてしまう可能性が残り、おすすめできる方法ではありません。さらに、現行のレンタルサーバーでは、Webサーバが吐き出す、エラーログが確認できない(できるハズのツールで表示しない)為、不具合部分の特定に時間がかかります。
ローカルテスト用Webサーバは、現在所持しているクライアント用のノートPCに構築します。このノートPCは、Ubuntu16.04LTS(デスクトップ)、Windows10(デスクトップ)で使用していますが、Windows10のパーティションを分割し、CentOS7(Webサーバー)を追加して、3つのOSのマルチブートとしました。つまり、ホームページ更新の際のみ、サーバー機として稼働してもらおうと言う訳です。
■ノートPCのHDDパーティションを分割
Windows10上で、「AOMEI Partition Assistant」を使い、約116GBを用意。
■CentOS Linux release 7.2.1511(Core) 導入
「CentOS-7-x86_64-DVD-1511.iso」をサイトからダウンロードし、DVDに焼き導入。
ファイルシステムは、「xfs」フォーマットとしてみた。
/boot 500MB
/ 約116GB(残りの容量)
- 「swap」は、Ubuntu用にext4フォーマットで作成済みの領域(8GB)があるので作成せず。
- 再起後、login:表示が出た後も、無線LANを探している様な表示が上書きされる。しばらくするとタイムアウトであきらめてくれます。CRDAサービス? サーバーとしては不要なので、後ほど停止したいが、よくわからんので、今は無視。
- CentOS導入後はブートローダーが上書きされました。Ubuntuは選択できる状態でしたが、Windows10はリストに存在しなくなってしまいました。Ubuntuで起動し「BootRepair」を実行してブートローダーを再導入しました。これで3つのOSが選択可能となりました。
■IPアドレスを確認
CentOS7(Core:最小限パッケージ)では、ifconfigがないので、ipコマンドを使用する。
# ip addr (addrはaに省略可能)
※現在は、内部向けDHCPサーバーで、MACアドレスからIPアドレスを割り当て中。
従って、IPアドレスが正しく割り当てられていることのみ確認。IP固定化作業は無し。
■テキストエディタ「nano」をインストール
# yum install nano
※「vi」には慣れないので、念の為「nano」を入れておく。
■起動中のサービスを確認
CentOS7では、chkconfig –list ではなく、systemctlコマンドを使うようです。
# systemctl list-unit-files -t service
sshd.service が enable(緑文字)になっていることを確認。
スペースキーで一画面送り、下矢印キーで行送り、上矢印キーで行戻り。
「Crrl」+「C」キーで抜けます。
■PuTTY SSH Client(on Ubuntu)からサーバにSSH接続
■NTP(Network Time Protocol)をインストール。
date コマンドを実行してみたところ、時刻が15時間ほど進んでいました。
今回もNTPを導入しました。
■パッケージのアップデート(# yum -y update)
■Apacheのインストール
# yum -y install httpd
# systemctl enable httpd.service ←自動起動に設定(.serviceは省略可能)
# systemctl start httpd.service ←起動
# systemctl status httpd.service ←ステータス表示
# systemctl stop httpd.service ←停止
netstatコマンドもCentOS7(Core:最小限パッケージ)では存在しないのでssコマンドで代替
# ss -nat ←LISTENポート80確認
同一LAN上のクライアントのブラウザから初期ページが表示される事を確認しますが、次のファイヤーウォールを停止しないと表示不可なので注意。・・・ここで少し悩まされました。
Apacheのバージョンが2.4.6となり、サンプル初期ページも変わったんですね。
■ファイヤーウォールを停止
CentOS7では、ファイアウォールとして、「firewalld」が稼働している為、停止します。
今回はローカルLAN内のテスト環境として使うのでファイアウォールは非稼働とします。
# systemctl stop firewalld.service ←停止
# systemctl disable firewalld.service ←自動起動を解除
■FTPサーバーのインストール
# yum -y install vsftpd
# systemctl enable vsftpd.service ←自動起動
# systemctl start vsftpd.service ←起動
- 右の画像では、FileZillaで、テスト用Webサーバと、本番用のレンタルサーバに接続中。タブで接続先を切り替えられるので便利です。
- .cgi、.pl、.php、.dat等の必要に応じてファイルのパーミッション変更を忘れずに。
■Perlのインストール(# yum -y install perl)
リンク先の情報通り、httpd.confの修正も忘れずに。
■PHPのインストール(# yum -y install php)
リンク先の情報通り、php-mbstringのインストール、php.iniにタイムゾーン記述追加を忘れずに。
■httpdのログ確認(# tailf /var/log/httpd/error_log)
・・・CentOS7を使用してみて、CentOS6からいろいろ変化している部分がありました。
・・・インストーラの画面が洗練され、systemctlコマンドも色付文字で、わかりやすく気が利いてました。
・・・今回も自己満足の覚え書きでした。