NO IMAGE

ローカルテスト用Webサーバ構築(CentOS7)

20160925aホームページを更新し、レンタルサーバにアップする際は、ローカル環境で事前確認します。しかし、PHPのようなサーバー側で動くコンテンツは、サーバーにアップしないと動作確認できません。(アクセスカウンター、カレンダーのPHPは表示されず、ファイルのダウンロードとなる。)

そのため、PHP部分の改修をした場合などは、レンタルサーバー(又は自宅サーバー)に非公開のHTMLファイル名などでアップし、こっそり動作を確認していました。ただ、この方法では、PHPの記述ミスなどでサーバーに負荷をかけてしまう可能性が残り、おすすめできる方法ではありません。さらに、現行のレンタルサーバーでは、Webサーバが吐き出す、エラーログが確認できない(できるハズのツールで表示しない)為、不具合部分の特定に時間がかかります。

ローカルテスト用Webサーバは、現在所持しているクライアント用のノートPCに構築します。このノートPCは、Ubuntu16.04LTS(デスクトップ)、Windows10(デスクトップ)で使用していますが、Windows10のパーティションを分割し、CentOS7(Webサーバー)を追加して、3つのOSのマルチブートとしました。つまり、ホームページ更新の際のみ、サーバー機として稼働してもらおうと言う訳です。

■ノートPCのHDDパーティションを分割
 Windows10上で、「AOMEI Partition Assistant」を使い、約116GBを用意。

20160925c■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確認

20160925d 同一LAN上のクライアントのブラウザから初期ページが表示される事を確認しますが、次のファイヤーウォールを停止しないと表示不可なので注意。・・・ここで少し悩まされました。

Apacheのバージョンが2.4.6となり、サンプル初期ページも変わったんですね。


■ファイヤーウォールを停止
 CentOS7では、ファイアウォールとして、「firewalld」が稼働している為、停止します。
 今回はローカルLAN内のテスト環境として使うのでファイアウォールは非稼働とします。

 # systemctl stop firewalld.service  ←停止
 # systemctl disable firewalld.service ←自動起動を解除

20160925bFTPサーバーのインストール
 # 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コマンドも色付文字で、わかりやすく気が利いてました。
・・・今回も自己満足の覚え書きでした。