WordPressの構築2:Nginxのインストールと設定

Nginxのインストール

Nginxの導入に必要なレポジトリを追加します。

$ sudo yum install epel-release
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

 

yumでサクッとインストールです。

$ sudo yum install nginx

 

 

Nginxの設定

Nginxのデフォルトのドキュメントルートは"/usr/share/nginx/html"です。
個人的に"/usr"や"/var"配下にドキュメントルートを置いておきたくないので"/home/www"配下に変更します。
あわせてNginxグループにも権限を与えておきます。(hogehogeは自身のアカウントです)

$ cd /home
$ sudo mkdir www
$ sudo chown -R hogehoge:nginx www
$ sudo chmod 775 www

 

あわせてお名前.comで取得したドメインも設定しておきます。
ドメイン取得も色々調べましたが、費用的にもサービス的にもお名前.comが一番よさそう。

$ cd /etc/nginx/conf.d
$ sudo cp default.conf default.conf.defaultbackup
$ sudo vi default.conf

 

default.confを下記のように編集します。

server {
    #ポートの指定
    listen 80;
    
    # ドメインの指定
    server_name hogehoge.com;
    
    # アップロードできるファイルの最大サイズ
    client_max_body_size 5m;
    
    # ドキュメントルートの指定
    location / {
        root /home/www;
        index index.php;
        # WordPressパーマリンクを通常以外にした場合でもアクセスできるように
        try_files $uri $uri/ @wordpress;
    }
    
    # faviconへのリクエストを処理する
    location /favicon {
        empty_gif;
        access_log off;
        log_not_found off;
    }
    
    # phpを動作させるための設定
    location ~ \.php$ {
        root /home/www;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 120;
        include fastcgi_params;
    }
    
    # wp-config.phpにアクセスさせない設定
    location ~* /wp-config.php {
        deny all;
    }
    
    location @wordpress {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass 127.0.0.1:9000;
        # WordPressのindex.phpを指定
        fastcgi_param SCRIPT_FILENAME /home/www/index.php;
        include fastcgi_params;
    }
}

 

その他、セキュリティ強化としてNginxのバージョン情報を提供しないようにします。

$ sudo cd /etc/nginx
$ sudo vi nginx.conf

nginx.confのhttpディレクティブ内に下記を追加します。

http {
:
    server_tokens off;
:
}


編集を終えたらNginxを起動し、あわせてサーバ起動時にNginxが起動するよう設定します。

$ sudo service nginx restart
$ sudo chkconfig nginx on

 

これでNginxの設定は完了です。