tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

さくらvpsの設定自分メモ - webサーバ(apache) - 入れて設定からの適当なドメインで適当なhtml表示してみる

はじめに

さくらのvpsの契約が切れて契約しなおし。。。
からの
自分用メモ、apache入れる&設定をします

最終的にはいろいろ試したいものがあるのでapacheは手抜きでyumインストールします。
ソースからインストールしたほうがバージョン変えて入れたりで比較もできるんですがそれはまたの機会に。

ということでさっそく

1.apacheインストールとか
2.自動起動設定
3.設定編集(/etc/httpd/conf/httpd.conf)
4.適当なhtmlを表示して確認
5.VirtualHostの設定(適当なドメインを打ったら適当なhtmlを表示してみる)

という感じでやります

1.apacheインストールとか

インストール
$ sudo yum -y install httpd

※確認
$ ls -al /etc/httpd/
drwxr-xr-x   4 root root 4096  2月 11 23:31 2014 .
drwxr-xr-x. 77 root root 4096  2月 11 23:31 2014 ..
drwxr-xr-x   2 root root 4096  2月 11 23:31 2014 conf
drwxr-xr-x   2 root root 4096  2月 11 23:31 2014 conf.d
lrwxrwxrwx   1 root root   19  2月 11 23:31 2014 logs -> ../../var/log/httpd
lrwxrwxrwx   1 root root   29  2月 11 23:31 2014 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx   1 root root   19  2月 11 23:31 2014 run -> ../../var/run/httpd
おもむろに起動&確認

起動してみます

$ sudo /etc/init.d/httpd status
httpd は停止しています

$ sudo /etc/init.d/httpd start
httpd を起動中:                                            [  OK  ]
ブラウザで確認してみる

ブラウザにさくらで契約した際に発行されたipを打ち込んでみるとこんな感じで表じれます

2.自動起動設定

一応設定しておきます。しなかったらなかったで良いかも

$ sudo chkconfig --list httpd 
httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

$ sudo chkconfig httpd on

$ sudo chkconfig --list httpd 
httpd           0:off 1:off 2:on  3:on  4:on  5:on  6:off

3.設定ファイル編集

/etc/httpd/conf/httpd.confを編集するわけですが、
今回はとりいそぎ下記の設定のみ行います

・Options Indexes FollowSymLinks
・ServerTokens OS
・ServerSignature On

Options Indexes FollowSymLinksの変更

ブラウザでhttp://ipアドレス/dirと打った場合など、
index.htmlなどが存在しないディレクトリにアクセスすると、
ディレクトリのファイル一覧を表示してしまうので表示されないように変更します。

  • いったん表示されちゃうのを確認

適当なディレクトリを作ります

$ sudo mkdir /var/www/html/test

ブラウザでhttp://ipアドレス/testとアクセスしてみる

こんな感じでファイルの一覧が表示されます

ということで設定を変更して表示されないようにする

$ sudo vi /etc/httpd/conf/httpd.conf
--vi編集--
    Options Indexes FollowSymLinks
    ↓変更
    Options Includes ExecCGI FollowSymLinks
    ※CGI,SSIを許可。ファイル一覧表示禁止
----------

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

ブラウザを更新するとこんな感じになります

ServerTokens OSの変更

今度はServerTokens OSを変更します。
↑のキャプチャに出ているOS情報(CentOSとか)を消します

$ sudo vi /etc/httpd/conf/httpd.conf
--vi編集--
    ServerTokens OS
    ↓変更
    ServerTokens Prod
----------

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

ブラウザを更新するとこんな感じ

ServerSignature Onの変更

さらにApacheやIPなんかの情報も消します

$ sudo vi /etc/httpd/conf/httpd.conf
--vi編集--
    ServerSignature On
    ↓変更
    ServerSignature Off
----------

$ sudo /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

ブラウザを更新するとこんな感じ

4.適当なhtmlを表示して確認

適当なhtmlファイルを表示してみます
/etc/httpd/conf/httpd.confにはDocumentRoot "/var/www/html"とあるので
/var/www/html以下に適当なindex.htmlファイルを作って表示してみます

$ vi /var/www/html/index.html
--vi--
<html>
・・・省略・・・
</html>
------

ってことで表示

5.VirtualHostの設定-適当なドメインを打ったら適当なhtmlを表示してみる

virtualhostの設定をすることで、
自分で取ったり取らなかったりしたドメインにアクセスしてきた際のwebサーバの設定を書いておきます

ってことで下記の4つをやります

vpsのvirtualhostの設定する
・設定したとこにhtmlファイル作る
macのhostsを変えて確認する
・ブラウザやログで確認

vpsのvirtualhostの設定する
※ httpd.conを編集してvirtualhostを有効にする
$ sudo vi /etc/httpd/conf/httpd.conf
--vi編集--
#NameVirtualHost *:80
↓変更
NameVirtualHost *:80
---------

※ とあるドメインでアクセスしてきた際に公開するディレクトリを作成する
$ sudo mkdir -p /var/www/tekitou/public/

※ FileZillaやCyberduckでファイルをアップロードしたい場合は所有権なども変えておく
$ sudo chown -R hoge:hoge /var/www/hoge ← hogeはこのサーバにアクセスできるユーザとかに変える

※ virtualhostの設定ファイルを作成&記述
$ sudo vi /etc/httpd/conf.d/virtualhost_tekitou.conf
--vi書き込み--
<VirtualHost *:80>
  ServerName hoge.tekitou.com

  DocumentRoot "/var/www/tekitou/public"
  DirectoryIndex index.html index.php

  ErrorLog /var/log/httpd/tekitou_error_log
  CustomLog /var/log/httpd/tekitou_access_log combined

  AddDefaultCharset UTF-8
  <Directory "/var/www/tekitou/public">
    AllowOverride All
  </Directory>
</VirtualHost>
-------------

※ 一応確認&再起動して設定を反映
$ sudo /etc/init.d/httpd configtest
Syntax OK

$ sudo /etc/init.d/httpd restart

※ 一般ユーザでログをみたいときは/var/log/httpdの権限も変えておきます
$ sudo chmod 755 /var/log/httpd
設定したとこにhtmlファイル作る

hoge.tekitou.comでアクセスが来た際の設定をしたので
/var/www/tekitou/publicにindex.htmlを作成します。

$ sudo vi /var/www/tekitou/public/index.html
※ 中身は適当なhtml
--vi--
<html>
  <head><title>tekitou</title></head>
  <body>
    <h1>tekitouのpublicのindex.html</h1>
  </body>
</html>
------
macのhostsを変えて確認する

これもコマンドでやりますが、
vpsじゃなくて自分のmacの設定を変えるので違うターミナルを開いて行います
hostsファイルを書き換えることで、あるドメインにアクセスしたときのipを無理矢理設定します

$ sudo vi /etc/hosts
--vi編集--
※ 最後の行に追加(xx.xx.xx.xxはさくらvpsのipアドレス)
xx.xx.xx.xx hoge.tekitou.com
----------

ちなみにhostsファイルの場所は下記です

mac … /etc/hosts
win … C:/WINDOWS/system32/drivers/etc/hosts

ブラウザやログで確認

ブラウザにhoge.tekitou.comと打ってみます

表示されました(^-^)


一応ログも確認してみます

$ cat /var/log/httpd/tekitou_access_log 
xxx.xxx.xxx.xxx - - [12/Feb/2014:01:55:51 +0900] "GET / HTTP/1.1" 200 96 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.33 Safari/535.11"
xxx.xxx.xxx.xxx - - [12/Feb/2014:01:55:52 +0900] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.33 Safari/535.11"

$ cat /var/log/httpd/tekitou_error_log 
[Wed Feb 12 01:55:52 2014] [error] [client 126.11.174.117] File does not exist: /var/www/tekitou/public/favicon.ico

ってことで、いったんここまで。