(转)Mangento速度优化(加速)完整攻略,完整大全,总结的经验

1.开启Gzip,去掉网站根目录下.htaccess部分代码注释,修改成如下形式:(这个不是很理解)
第一部分:

############################################
## 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>
<IfModule mod_ssl.c>
############################################

第二部分:

## enable resulting html compression
php_flag zlib.output_compression on

第三部分:
在php.ini中将zlib.output_compression = Off改为zlib.output_compression = On

2.在my.cnf中修改或添加如下代码:(修改Mysql服务器的配置好好利用服务器的内存)

key_buffer = 512M
max_allowed_packet = 64M
table_cache = 512
sort_buffer_size = 4m
read_buffer_size = 4m
read_rnd_buffer_size = 2m
myisam_sort_buffer_size = 64m
tmp_table_size = 128m
query_cache_size = 96m
query_cache_type = 1
thread_cache_size = 8
max_connections = 400
wait_timeout = 300

3.给文件指定有效期
网站根目录.htaccess最后添加:

<ifmodule mod_headers.c>
<filesmatch “\.(html|htm|txt)$”>
header set cache-control “max-age=3600″
</filesmatch>
<filesmatch “\.(css|js|swf)$”>
header set cache-control “max-age=86400″
</filesmatch>
<filesmatch “\.(ico|gif|png|flv|pdf)$”>
header set cache-control “max-age=86400″
</filesmatch>
<filesmatch “\.(jpeg|jpg)$”>
header set cache-control “max-age=86400″
</filesmatch>
</ifmodule>

4.关闭Etag
网站根目录.htaccess添加:

FileETag none

5.-bash: pecl: command not found的解决方法
-bash: pecl: command not found
出现这个问题是因为没有安装php的扩展开发导致的,建议将php以及apache的开发都安装上,使用如下的命令。
yum install php-devel php-pear httpd-devel

6.Centos6.0安装APC
安装: 命令行输入:
pecl install apc
如果报错-bash: pecl: command not found,参看上面一条,第5条
安装完毕后在/usr/lib/php/modules中出现apc.so
然后在/etc/php.ini中加入:
extension=apc.so
重启Apache
phpinfo出来APC的相关内容
在php.ini 中重新配置如下:

[apc]
extension = apc.so
apc.cache_by_default = On
apc.coredump_unmap = Off
apc.enable_cli = 0
apc.enabled = 1
apc.file_update_protection = 2
apc.filters = “”
apc.gc_ttl = 3600
apc.include_once_override = Off
apc.max_file_size = 5M
apc.mmap_file_mask = “”
apc.num_files_hint = 1000
apc.report_autofilter = Off
apc.shm_segments = 2
apc.shm_size = 512
apc.slam_defense = 0
apc.stat = On
apc.stat_ctime = Off
apc.ttl = 0
apc.user_entries_hint = 4096
apc.user_ttl = 0
apc.write_lock = On

安装好APC后,在Magento中app/etc/local.xml中加入下面的代码:

 <global>
………….
     <cache>
          <backend>apc</backend>
          <prefix>MAGE01_</prefix>
     </cache>
 </global>
…………………………….

7.将magento的缓存挂载到内存, 提高读取速度
将magento的cache和session文件夹mount到内存里, 提高读取cache和session的速度
mount -t tmpfs -o size=256M,mode=0777 tmpfs /你网站存放文件夹/var/cache/
mount -t tmpfs -o size=64M,mode=0777 tmpfs /你网站存放文件夹/var/session/
#注意修改为你的文件夹路径,为了能够重启后生效,请在/etc/fstab文件里加入
tmpfs  /你网站存放文件夹/var/cache/ tmpfs size=256,mode=0777 0 0
tmpfs /你网站存放文件夹/var/session/ tmpfs size=64,mode=0777 0 0

8.设置apache 开启 KeepAlive
KeepAlive = On
LoadModule deflate_module modules/mod_deflate.so #开启mod_deflate

来源:http://www.wujinlin.com/mangento%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E5%8A%A0%E9%80%9F-%E5%AE%8C%E6%95%B4%E6%94%BB%E7%95%A5/

Magento 6种优化加速技巧的总结

magento的网站实在是太慢了,想了好多办法,参考了好多资料,做了很多测试,总结一下大概的步骤如下:

1、压缩js,css代码,如果有必要把所有的css,js分别综合到一个文件中,并压缩,缓存

2、清除magento模板中不必要的注释,为所使用到的图片瘦身

3、 优化magento代码,这个步骤工作量大,但可能是效果显著的步骤,不过前提是你非常熟悉magento,彻底删除不用的模块,关闭没用的block, 清除无效,无用的xml(解析xml非常昂贵的),在一个页面中尽量不要大量调用magento的image resize功能,非常消耗内存,除非你自己优化代码。

4、mysql配置优化,充分发挥你的硬件资源,下面的数值要根据你的配置调整

key_buffer_size = 512M
max_allowed_packet = 64M
table_cache = 512
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M
tmp_table_size = 128M
query_cache_size = 96M
query_cache_type = 1
thread_cache_size = 8
max_connections = 400
wait_timeout = 300
5、将magento的var目录挂载到内存中,加快读取速度,如

mount -t tmpfs -o size=100M,mode=0777 tmpfs var

6、安装php加速器,如APC,XCACHE,eAccelerator,安装方法参考相关的网站

然而归于根本,最大的优化来自于对模板,对代码,对block的优化。

在Magento的优化中, Mysql的优化是很重要的,在Magento的官方网给出了有关Mysql的优化, 官方网并没有要我们把Mysql的存储引擎改为innodb, 但我觉的得这是很有必要的,当改成innodb后,还得把Mysql的配置文件修改修改下, 有时根据官方的文档来并不能成功, 这时就要看你的环境而定了, 下面给出我所配置的mysql文件给大家参考:

(继续)

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8
#init_connect=’SET NAMES utf8′
default-storage_engine = innodb

# To allow mysqld to connect to a MySQL Cluster management daemon, uncomment
# these lines and adjust the connectstring as needed.
#ndbcluster
#ndb-connectstring=”nodeid=4;host=localhost:1186″

[client]
#default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log

[Magento]
max_connections = 1000
max_connect_error = 10
table_cache = 1024
max_allowed_packet = 16M
max_heap_table_size = 64M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
tmp_tables_size = 64M
key_buffer_size = 32M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size=10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_log_buffer_size = 8M
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_buffer_pool_size = 3G
innodb_data_file_path = ibdata1:3G;ibdata2:1G:autoextend
innodb_autoextend_increment=512

这里主要讲的是,自己编译的Apache, 而如果是系统自带的话, Apache所需的模块, 系统会自动加载。

(继续)

#vi httpd.conf

ServerTokens OS

ServerRoot “/etc/httpd”

PidFile run /httpd.pid

Timeout 120

KeepAlive off

MaxkeepAliveRequests 100

KeepAliveTimeout 15

StartServers 100

MinSpareServers 100

MaxSpareServers 150

ServerLimit 256

MaxClient 256

MaxRequestsPerChild 40000

Listen *:80

在这里还要一些必须的Apache模块

1, mod_authz_host.so

2, mod_expires.so

3, mod_deflate.so

4, mod_mime.so

5, mod_dir.so

6, mod_rewrite.so 这个模块很重要, 当设置Magento地址重写时,要用到

7, mod_log_config.so

8, libphp5.so 你有可能用的是php4, 那就得改成libphp4.so

注意:

在安装好Apache后, 我们还能让Apache识别以php为后缀的文件

AddType application/x-httpd-php .php .phtml

好了, 到这就讲完了, 这章其实对Magento的优化不大, 但有些模块又不能少, 少了, Magento后台可能出问题

当我们安装好Magento时, 为了加快Magento的速度,我们一般还要做一些对于Magento服务的优化, 来提高Magento被访问的速度。 一般我们会从三个角度去考虑Magento的优化, 如: 安装Magento的系统; Magento模板中的代码; Magento所用到的数据库。 在这我们主要讲的是Magento系统的优化

Magento是在PHP环境下开发的, 所以优化PHP对Magento有着不小的影响,下面是Magento标准的PHP配置。

(继续)

一, 对于Magento所需的扩展, 只开启所需的就可以了

# Required extensions

extension=bcmath.so

extension=curl.so

extension=dom.so

extension=gd.so

extension=mcrypt.so

extension=memcache.so

extension=mhash.so

extension=pdo.so

extension=pdo_mysql.so

extension=mysql.so

extension=xmlwriter.so

下面的一些扩展并不需要开启, 我们可以把它们关闭

# Not needed extensions from default setup

;;extension=dbase.so

;;extension=json.so

;;extension=mysqli.so

;;extension=pdo_sqlite.so

;;extension=sqlite.so

;;extension=wddx.so

;;extension=smlreader.so

;;extension=xsl.so

;;extesnion=zip.so

事无绝对, 当你的系统环境需要某个扩展时, 可以按照需要开启

下面所要讲的, 也是PHP中优化的重点, 将会讲到二种方法,二选一就行了, 切忌, 不能同时应用二种方案

一,安装APC扩展, APC, 用来优化PHP本身, 提高PHP的运行速度

# APC configuration apecifics if it is used

extension=apc.so

apc.shm_size=256

apc.num_files_hint=10000

apc.user_entries_hint=10000

apc.max_file_size=5M

二,安装eaccelerator加速器,功能跟APC类似, 在这就不多说了。

安装好eaccelerator后,将会产生eaccelerator模块

zend_extension=”/usr/lib64/php/modules/eaccelerator.so”

eaccelerator.shm_size = “256″

zen-cart插件ceon-uri-mapping-seo的性能优化

启用该插件后,在网页中输入连接时,都会去查询是 否有满足条件的Url链接规则,这样会影响网页的加载速度,但是如果商品相对较少,则Url规则也就越少,对性能的影响不大。但若商品较多,Url也就越 多查询速度越慢。

解决办法:启用Mysql缓存。

解决步骤:对数据库执行命令:
SET GLOBAL query_cache_size = 102400000;

将html_output.php文件中的内容

SELECT uri FROM …修改为

SELECT SQL_CACHE uri FROM …

测试结果:对于同一页面,第一个访问者浏览时,速度和以前没有多大区别,第二个访问者访问时速度有明显改善