最近在研究 WordPress Multisite 多站台功能,但網路上大部分都是針對apache2的設定,而我的伺服器剛好是nginx,所以花了非常多功夫才搞定WPMU在nginx裡的設定,故在此做一點小記錄。
1. 安裝wordpress
在啟用 WordPress Multisite 多站台功能功能前必須要先安裝wordpress。(wordpress3.6.1安裝)
2. 啟用多網誌站台功能
修改 wp-config.php 文件,將define(‘WP_ALLOW_MULTISITE’, true); 改成true
剩下就照著它的說明一步步設定完畢。
3. 修改nginx設定檔
這是最麻煩的地方,但我去年有安裝過WPMU,所以今年再來安裝一次時,我直接拿去年修改過的nginx.conf來稍微調整一下而已…。至於我去年為什麼要這樣修改呢?我忘記了…我當時應該要馬上做紀錄的~囧
log_format web102.coolsea.net ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;map $uri $blogname{
~^(?P<blogpath>/[^/]+/)files/(.*) $blogpath ;
}map $blogname $blogid{
default -999;#Ref: http://wordpress.org/extend/plugins/nginx-helper/
#include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
}
server
{
listen 80;
server_name web102.coolsea.net;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/web102;include none.conf;
location ~ .*\.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}location ~ .*\.(js|css)?$
{
expires 12h;
}access_log /home/wwwlogs/web102.coolsea.net.log web102.coolsea.net;
location ~ ^(/[^/]+/)?files/(.+) {
try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;
access_log off; log_not_found off; expires max;
}#avoid php readfile()
location ^~ /blogs.dir {
internal;
alias /home/wwwroot/web102/wp-content/blogs.dir ;
access_log off; log_not_found off; expires max;
}if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}location / {
try_files $uri $uri/ /index.php?$args ;
}}
4. 完成,你可以開始新增帳號和網誌了。
WPMU很吃系統資源,當七、八十個子網站一起跑起來會明顯感受的系統有點延遲,所以之後我們來一起研究一下如何開啟 CACHE功能。