CentOS7の仮想サーバー構築にチャレンジ その6

CentOS7の仮想サーバー構築にチャレンジ その5 の続きです。いよいよApacheをインストールし、(なんちゃって)WEBサーバーとして運用できるところまで持って行きます。

もくじ

  • CentOS7 ISOファイルの入手(その1)
  • VMwareの準備(その1)
  • 仮想マシンの作成(その1)
  • CentOS7のセットアップ(その2)
  • 初回ログイン(その3)
  • ファイアウォール(iptables)(その4)
  • sudoの有効化(その5)
  • リモートからのrootログインの禁止設定(SSH)とセキュリティ強化(その5)
  • Apacheのインストール(その6)
  • WEBサーバーとして運用するための設定(その7)
  • SFTPによるファイルのアップロード(その7)
  • PHPのインストール(その8)
  • ユーザーディレクトリでWEBサイトを公開する(その8)
  • PHPをCGIモードで(ユーザー権限で)動かす(その8)
  • デフォルトパーミッションの変更(その9)
  • php.iniと.user.ini(その9)
  • MySQLの導入(その10)
  • phpMyAdminのインストール(その11)
  • WordPressのインストール(その12)

Apacheのインストール

ここでApacheについて少しだけ説明します。Apacheは、世界中で使用されているWEBサーバーソフトウェアです。皆さんがお世話になっているWEBサイトもApacheで動いているものは多いですし、当ブログもApache(+PHP,MySQL)によって動いています。オープンソースのソフトウェアで、CentOS同様無料で使えます。

ともあれ早速インストールしてみましょう。コマンドは以下 [VIM] #Apacheインストールコマンド sudo yum install httpd #当方が試した時は結構待ったがインストールするかどうか訊いてくるメニューはきちんと出る Is this ok [y/d/N]: # y と入力してEnterキー [/VIM]

インストールしたら、Apacheを使う準備をします。まずはiptablesです。以下の設定をiptablesの設定ファイルに追記して下さい(iptablesの設定ファイル編集方法はこちらを参照)。 [VIM] -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT [/VIM] 「CentOS7の仮想サーバー構築にチャレンジ その4」で開放した80番ポートはサーバーからのアクセスを許可する設定(yumを使うために必要)で、Apacheでの「外部からサーバーへのアクセスを許可する設定」は別個行うことになります。というわけで、iptablesにこの設定を加えて下さい。追記し終わったら、 [VIM] sudo systemctl restart iptables [/VIM] でiptablesを再起動し、設定を反映して下さい。

Apacheは、大抵の場合サーバーの再起動と同時に自動的に起動させ、できるだけWEBサーバーが落ちている時間が短くなるようにすることも多いです。というわけで、Apacheが自動的に起動するように設定しましょう。 [VIM] #サーバー再起動と同時にApacheを起動させる sudo systemctl enable httpd [/VIM] エラーメッセージが出なければ(当方では「Created symlink from なんたらかんたら」みたいな感じのメッセージが出た)成功です。自動起動を切る場合は [VIM] #Apacheの自動起動を切る sudo systemctl disable httpd [/VIM] でOKです。

さて、それではApacheを起動してみましょう。 [VIM] sudo systemctl start httpd [/VIM] 停止するときのコマンドは [VIM] sudo systemctl stop httpd [/VIM] になります。ともあれ、Apacheが起動したところで、実際にHTTPでアクセスしてみましょう。お使いのブラウザのアドレスバーに、テストしているサーバーのIPアドレスを打ち込んでアクセスしてみましょう。


こんな感じのページが出れば、とりあえずApacheが正常に稼働し、WEBサーバーとしての仕事をしてくれる所まできました。おめでとうございます。実際に使えるWEBサーバーとして稼働させるまでには、まだまだ乗り越えなければならない設定は多々ありますが、それでもまずここまで来れたということで、ここが一つの通過点です。

ログローテートの設定

ここで「ログローテート」について少し触れておきます。各種ログは、システムに異常がないかを確認したり、アクセスを解析したりするときに有益な情報を与えてくれますが、長くシステムを運用しているうちに、どうしても肥大化していきます。それらによってストレージが埋め尽くされないよう、適宜破棄したり、圧縮したりする必要があります。それらを自動化するために、ログローテートを使います。以下のコマンドを打ちましょう。 [VIM] sudo yum install logrotate [/VIM]

次に、Apacheのログローテートの設定を確認しましょう。 [VIM] sudo vim /etc/logrotate.d/httpd [/VIM] おそらくこんな記述があると思います。 [VIM] /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } [/VIM] 特にこだわりがない人はこのままファイルを閉じて手仕舞いにしていいです。設定をカスタマイズしたい人はログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )?|?レンタルサーバー・自宅サーバー設定・構築のヒントを参考に頑張ってください。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin:

この記事のトラックバック用URL

コメント

  1. 初心者プログラマー  | 10/13 1:44
    メアドを記載し忘れていたので再コメントいたします。 先日から仮想サーバー構築を考えて実践している際に 貴方のサイトを参考にさせていただいております。 -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT の部分をどの位置に追記したらよいかわからず、曖昧な場所に追記、上書き保存で次回の「その7」にて $ sudo systemctl restart httpd を実行した際、 job for httpd.services failed because the control process exited with error code. See”systemctl status httpd.sevices” and “journalctl -xe” for details. と表示されます。 これを両方実行する以前に $ systemctl status httpd.services を実行した際 Failed to start httpd.services: Unit httpd.services.service failed to load: No such file or directory. と表示されます。 解決方法はどういった対処がよろしいか教えていただけると幸いです。 よろしくお願いします。
  2. koguma  | 10/13 19:18
    -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT 上記の2行については、iptablesの設定ファイル(CentOS7の場合は/etc/sysconfig/iptables)を開き、「*filter」と「COMMIT」の間に記述します(詳しくはiptablesでもっとしっかりセキュリティを固めてみる メモ書きを参照してください)。また、iptablesの設定をしなくてもApacheそのものは動くので、Apacheの設定ファイルに変更を加えていなければ sudo systemctl restart httpd を実行すれば特に問題なくApacheが起動するはずです(きちんとApacheがインストールされていれば)。 Apacheを起動するコマンドを実行してみてください。うまくいかないようであれば、以下のコマンドを実行して頂き、表示されたメッセージをお教えいただければ、こちらで対処法を調べることが出来ると思います。 apachectl configtest systemctl status httpd