Bài viết này sẽ cung cấp cho bạn các hướng dẫn cấu hình tối ưu cho mã nguồn Magento.
I. Giới thiệu
Các hướng dẫn dưới đây chỉ áp dụng cho các phiên bản Magento từ 1.9 trở lên. Với các phiên bản cũ hơn, có thể một số tính năng sẽ không có sẵn.
I. Giới thiệu
Các hướng dẫn dưới đây chỉ áp dụng cho các phiên bản Magento từ 1.9 trở lên. Với các phiên bản cũ hơn, có thể một số tính năng sẽ không có sẵn.
III. Cách thực hiện
1. Caching
1. Caching
Trên mã nguồn magento mặc định có sẵn các tùy chọn để cấu hình caches và khi cài đặt mới, các tùy chọn này luôn được "enable" sẵn. Để kiểm tra việc caches có được enable chưa, bạn thực hiện như sau:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Cache Management.
B3. Bạn phải đảm bảo rằng các giá trị bên dưới mục Cache Storage Management đang được set giá trị là ENABLED như hình.
B3. Bạn phải đảm bảo rằng các giá trị bên dưới mục Cache Storage Management đang được set giá trị là ENABLED như hình.
Nếu các giá trị trên đang không phải ở trang thái là ENABLED như hình thì bạn cần phải ENABLED lên bằng cách tick chọn "Select All" => Mục Actions chọn Enable => Submit
2. Compression
Mặc định trên file .htaccess của Magento tắt modules mod_deflate. Đây là modules giúp bạn tiết kiệm băng thông cũng như tăng tốc thời gian load trang của bạn. Để bật tính năng của modules này trên Magento, bạn thực hiện như sau:
B1. Mở file .htaccess trên thư mục public_html.
B2. Tìm đến đoạn <IfModule mod_deflate.c> và chỉnh các đoạn code bên trong thành như sau:
<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>
</IfModule>
B3. Lưu lại file .htaccess sau khi chỉnh sửa, các thay đổi sẽ được kích hoạt ngay lập tức.
3. Browser Caching
Ta có thể cài đặt thời gian cho các trình duyệt lưu cache lại nội dung website của bạn bằng cách bật module mod_expires. Cách thực hiện như sau:
B1. Mở file .htaccess trên thư mục public_html.
B2. Tìm đến đoạn <IfModule mod_expires.c> và chỉnh các đoạn code bên trong thành như sau:
<IfModule mod_expires.c> ############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresActive On ExpiresDefault "access plus 1 week" </IfModule>
B3. Lưu lại file .htaccess sau khi chỉnh sửa. Các thay đổi sẽ có ảnh hưởng ngay lập tức.
4. Tăng tốc độ load các file Javascript và CSS.
Một trong cách để tăng tốc độ load website chính là giảm số request của HTTP. Với mã nguồn Magento, bạn có thể thực hiện việc giảm số request của HTTP bằng cách gộp chung các file Javascripts và CSS vào cùng 1 file. Cách thực hiện như sau:
Một trong cách để tăng tốc độ load website chính là giảm số request của HTTP. Với mã nguồn Magento, bạn có thể thực hiện việc giảm số request của HTTP bằng cách gộp chung các file Javascripts và CSS vào cùng 1 file. Cách thực hiện như sau:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Configuration.
B3. Ở panel Configuration bên trái bạn kéo xuống dưới cùng, chọn mục Developer.
B4. Sau đó thực hiện chọn Yes lần lượt ở các mục JavaScript Settings và CSS Settings như hình dưới:
B4. Sau đó thực hiện chọn Yes lần lượt ở các mục JavaScript Settings và CSS Settings như hình dưới:
B5. Click chọn Save Config.
*Lưu ý: Sẽ rất khó để dubug lỗi javascripts cũng như CSS khi bật tùy chọn merge files lại vì thế khi muốn debug lỗi thì cần disable 2 options trên để tiến hành debug. Sau khi hoàn thành mới nên bật Yes lại 2 tùy chọn trên.
*Lưu ý: Sẽ rất khó để dubug lỗi javascripts cũng như CSS khi bật tùy chọn merge files lại vì thế khi muốn debug lỗi thì cần disable 2 options trên để tiến hành debug. Sau khi hoàn thành mới nên bật Yes lại 2 tùy chọn trên.
5. Flat catalogs
Magento sẽ mặc định sử dụng Entity Attribute Value (EAV) để lưu trữ thông tin khách hàng và sản phẩm. Mặc dù phương thức này rất linh động tuy nhiên đôi khi lại khiến các truy vấn đến databases của bạn bị chậm và các câu truy vấn sẽ phức tạp hơn.
Để giải quyết vấn đề này, ta nên thay thế việc sử dụng EAV bằng Flat catalogs. Với Flat catalogs thì các dữ liệu về product và category sẽ lưu trữ chung trên một bảng, còn với EAV thì sẽ lưu trữ trên nhiều bảng khác nhau. Việc này thỉnh thoảng sẽ khiến databases bạn có hiệu năng tốt hơn, truy vấn sẽ nhanh hơn.
*Lưu ý: Bạn nên thử nghiệm việc thay thế này và xem xét hiệu năng có cải thiện hay không vì không phải lúc nào việc này cũng mang lại lợi ích cho website của bạn.
Để thực hiện bật Flat catalogs bạn thực hiện như sau:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Index Management.
B3. Chọn check vào 2 mục Product Flat Data và Category Flat Data.
B4. Ở box Actions, chọn Reindex Data, sau đó click B5. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Configuration.
B6. Ở panel Configuration bên trái kéo xuống dưới cùng, chọn mục Catalog (bên dưới CATALOG), chọn tiếp mục Frontend
B7. Chọn Yes ở các mục Use Flat Catalog Category và Use Flat Catalog Product.
B8. Click chọn Save Config.
B9. Sau đó tiến hành clear cache của Magento:
9.1 Trên menu bar bạn chọn vào mục System, sau đó chọn tiếp mục Cache Management.
9.2 Click chọn Flush Cache Storage.
B6. 404 Error
Khi truy vấn đến một nguồn tài nguyên không tồn tại sẽ bị trả về mã lỗi là 404. Tuy nhiên với mã nguồn Magento mặc định trang báo lỗi đã được tùy chỉnh lại để đẹp hơn. Cũng chính vì lý do này việc load các trang báo lỗi 404 sẽ gây tiêu tốn tài nguyên của bạn. Vì thế một trong số những cách giúp website của bạn có hiệu năng tốt hơn chính là đảm bảo site Magento không chứa đường dẫn đến các nguồn tài nguyên không tồn tại.
B7. Debug
Magento mặc định sẵn các tùy chọn giúp debug lỗi. Tuy nhiên mặc định các tùy chọn này được tắt để đảm bảo không gây tiêu tốn tài nguyên hệ thống. Khi có lỗi trên website Magento của bạn, bạn có thể bật lại các tùy chọn này để kiểm tra và sửa lỗi dễ dàng hơn bằng cách:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Configuration.
B3. Ở panel Configuration bên trái kéo xuống dưới cùng. Chọn mục Developer => Click chọn Debug.
B4. Đảm bảo rằng mục Profiler phải được chọn No, click chọn Log Settings.
B5. Đảm bảo rằng mục Enabled phải được chọn No, click chọn Save config.
Chúc các bạn thành công!
Để giải quyết vấn đề này, ta nên thay thế việc sử dụng EAV bằng Flat catalogs. Với Flat catalogs thì các dữ liệu về product và category sẽ lưu trữ chung trên một bảng, còn với EAV thì sẽ lưu trữ trên nhiều bảng khác nhau. Việc này thỉnh thoảng sẽ khiến databases bạn có hiệu năng tốt hơn, truy vấn sẽ nhanh hơn.
*Lưu ý: Bạn nên thử nghiệm việc thay thế này và xem xét hiệu năng có cải thiện hay không vì không phải lúc nào việc này cũng mang lại lợi ích cho website của bạn.
Để thực hiện bật Flat catalogs bạn thực hiện như sau:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Index Management.
B3. Chọn check vào 2 mục Product Flat Data và Category Flat Data.
B4. Ở box Actions, chọn Reindex Data, sau đó click B5. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Configuration.
B6. Ở panel Configuration bên trái kéo xuống dưới cùng, chọn mục Catalog (bên dưới CATALOG), chọn tiếp mục Frontend
B7. Chọn Yes ở các mục Use Flat Catalog Category và Use Flat Catalog Product.
B8. Click chọn Save Config.
B9. Sau đó tiến hành clear cache của Magento:
9.1 Trên menu bar bạn chọn vào mục System, sau đó chọn tiếp mục Cache Management.
9.2 Click chọn Flush Cache Storage.
B6. 404 Error
Khi truy vấn đến một nguồn tài nguyên không tồn tại sẽ bị trả về mã lỗi là 404. Tuy nhiên với mã nguồn Magento mặc định trang báo lỗi đã được tùy chỉnh lại để đẹp hơn. Cũng chính vì lý do này việc load các trang báo lỗi 404 sẽ gây tiêu tốn tài nguyên của bạn. Vì thế một trong số những cách giúp website của bạn có hiệu năng tốt hơn chính là đảm bảo site Magento không chứa đường dẫn đến các nguồn tài nguyên không tồn tại.
B7. Debug
Magento mặc định sẵn các tùy chọn giúp debug lỗi. Tuy nhiên mặc định các tùy chọn này được tắt để đảm bảo không gây tiêu tốn tài nguyên hệ thống. Khi có lỗi trên website Magento của bạn, bạn có thể bật lại các tùy chọn này để kiểm tra và sửa lỗi dễ dàng hơn bằng cách:
B1. Đăng nhập vào trang quản trị Magento với tài khoản admin.
B2. Trên menu bar chọn vào mục System, sau đó chọn tiếp mục Configuration.
B3. Ở panel Configuration bên trái kéo xuống dưới cùng. Chọn mục Developer => Click chọn Debug.
B4. Đảm bảo rằng mục Profiler phải được chọn No, click chọn Log Settings.
B5. Đảm bảo rằng mục Enabled phải được chọn No, click chọn Save config.
Chúc các bạn thành công!