使用memcached与您的vBulletin论坛减少服务器负载(Debian蚀刻)

使用memcached与您的vBulletin论坛减少服务器负载(Debian Etch)

版本1.0
作者:Falko Timme

在本文中,我将介绍如何通过使用memcached与您的vBulletin论坛软件一起减少服务器负载(我假设您正在使用mod_php5在Apache2上运行vBulletin)。 memcached是一个守护进程,可以将对象存储在系统的内存中(例如数据库查询的结果),可以极大地加速您的网站。 您可以通过网络使用memcached(即,将Web应用程序安装在一个服务器上,并将其记录在另一台服务器上),但通常您将其安装在一台服务器上,以避免网络开销。

应该注意的是,memcached是没有现成的解决方案来加速您的Web应用程序。 通常,您必须调整脚本(PHP,Perl等)以使用memcached,因此这需要一些工作。 幸运的是,vBulletin已经内置了对memcached的支持 - 所有你需要做的就是修改vBulletin的config.php文件。

我不会保证这将为您工作!

1初步说明

我假设你有vBulletin安装在目录/var/www/www.example.com/web/forums中 ,所以config.php位于/var/www/www.example.com/web/forums/includes

2安装memcached和PHP5 memcache模块

memcached和PHP5 memcache模块可用作Debian Etch的软件包,因此我们可以按如下方式进行安装:

apt-get install memcached php5-memcache

安装完成后,memcached应​​该已经运行了。 您可以通过键入来检查

netstat -tap | grep memcached
server1:~# netstat -tap | grep memcached
tcp        0      0 *:11211                 *:*                     LISTEN     3053/memcached
server1:~#

如您所见,memcached正在端口11211 (默认memcached端口)上运行,并且正在监听系统上的所有接口。 由于memcached没有内置的身份验证机制(为了不放弃速度),这意味着任何人都可以从外部连接到它并使用它。 为了避免这种情况,您可以关闭防火墙中的端口11211,也可以将memcached配置为仅在本地主机上监听。 我将在这里使用后一种方法。

为此,请打开存储在/etc/memcached.conf中的memcached配置

vi /etc/memcached.conf

-l 127.0.0.1添加到配置中(您也可以根据需要调整其他设置 - 该文件包含每个设置的说明):

[...]
# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
# -l 12.34.56.78
-l 127.0.0.1
[...]

重新启动memcached ...

/etc/init.d/memcached restart

...运行

netstat -tap | grep memcached

再次。 正如你所看到的,memcached现在正在仅在localhost上监听:

server1:~# netstat -tap | grep memcached
tcp        0      0 localhost.localdo:11211 *:*                     LISTEN     3092/memcached
server1:~#

然后打开/etc/php5/apache2/php.ini ...

vi /etc/php5/apache2/php.ini

...并确保你有这样的东西(可能在最后):

[...]
extension=memcache.so
[memcache]
memcache.dbpath=/var/lib/memcache
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0

之后,我们重新启动Apache,以便我们的新PHP配置生效:

/etc/init.d/apache2 restart

3配置vBulletin

接下来打开vBulletin的config.php文件:

cd /var/www/www.example.com/web/forums/includes/
vi config.php

你应该找到这样的东西:

[...]
/*
$config['Datastore']['class'] = 'vB_Datastore_Memcached';
$i = 0;
// First Server
$i++;
$config['Misc']['memcacheserver'][$i]                = '127.0.0.1';
$config['Misc']['memcacheport'][$i]                        = 11211;
$config['Misc']['memcachepersistent'][$i]        = true;
$config['Misc']['memcacheweight'][$i]                = 1;
$config['Misc']['memcachetimeout'][$i]                = 1;
$config['Misc']['memcacheretry_interval'][$i] = 15;
*/
[...]

/ * ... * /表示该部分被注释掉。 从该部分删除/ ** /并保存文件:

[...]

$config['Datastore']['class'] = 'vB_Datastore_Memcached';
$i = 0;
// First Server
$i++;
$config['Misc']['memcacheserver'][$i]                = '127.0.0.1';
$config['Misc']['memcacheport'][$i]                        = 11211;
$config['Misc']['memcachepersistent'][$i]        = true;
$config['Misc']['memcacheweight'][$i]                = 1;
$config['Misc']['memcachetimeout'][$i]                = 1;
$config['Misc']['memcacheretry_interval'][$i] = 15;

[...]

(如果您的memcached运行在其他服务器或端口上,则必须调整这些设置!)

而已。 您的vBulletin现在正在使用memcached!

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏