
Nginxは/etc/nginx/sites-available/default の設定で動いて、
これに、SSL付きでWordPressが動くように設定してみたいと思います。
環境
- Ubuntu12
- Nginx1.2.2
- PHP 5.3.10
PHPはNginx + php5-fpmで動いています。
SSL証明書
公開鍵と秘密鍵は準備されているものとします。
今回は以下の位置にあるものとします。
1 2 |
/etc/ssl/ssl-cert.pem (公開鍵) /etc/ssl/private/ssl-cert.key (秘密鍵) |
Nginxの設定
最初に書いたように/etc/nginx/sites-available/defaultで動いているので、
このファイルを追加修正します。
一番下にコメントアウトしてありますが
1 2 3 4 5 6 7 |
# HTTPS server # #server { # listen 443; (以下省略) |
とある程度記述してあるので、参考にしました。
設定を合わせるだけで、ほぼそのままです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
listen 443; server_name localhost; # localhostを適宜変更 root /usr/share/nginx/www; index index.php index.html index.htm; ssl on; ssl_certificate /etc/ssl/ssl-cert.pem; # 公開鍵があるところまでのパス、相対パスの時はnginx.confを基準 ssl_certificate_key /etc/ssl/private/ssl-cert.key; # 秘密鍵があるところまでのパス、相対パスの時はnginx.confを基準 ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ /index.html; # お好みで } |
Nginxとphp5-fpmの組み合わせで動いているので、以下を追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<h1>pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</h1> # location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; [crayon-603d17848c4f1427761568 ]<code> # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; |
}
[/crayon]
WordPressのパーマリンクでデフォルト以外に対応するなら(rewriteルール)以下をlocation /に追加
1 2 3 4 5 6 7 8 9 10 11 12 13 |
location / { root /usr/share/nginx/www; index index.php; if (-f $request_filename) { expires 30d; break; } if (!-e $request_filename) { rewrite ^.+?(/wp-.<em>) $1 last; rewrite ^.+?(/.</em>.php)$ $1 last; rewrite ^ /index.php last; } } |
以上、まとめると
以下のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
server { listen 443; server_name localhost; # localhostを適宜変更 root /usr/share/nginx/www; index index.php index.html index.htm; ssl on; ssl_certificate /etc/ssl/ssl-cert.pem; # 公開鍵があるところまでのパス、相対パスの時はnginx.confを基準 ssl_certificate_key /etc/ssl/private/ssl-cert.key; # 秘密鍵があるところまでのパス、相対パスの時はnginx.confを基準 ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ /index.html; # お好みで root /usr/share/nginx/www; index index.php; if (-f $request_filename) { expires 30d; break; } if (!-e $request_filename) { rewrite ^.+?(/wp-.*) $1 last; rewrite ^.+?(/.*\.php)$ $1 last; rewrite ^ /index.php last; } } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } |
検証しなければならない所は多々あると思うのですが、とりあえず httpsでアクセス可能になりました。
こういうブログもありました。
- Ubuntu12 + nginx + php5 + mysql でWordPressを使う環境を作ってみる
- Ubuntu12 + nginx で作ったWordPressのパーマリンク設定
- Ubuntu10 + Apache2 + SSL をやってみる
- 「要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります」というエラー解決方法
- Ubuntu 12.04へアップグレードしたらDNSの設定がエラー(resolv.conf)
人気のあるブログ:
- 新しいgemのアップデート方法(rubygems-update)
- Coda2でscssを使うときのお供にcompassをどうぞ。
- bashでUTF-8に設定して日本語表示したり使ったり。Emacsでも。
- NginxをSSL付きで動かすために設定したこと
- Macでフォルダを結合したいとき