跳到主要内容

优化 Magento

  • WordPress
  • Joomla
  • Magento
  • Robots.txt

Magento 是一个非常流行的电子商务应用程序。它从初始安装开始就提供了大量的定制和功能。以下是一些优化 Magento 安装的建议。
请记住,Magento 非常消耗资源,如果您在共享主机上遇到资源使用问题,应该考虑迁移到专用服务器。VPS 账户对于繁忙的 Magento 网站来说并不是一个令人满意的解决方案,因为它们通常比我们的共享账户资源更少。


修改 .htaccess

启用输出压缩

在 Magento 的 .htaccess 文件中,您会找到一段以 <IfModule mod_deflate.c> 开头并以 </IfModule> 结尾的代码段。
这段代码用于启用 Apache 的 mod_deflate 模块,该模块为文本、CSS 和 JavaScript 提供压缩。您需要取消注释(去掉 # 符号)多行,使其看起来像这样:

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

     # Insert filter on all content
     SetOutputFilter DEFLATE
     # Insert filter on selected content types only
     AddOutputFilterByType DEFLATE text/html text/plain text/xml
text/css text/javascript

     # Netscape 4.x has some problems...
     BrowserMatch ^Mozilla/4 gzip-only-text/html

     # Netscape 4.06-4.08 have some more problems
     BrowserMatch ^Mozilla/4\.0[678] no-gzip

     # MSIE masquerades as Netscape, but it is fine
     BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

     # Don't compress images
     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

     # Make sure proxies don't deliver the wrong content
     Header append Vary User-Agent env=!dont-vary

</IfModule>

注意:部分行可能被网页浏览器自动换行。建议复制粘贴时确保所有内容在正确的行。

启用 Expires 头

首次访问您的页面的用户需要发起多个 HTTP 请求。通过使用 "Expires" 头,您可以使请求的组件可缓存,从而避免后续页面访问时不必要的 HTTP 请求。
您需要找到 .htaccess 文件中以 <IfModule mod_expires.c> 开头,并在其后第一个 </IfModule> 结束的区域。然后,将其内容改为如下所示:

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

     ExpiresActive On
     ExpiresDefault "access plus 1 year"

</IfModule>

代码的颜色标注仅为提高可读性,实际代码中不包含颜色。


Magento 管理后台优化

合并 CSS 和 JS

此优化将减少您的电子商务网站的 HTTP 请求数量。如果您使用的是 1.4.x 之前的 Magento 版本,可以使用免费扩展 Fooman_Speedster;如果您使用的是较新版本的 Magento,请按以下步骤操作:

  1. 登录管理后台,进入 系统 > 配置 > 开发者
  2. 在“JavaScript 设置”下,将“合并 JavaScript 文件”设置为是。
  3. 在“CSS 设置”下,将“合并 CSS 文件”设置为是。
  4. 最后,清除 Magento 缓存。

启用扁平目录

Magento 用于存储客户和产品数据的模型导致 SQL 查询较长且读取次数较多。启用类别和产品的扁平目录选项会将产品数据合并到一个表中,从而提升性能。

  1. 登录管理后台,进入 系统 > 配置 > 目录
  2. 在“前端”下,将“使用扁平目录类别”设置为是。
  3. 在“前端”下,将“使用扁平目录产品”设置为是(可选)。
  4. 最后,清除 Magento 缓存。

数据库维护技巧

Magento 网站运行缓慢的主要原因之一是数据库变得庞大且难以高效进行数据发送/检索。
以下是一些减少 Magento 数据库大小的技巧。
注意:执行以下任何更改前,请务必备份数据库。

数据库日志

Magento 使用多个表进行日志记录。虽然日志对于了解您的商店状况非常重要,但日志文件会迅速变大,因此定期维护非常有帮助。
以下是日志表:

log_customer
log_visitor
log_visitor_info
log_url
log_url_info
log_quote
report_viewed_product_index
report_compared_product_index
report_event
catalog_compare_item

使用 Magento 管理后台清理日志

  1. 在 Magento 管理后台进入 系统 > 配置
  2. 在左侧菜单的 高级 下点击 系统
  3. 在“日志清理”下,将“启用日志清理”设置为是,并将日志保存期限设置为 14 天。
  4. 点击“保存配置”

log.php 工具

Magento 提供了一个 shell 工具,可以通过 Cron 任务配置或手动运行来清理数据库日志。
手动执行
通过 SSH 登录您的账户,进入 Magento 根目录,然后输入:
php -f shell/log.php clean
您可以使用 -days 参数指定保留多少天的日志。
Cron 任务

  1. 登录 cPanel
  2. 点击 Cron 任务

示例命令:

php -f 
/home/yourcpanelusername/public_html/path/to/magento/shell/log.php

注意:上述命令为一行,可能被浏览器自动换行。建议复制粘贴时确保命令在一行。

通过 phpMyAdmin 清理数据库

使用 phpMyAdmin 操作数据库更灵活高效。

  1. 登录 cPanel 并点击 phpMyAdmin
  2. 选择与您的 Magento 安装关联的数据库
  3. 选择以下表:
log_customer
log_quote
log_summary
log_summary_type
log_url
log_url_info
log_visitor
log_visitor_info
log_visitor_online
  1. 在表列表下方的“选中项操作”下拉框中选择“清空”
  2. 会出现确认页面,点击“是”。

建议定期执行此数据库日志清理。使用 Cron 任务可以确保自动执行,无需手动操作。请确保已正确设置该 Cron 任务。