somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【nginx】バーチャルホストの設定

バーチャルホストの設定をして、ホスト名ごとにドキュメントルートを変更するようにしました。

設定

nginxが読みこむ設定ファイルのいずれかに以下の設定を追加します。

server {
    listen      80;
    server_name virtualhost-test.com;
    root        /var/www/html/test;
    index       index.php;
    access_log  /var/log/nginx/test/access.log;
    error_log   /var/log/nginx/test/error.log;
    location ~ \.php$ {
        fastcgi_pass                   127.0.0.1:9000;
        fastcgi_index                  index.php;
        include                        /etc/nginx/fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

どのサーバーにアクセスされたかを明確にするためにlogの設定も行ないました。touchなどでファイルを作成しておきましょう。また、rootに設定したディレクトリを作成し、適当なphpファイルを格納しておきます。

hostsの設定

設定したホスト名でアクセスできるようにhostsファイルに以下の設定を追加します。

xxx.xxx.xxx.xxx  virtualhost-test.com

windowsの場合、C:\WINDOWS\system32\drivers\etcにあります。編集後、即時反映されました。

Linuxの場合、/etcにあります。windowsと違って即時反映されません。以下のコマンドを実行して反映します。

service network reload

確認

ipアドレスでアクセスすると、前回設置したphpinfoを出力するページに遷移しました。ホスト名でアクセスすると、用意したファイルの内容が表示されました。また、ログにもアクセス記録が残りました。