NginxでWordPressマルチサイトが簡単に作れます

スポンサーリンク

NginxとApache

高速で省メモリかつアクセス過多にも強いと言われるNginxを使ってWordPressを簡単に効率よくマルチサイト化しようと思います。
私は今、ApacheをさくらのVPS上のこのサイトで使っています。
色々設定は弄りましたが、なかなかメモリ使用量が減らないです。
因みに、当サイトもWordPressのマルチサイト機能を有効化して運用しています。

NginxのWordPressマルチサイト設定を見つけました

今回はローカル環境でWordPressのマルチサイトを検証していきます。
色々検索したのですが、日本語のサイトでNginxのWordPress用マルチサイトの設定って結局見つけられずにいましたが、英語のサイトで検索していたらちゃんと書かれていました。

How To Set Up WordPress Multisite with Nginx on Ubuntu 14.04

Windows10ホストでVirtualBoxのゲストとしてUbuntu16.04を使っていきます。
WordPressのインストールは前に書いた記事をご参照ください。
そこでNginxの設定もしているのですが、ちょっと変えるだけでWordPressのマルチサイト化に対応できます。

ローカル環境のドメイン等の前提(飛ばしても可)

このように
127.0.1.1 ubuntu16.jp ubuntu16 ubuntu1.com
と設定するとローカルな独自ドメインとして
ubuntu16.jp
ubuntu16
ubuntu1.com
が使えて、名前解決もできます。
更にifconfigコマンドで得られるIPアドレスでもアクセスできます。

ifconfig

纏めれば、ifconfigの結果が192.168.10.11とすれば、
192.168.10.11 = ubuntu16.jp ubuntu16 ubuntu1.com
と考えて問題はないでしょう。
その根拠はWindows10の/etc/hostsにこのIPアドレスを設定すると名前解決ができますからね。

今回の設定の前提

どうでもいい話?で横道にそれてすいませんでしたが、言いたかった事はレンタルサーバーを借りて固定IPアドレスを取得し、かつ独自ドメインを3つ取ったとしたら、
それがここでは固定IPが192.168.10.11で独自ドメインがubuntu16.jp ubuntu16 ubuntu1.com
であると考えてください。因みに全部DNS的には架空のドメインです。

要約すると、今回の設定としては、上の3つのドメインでアクセスできるWordPressのマルチサイトを構築していきます。

Nginxの設定 ここからの変更点とWordPressの設定

server_name ubuntu1.com *.ubuntu1.com ubuntu16 ubuntu16.jp;
なんとこの1行の変更だけでした。

上述の英語サイトによると、最初のドメインに関してはサブドメイン指定のワイルドカードが必要で、3つ以上のマルチサイトドメインが必要な模様です。

話がちょっと飛びますが、WordPressの設定でマルチサイトを有効化してログインし直した後に注意点があります。ネットワークを設置してインストールすると表示されるWordPressが提示するコードはwp-config.phpの追加だけでよく.htaccessは無視できるということらしいです。(Nginxは.htaccessを使わない)

後の手順は、上の英語サイトとか詳しく書かれているサイトが沢山ありますのでそちらを見て下さいね。日本語だと例えばこの辺りとか・・・

WordPressをマルチドメインで運用する

結果として

問題なくWordPressのマルチサイトが完成いたしました。
マルチサイトにしたいんだけど・・・
WordPressのマルチサイトが難しいと考えている方には非常に朗報だと思います。
これってApacheでマルチサイトするよりNginxの方が簡単ですね。

参考までに私のNginx設定ファイルは次のようになっています。
WordPressのインストールディレクトリーをここから変更しているのは、Nginxのバーチャルホストの設定を色々していた痕跡で、変更する必要はないと思います。

/etc/nginx/sites-enabledの設定

        .................
# Default server configuration
#
server {
	listen 80 default_server;
	listen [::]:80 default_server;

	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Read up on ssl_ciphers to ensure a secure configuration.
	# See: https://bugs.debian.org/765782
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;

	root /var/www/html/ubuntu1.com/wordpress;
        client_max_body_size 20M;
	# Add index.php to the list if you are using PHP
	index index.html index.php index.htm index.nginx-debian.html;
        
	server_name ubuntu1.com *.ubuntu1.com ubuntu16 ubuntu16.jp; # 変更

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
#		try_files $uri $uri/ =404;
                try_files $uri $uri/ /index.php?q=$uri&$args;
	}

       

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	 location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	#
	#	# With php7.0-cgi alone:
	#	fastcgi_pass 127.0.0.1:9000;
	#	# With php7.0-fpm:
		fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#                fastcgi_index  index.php;
	 }

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	
}


# Virtual Host configuration for example.com
        ................................

Cocoon表示・ソースpdfファイル

サイト

ソース

動画を公開

WordPressマルチサイトの雰囲気をご覧下さい。
インストール動画も公開予定です。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク