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では動かないです。文末のスペースが原因のようでした。

:<br />
http {<br />
	:<br />
	server {<br />
		listen	80;<br />
		server_name example.com;<br />
		root	/var/www/example.com;<br />
		access_log /var/log/nginx/example.com.access.log main;<br />
		# 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) {<br />
			index index.html;<br />
			expires 30d;<br />
			break;<br />
		}<br />
		location / {<br />
			index index.php index.html index.htm;<br />
			# static files<br />
			if (-f $request_filename) {<br />
				expires 14d;<br />
				break;<br />
			}<br />
			# request to index.php<br />
			if (!-e $request_filename) {<br />
				rewrite ^(.+)$ /index.php?q=$1 last;<br />
			}<br />
		}<br />
		# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br />
		location ~ \.php$ {<br />
			root	html;<br />
			fastcgi_pass 127.0.0.1:9000;<br />
			fastcgi_index index.php;<br />
			fastcgi_param SCRIPT_FILENAME /var/www/example.com$fastcgi_script_name;<br />
			include	fastcgi_params;<br />
		}<br />
	}<br />
	:<br />
}

これで、シングルインストールの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倍高速化した方法

↓ プラグインを作る方々への本、書きました。 ↓

「CentOSにnginxとfastcgiを入れてWordPressを動かすまでのメモ:その3」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です