Có một số bước bạn có thể thực hiện để tăng hiệu suất phía máy chủ. Xin lưu ý rằng một số trong số này sẽ không hoạt động với hầu hết các máy chủ được chia sẻ. Để có hiệu suất tuyệt vời, bạn thường cần kiểm soát chi tiết hơn.
Như với bất kỳ tối ưu hóa nào, bạn nên đo lường hiệu quả của nó đối với hiệu suất trang web của bạn. Để tối ưu hóa cơ bản là các công cụ như PageSpeed và YSlow hữu ích (tôi khuyên dùng các phiên bản Firefox). Để hiểu sâu hơn, bạn sẽ phải đo thời gian phản hồi thực tế của hệ thống trực tiếp của mình trong một khoảng thời gian.
PHP
Kích hoạt bộ đệm Opcode
Đây có lẽ là điều lớn nhất bạn có thể làm để tăng hiệu suất trang web của mình. Tôi khuyên bạn nên sử dụng OpCache hoặc APC . Cấu hình của các bộ đệm này có thể được điều chỉnh để có hiệu năng cao hơn dựa trên nhu cầu cụ thể của máy chủ và trang web, nhưng chỉ cần cài đặt đã là một sự thúc đẩy lớn.
Cập nhật phiên bản PHP
Phiên bản PHP mới hơn thường xuyên đi kèm với cải tiến hiệu suất. Ngoài ra, có một số trường hợp Joomla có thể sử dụng mã tốt hơn khi chạy trên phiên bản PHP mới hơn. Kể từ hôm nay, bạn không nên sử dụng phiên bản PHP cũ hơn PHP 5.4 nếu bạn quan tâm đến hiệu suất.
Cài đặt PHP
Trên các phiên bản PHP cũ hơn (<= 5.3), hãy cẩn thận để tắt register_globals
và magic_quotes_gpc
giành chiến thắng hiệu suất miễn phí. Trên PHP> = 5.6 thay đổi always_populate_raw_post_data
thành -1.
Phần mở rộng PHP
Joomla chứa một số mã để giải quyết các phần mở rộng PHP bị thiếu. Điều này sẽ luôn chậm hơn các phần mở rộng. Đối với một sự cải thiện hiệu suất khá cài đặt phần mở rộng sau: mbstring
, zip
,ftp
Máy chủ web
Kích hoạt gzip
Cho phép nén phía máy chủ giao dịch băng thông cho tài nguyên CPU. Đối với hầu hết các trang web ngoài đó đây là cuộc gọi đúng. Hãy cẩn thận để chỉ nén dữ liệu văn bản, nén dữ liệu nhị phân sẽ cung cấp cho bạn cú đánh CPU mà không có lợi thế về băng thông. Bạn cũng có thể kích hoạt tính năng nén trong cài đặt Joomla nhưng sẽ tốt hơn nếu bạn để máy chủ xử lý việc này.
Giải nén tài nguyên tĩnh
Tôi không nói về minfication (mặc dù điều này cũng có ích) nhưng bạn có thể định cấu hình Nginx và Apache cho máy chủ đã nén tài nguyên, loại bỏ hiệu quả CPU bị tấn công khi nén gzip. Điểm thưởng: Sử dụng Zopfli cho các tệp nhỏ hơn.
Sử dụng FastCGI cho PHP
Cụ thể hơn bạn nên sử dụng php-fpm
. Điều này ngăn khởi động PHP khi trình duyệt yêu cầu tệp không phải PHP.
Sử dụng các tiêu đề bộ đệm phù hợp
Sử dụng Expires
tiêu đề có thể làm giảm đáng kể các tài nguyên máy chủ cần thiết. Sau khi tất cả các yêu cầu nhanh nhất là một yêu cầu không bao giờ được thực hiện.
Apache
Nói chung, tôi khuyên bạn nên sử dụng Nginx cho các trang web hiệu suất cao. Nếu bạn thực sự cần sử dụng Apache vì một số lý do tôi đã nhận được một mẹo tiền thưởng:
Vô hiệu hóa AllowOverride
Cài đặt AllowOverride
để None
ngăn chặn nhiều đĩa IO và
Joomla
Không sử dụng Chế độ FTP
Mặc dù nó không ảnh hưởng đến người dùng của bạn khi đọc trang web, nhưng nó sẽ làm chậm một số thao tác như cài đặt tiện ích mở rộng.
Tắt các tiện ích mở rộng không sử dụng
Điều này đặc biệt dành cho Plugins, nhiều trong số này được chạy theo mọi yêu cầu. Vô hiệu hóa các menu và thành phần chủ yếu hữu ích khi liệt kê các phần mở rộng và loại menu có sẵn. Ngoài ra, hãy dành 5 phút để đi qua các tiện ích mở rộng đi kèm với lõi Joomla và vô hiệu hóa những tiện ích bạn không sử dụng.
Tắt chuẩn bị nội dung
Nếu bạn sử dụng nhiều mô-đun tùy chỉnh ( mod_custom
không phải tùy chỉnh như tự viết), hãy kiểm tra xem bạn có thể tắt Chuẩn bị nội dung trong đó không. Điều này tiết kiệm một số xử lý.
Sử dụng bộ nhớ đệm
Nếu bạn nghiêm túc về hiệu suất, bạn sẽ muốn bật bộ đệm. Đặc biệt hữu ích để đọc các trang web nặng với nhiều người dùng ẩn danh. Người dùng đã đăng nhập sẽ bỏ qua hầu hết bộ nhớ cache, nếu bạn có nhiều trong số này thì hiệu quả sẽ không lớn.
Sử dụng một trình xử lý phiên thay thế
Bằng cách sử dụng trình xử lý phiên thay thế, bạn có thể giải phóng cơ sở dữ liệu của mình cho những điều quan trọng hơn. Tôi không khuyến nghị tệp (được gọi một cách khó hiểu là Không có trong cài đặt Joomla) vì điều đó sẽ mang lại một lần nữa tăng IO đĩa. Sử dụng APC có khả năng là fastet nhưng làm tăng nguy cơ mất tất cả dữ liệu phiên. Tầng giữa bên phải là Memcache. Mặc dù điều này đòi hỏi một quy trình bổ sung, nhưng nó đáng tin cậy hơn APC và nhanh hơn nhiều so với việc lưu trữ tất cả dữ liệu trong cơ sở dữ liệu
Giữ cho trang web của bạn đơn giản
Bạn có thực sự cần nút Facebook đó không? Điều gì về biểu tượng dễ thương mà không ai từng thấy bởi vì nó một phần ẩn đằng sau một số biểu ngữ? Trang web của bạn càng ít hiển thị thì nó sẽ càng nhanh. Ngoài ra bất cứ nơi nào có thể sử dụng CSS3 thay vì hình ảnh.
Điều khoản khác
Đặt một hình đại diện
Nhờ một quyết định có từ trình duyệt Internet Explorer 4.0, hãy yêu cầu một tệp được gọi favicon.ico
bất cứ khi nào người dùng truy cập trang web của bạn. Nếu bạn không có điều này gây ra IO không cần thiết, vì phản hồi 404 không được lưu trong bộ nhớ cache. Chỉ định biểu tượng trang web của bạn bằng thẻ meta HTML hoặc thêm tệp được gọi favicon.ico
vào thư mục gốc. Đừng muốn một favicon? Đặt một PNG trong suốt với kích thước 1x1 pixel ở vị trí đó. Lưu ý rằng phần mở rộng vẫn cần phải được .ico
.
Tối ưu hóa hình ảnh của bạn
Thật tuyệt vời khi tiết kiệm loại người ta có thể nhận được bằng cách tối ưu hóa hình ảnh, đặc biệt là các tệp PNG. Có nhiều công cụ có sẵn cho bất kỳ hệ điều hành nào, cá nhân tôi sử dụng ImageOptim có sẵn cho OS X. Hình ảnh cốt lõi của Joomla đã được tối ưu hóa nhưng đi qua hình ảnh của riêng bạn, đặc biệt là các mẫu rất quan trọng. Bạn cũng có thể kiểm tra các tiện ích mở rộng bạn đang sử dụng. Nếu chúng là nguồn mở, tại sao bạn không đóng góp yêu cầu kéo có chứa hình ảnh mới được tối ưu hóa?
Tiên tiến
Nếu bạn thực sự muốn đi ra ngoài, hãy xem xét đặt Varnish trước trang web của bạn. Nó lưu trữ các yêu cầu đến trang web của bạn và nếu có thể phục vụ chúng từ bộ nhớ cache của chính nó, không bao giờ nhấn Joomla. Đó là một công cụ phức tạp nhưng có rất nhiều sức mạnh. Joomla sẽ không tận dụng các chức năng nâng cao như Edge Side Bao gồm (ESI) nhưng mã của riêng bạn thì có thể.