XOOPS: 优化XOOPS,其模块和您的服务器

发布者: instantzero于 2007/12/17 16:26:27 11640次阅读
有时,人们说Xoops相当慢,这可能是真的,但有方法可以改进。

Instant Zero负责维护一些使用Xoops的网站,因此我们决定与您分享我们在该领域的知识,并希望您会发现它有用。

在本文中,我们将从5个要点中了解您可以为您的站点做什么。





1/ 服务器
我们首先将查看您的服务器以及您可以做什么。
根据您拥有的服务器类型和合同,我们建议您启用gzip压缩。
如果您使用的是Apache 2,则需要启用deflate模块
我们将不讨论如何安装和使用它;您可以从互联网上找到许多很好的教程。

“现代”浏览器(实际上它是用不是很新的浏览器运行的)可以要求服务器发送压缩的页面。
这有很多优点,首先,服务器与您的浏览器之间的连接更少,其次,您收到的数据也更少。
缺点是您要求服务器做更多的工作。但是这值得!
就像用任何zip程序压缩HTML页面并将其发送到您的浏览器一样。
这正是相同的,您的浏览器肯定可以做到。对于您的服务器...您必须与您的托管商协商。

如果您能的话,我们还建议您安装并使用Zend OptimizereAccelerator扩展。
Php6应附带一个opcache,但在它到来之前,尝试使用另一种方法来节省一些时间。
使用Zend optimizer(或其他任何opcache系统),频繁使用的脚本以预编译状态保留在内存中。这样,您的站点无需在每次调用时都解释每个脚本。
使用类似eAccelerator的Php扩展,您的网站中调用的所有PHP脚本都可以保存为“编译”状态到您的硬盘上。占用的磁盘空间与您的脚本数量相同(甚至略多),但它也有助于使您的网站更快。


2/ Xoops的自带功能
内容管理系统(CMS)的问题是一切都是动态的,所以数据库经常被使用,Xoops也是如此。
但Xoops使用一个名为“Smarty”的模板系统,并允许您使用缓存系统。
虽然这个缓存系统在模块页面上全局使用时可能会造成问题,但在您的模块块中它非常有用。
通常情况下,您网站的主页会使用很多块。
所以别忘了为您的块应用一些缓存,您可以在Xoops块管理器中编辑块并选择缓存时间。
最后一点建议,在我们维护的许多网站上,我们可以看到这个选项被激活了“检查模板的修改?”
肯定的是,除非您正在处理您的主题,否则请(将其设置为主题)关闭此选项(设置为否)!


3/ 数据库
您的数据库在每个页面上都被调用。它被Xoops和您的模块调用。
随着时间的推移和使用,您的数据库可能变得“不优化”,所以我们首先建议您安装和配置XoopsCare。
有了这个模块,您可以为您的数据库计划一些定期的优化过程。

您必须知道的是,如果您的数据库有一天崩溃,从经常优化数据库中恢复数据比从不优化的数据库中恢复数据要容易(如果可能的话)并且对您的网站来说更快。

根据您的网站流量,您可以为“每……维护数据库”选项选择更高的或更低的值。我们还建议您使用“缓存和Templates_c”选项以及“清空会话”。
当我们在谈论会话时,您设置的会话越长,填写的数据库就越多!
而且别忘了,像Google这样的机器人也会使用会话...

关于数据库的讨论,我们将在本节最后谈谈您可以带来的某些优化,即用于Xoops和您的网站安装的模块的Mysql表。

在对您的数据库进行任何更改之前,我们强烈建议您创建一个完整备份(内容和管理结构)。

正如您所知,Xoops使用一个数据库来存储其内容。模块也是如此。
每个模块都有自己的Mysql表。它包括一个结构(一个名称和字段)和数据。

每个表都可以根据您的需求设置尽可能多的索引。
索引用于加快搜索速度,但作为代价,您在读取过程中获得的好处将在插入数据时丢失,因为您需要在表格中插入数据并更新索引。
但通常情况下,您的网站更多地用于读取而不是写入。所以如果您的网站在速度上有问题,那么您可以在可能有用的地方添加一些索引。

因此,为了向您的网站添加索引,并且在您备份之后,我们建议您使用像Phpmyadmin这样的脚本来为您添加索引到表格。
添加索引是一个非常简单的操作。一旦您(在左侧)点击了表格的名称,然后其结构就可见于右侧,您会看到一个链接或图标,可以添加所需的字段上的索引。

我们将分析Xoops表,您可以在其中添加索引,以及您可以选择索引哪些字段。

(a)"modules" 表(在你的网站上可能类似于 "xoops_modules",具体取决于安装时使用的表前缀,但在此文章中我们将将其称为 "xoops")。在这个表中,声明了您网站上安装的模块。您可以为这 3 个字段添加索引:"isactive","weight" 和 "hascomments"。

(b)xoops_users。这个表存储了您网站上所有用户的列表。您可以对该 "level" 字段进行索引。

(c)xoops_online。这个表被 "谁在线" 块使用(只有当此块可见时,此表的内容才会被填充)。您可以对该 "online_updated" 和 "online_uid" 字段进行索引

(d)Xoops_config。在这个表中,存储了所有的配置,包括 Xoops 和模块。您可以为 "conf_order" 字段添加索引

(e)xoops_xoopscomments。正如其名所示,这个表包含所有模块的评论。您可以为 "com_status" 字段进行索引

(f)现在我们来看看一些模块的表。首先是 multiMenu。这是一个非常受欢迎的模块,正如其名所示,您可以用来创建菜单。在多菜单模块的表中,您可以对 "weight","hide" 和 "submenu" 字段进行索引。

(g)新闻。 新闻模块 也是一个广为人知的创建文章的模块。您可以在 "xoops_stories" 表的 "published" 字段上添加索引。

(h)extCal 是一个极佳的日历。在 "xoops_extcal_event" 表中,您可以对 "event_start","event_end" 进行索引,并将 "event_approved" 从 int(11) 改为 tinyint(1) 并进行索引。您还可以对 "cat_id" 字段进行索引。如果需要,您还可以添加由 "event_start","event_end","event_approved" 组成的另一个索引。

(i)Smartsection,这是一个用于创建页面的模块。在它名为 xoops_smartsection_items 的表中,您可以对 "status" 和 "datesub" 字段进行索引。仍在此模块中,在名为 "xoops _smartsection_categories" 的表中,您可以对 "parentid" 和 "weight" 字段进行索引。

(j)XoopsPoll,这是一个用于创建投票的模块。在其名为 xoops_xoopspoll_desc 的表中,您可以对 "weight" 字段进行索引。

(k)Newbb。这是一个 Xoops 论坛。在其名为 "xoops_bb_online" 的表中,您可以在 "online_uid" 字段上添加索引,并在名为 "xoops_bb_topics" 的表中,您可以对 "approved" 字段进行索引。对于 "xoops_bb_posts" 表,您可以对 "approved" 字段进行索引。最后,在名为 "xoops_bb_forums" 的表中,您可以在 "parent_forum" 字段上添加索引。

(l)Catads。这是一个用于创建广告的极佳模块。在其名为 "xoops_catads_ads" 的表中,您可以对 "waiting","published","expired","uid" 和 "cat_id" 字段进行索引。在其名为 "xoops_catads_cat" 的表中,您可以对 "weight" 和 "pid" 字段添加索引

(m)SmartFAQ 是一个 FAQ 模块,在其名为 "xoops_smartfaq_categories" 的表中,您可以对 "parentid" 字段进行索引。

这并非完整的列表。您肯定可以找到需要更多索引的表,甚至没有索引的表。
如果您是开发者或经验丰富的用户,您可以激活您的 Mysql 安装的 "慢查询日志"
如果您不是开发者或经验丰富的用户,那么,您至少可以通过 Phpmyadmin 来查看您的网站使用的表是否有索引。


4/ 使用的文件
一些文件在每个页面上都会使用,比如 xoops.js 文件。
您可以在网站的 "include" 文件夹中找到此文件。
如果您使用的是标准主题,那么这个文件会在您网站的每个页面上被调用。

您可以使用像 jsmin 这样的程序,来“压缩”它的大小。
这可能看似微不足道,但在流量大的网站上,这可以帮助您的网站更快地运行。

您可以在任何您正在使用的其他 Javascript 文件上应用 jsmin,例如 jQueryPrototype
一般来说,对于JavaScript文件,将这些文件尽可能地放置在您主题代码的底部。
您还可以将此规则应用于Google Analytics代码(如果您使用它)和Google Ads。

您的网站使用的另一种文件类型是图片。
尽可能减少图片的重量。
如果您使用Photoshop,则将其导出为网络格式,并尽可能压缩。
如果您不使用Photoshop,我建议您使用XnView(适用于Windows和Linux)。


5/ CSS
您的网站当然使用了从您的主题中调用的CSS文件。请确认此文件中不包含太多的注释,并在必要时删除它们。
将调用CSS文件的代码放置在您的主题顶部,这是一种节省时间的方法。


结论
如果您需要Xoops的服务,请随时联系我们。

Instant Zero,您的Xoops专家。