降低负载

首先,请在查看本页面之前执行http://pukiwiki.sourceforge.jp/dev/?BugTrack/763所写的内容。(稍后翻译到本地)

CSS采用静态文件
Adv.中将css写成php文件的原因,是为了合并多个CSS并压缩传输,使CSS能在header有效期内输出。基于这个原因,正式版照此实行但效果不明显。

频繁使用的图片采用CSS精灵(CSS Sprites)

游戏类型的网站,制作icon专用页面时,像sword.png这样的图片以

&ref(sword.png,[[icon]],nolink);

形式调用的情况屡见不鲜。
噗叽唯姬的附件文件如其它PukiWiki一样,为了降低服务器负载,在设计上增加了SendFile header及增加从缓存读取的Last-modified header等,采用CSS精灵后,通过精简wiki图示,减少图片加载次数,显示速度也会更快。此外,因为不通过插件,可以大大降低服务器的负载。

status.png

像这样频繁使用的图片,不用上传到Wiki,像左边图片一样整体使用CSS精灵,设定rules.ini.php的规则后调用即可。

该图片是从granlord公国处开始的。

首先,在样式表中指定以下内容。

.status-icon{
	display: inline-block;
	width: 16px;
	height: 16px;
	line-height: 100%;
	background: transparent url('status.png') -1000px -1000px no-repeat;
	vertical-align: middle;
	margin:0 2px;
	text-align: center;
	text-shadow: none;
	color: transparent;
}

.status-icon-sword	{ background-position: 0 0; }
.status-icon-shield	{ background-position: -18px 0; }
.status-icon-wond	{ background-position: -36px 0; }
以下省略

接下来将图标的meta字符添加到rules.ini.php的$str_rules里。

$str_rules = array(
   '&now;'     => '\&epoch\('.UTIME.'\);',
   '&date;'    => get_date($date_format),
   '&time;'    => get_date($time_format),
   '&page;'    => get_short_pagename($vars['page']),
   '&fpage;'   => $vars['page'],
   '&t;'       => "\t",
+  '&sword;'       => '<span class="status-icon status-icon-sword">Sword</span>',
+  '&shild;'       => '<span class="status-icon status-icon-shield">Shild</span>',
+  '&wond;'    => '<span class="status-icon status-icon-wond">Wond</span>',
...
);

然后,例如在Wiki显示剑的图片时,输入&sword;的部分会转换成sword.png。通过以上设置,可让编辑更加容易。

使用如Cloud Flare的服务

使用独立域名时,不仅要降低负载,尝试反破坏也是必要的。重要的是,通过Cloud Flare管理域名服务器不只是形式上的,在Cloud Flare上包含的内容会被缓存,可以避免可疑的访问。
此外,不能使用GeoIP的服务器也可以利用这个服务来实现。(尤其是作为PukiWiki,因为不具有限制国家访问权限功能,使用CloudFlare的威胁控制来避免这样更好。)
详情在./CloudFlare。
参考:

安装Memcache组件

PukiWiki本身,诞生在内存之类的硬件很贵的年代,所以设想了一些非常的措施。然而,最近的服务器,因为内存的降价标配256M也不足为奇。内存不足不仅会缓存到Swap影响性能,还会造成服务器不稳定。
PukiWiki Adv.的缓存处理全部采用Memcache在内存中进行,可以减少硬盘的IO造成的延迟和负载,大大提高运行速度。
Debian系统可以用以下命令进行安装。

sudo apt-get install php5-memcache

和在其他服务器运行Memcache一样,不需要特别的环境,也不需要在PukiWiki上特别设置。在安装之后,别忘了在iptables打开端口(通常为11211)。
此外,按当前规范重置服务器,Memcache刷新的同时缓存数据将全部丢失。

升级到PHP 5.4

PukiWiki Adv.支持PHP5.4。在多数情况下5.4的运行更加轻量化。首先,尝试升级PHP。比起PHP5.3,PHP5.4性能至少提升9%,在特定条件下预计可提升70%。
Ubuntu系统下的安装示例:

sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install php5 php5-apc php5-common php5-curl php5-fpm php5-gd php5-memcache php5-xdebug

但是,其他PukiWiki系列将无法正常运行。

不使用Apache而使用nginx或cherokee

Apache虽然被广泛使用,但有工程量太大、配置文件太复杂而降低运行速度的一面。所以,请考虑使用配置PHP-FPM的cherokee或nginx服务器。
特别是nginx,拥有如niconico动画等各种各样的运行实例。