CentOSにnginxとfastcgiを入れてWordPressを動かすまでのメモ:その3

前回と前々回
https://nskw-style.com/2011/server/centos-nginx-fastcgi-wordpress-1.html
https://nskw-style.com/2011/server/centos-nginx-fastcgi-wordpress-2.html

前回までに、CentOSのセキュリティ設定、nginxのインストール、phpを動かす仕組み、MySQLのインストールとWordPress用のDBの作成を行いました。

ここからは、WordPressの設置についてです。

WordPressのインストール

僕は、SFTPでアクセスしてWordPressをアップロードしました。
パスは、/var/www/example.com配下にしました。

バーチャルホストの設定

@wokamotoさんのWordPants Summer Vol.4 ひまわりから、下記をコピペです。PDFからコピペすると、少なくともMacでは動かないです。文末のスペースが原因のようでした。

: 
http {
	: 
	server {
		listen	80;
		server_name example.com;
		root	/var/www/example.com;
		access_log /var/log/nginx/example.com.access.log main;
		# static files location ~ .*\.(txt|xml|html?|jpe?g|JPE?G|gif|GIF|png|PNG|swf|SWF|wmv|WMV|flv|FLV|css|CSS|js|JS|inc|ico|gz) {
			index index.html;
			expires 30d;
			break;
		}
		location / {
			index index.php index.html index.htm;
			# static files 
			if (-f $request_filename) {
				expires 14d;
				break;
			} 
			# request to index.php 
			if (!-e $request_filename) {
				rewrite ^(.+)$ /index.php?q=$1 last;
			}
		}
		# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
		location ~ \.php$ {
			root	html;
			fastcgi_pass 127.0.0.1:9000;
			fastcgi_index index.php;
			fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;
			include	fastcgi_params;
		}
	} 
	:
}

これで、シングルインストールのWordPressが動きます。
ネットワークインストールの場合はまた別です。

パーミッションの変更

exuserとしてアップロードして展開したWordPressのファイル群は、オーナーとグループともにexuserになっており、そのため管理画面からのプラグインインストール、画像のアップロードなどができません。
(もしかしてWP自体のアップグレードもできないのかな?確かめてません)

そこで、2つの作業をします。

権限の書き換え

必要なフォルダのパーミッションを下記のようにして変更します。

chown :nginx upgrade

ここではupgradeなのですが、ここをpluginsにしたりthemesにしたりしてください。
何かしようとするとエラーが出力されて、「upgrade/xxx」が作れませんでした!とか言われるます。wp-contentをまるごと変えるのはちょっと怖かったので、僕はそのたびに実施することにしています。

アップロードの仕方を変更

wp-config.phpに、下記をコピペして保存します。

define('FS_METHOD','direct');

Codex > wp-config.php の編集 > FTP・SSH 定数でちょっとだけ解説されています。

以上でWordPressが画像をアップロードしたり、プラグインのインストールや削除ができるようになります。

ここまでで、Apacheの代わりにnginxが動いている状況の出来上がりです。

このあと、さらにnginxを二分割して、動的に生成された結果としての静的ファイルをキャッシュして、次の要求があった時に、phpとWordPressを動かすことなくそのファイルを返してしまう仕組み(この言い方で合ってるのかな?)である、プロキシキャッシュを取り入れると、さらに速くなるということなのですが、僕の場合、WordPressをネットワークで動かしたく、それが実現できずにいるので、とりあえず、ここまででこのシリーズはおしまいです。

プロキシキャッシュ参考:

WordPressを100倍速くする! MySQLの調整やnginx proxy cache
さくらVPSのWordPressをチューニングして30倍高速化した方法

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

著者について

コメント

コメント一覧 (1件)

コメントする

目次
閉じる