Một số thủ thuật để tối ưu và bảo mật Joomla
1. Bật tính năng GZIP.
GZIP là một tính năng dùng để nén các thông tin xuất ra
Bạn phải chắc chắn Server có hỗ trợ GZIP. Vào menu System --> System Info --> PHP Info để kiểm tra.
Để bật GZIP, vào menu Site --> Global Configuration --> tab Server --> chọn GZIP Page Compression
2. Bật tính năng CACHE hệ thống.
Vào menu Site --> Cache --> chọn Caching.
Chọn Cache Folder - nơi lưu tữ các file cache (nhớ CHMOD sang 777)
Chọn Cache Time: Thời gian lưu trữ các file cache (mặc định là 900" = 15').
Lưu ý đây mởi chỉ là cache của các bài viết
3. Bật tính năng CACHE cho các module.
Chúng ta có rất nhiều module cho phép sử dụng tính năng cache, tuy nhiên chúng lại bị tắt theo chế độ mặc định và ít bạn chú ý tới điều này.
Để bật tính năng CACHE cho các module.
Vào menu Modules --> Site Modules --> chọn từng Module. Trong phần tham số Parameters, nếu tìm thấy dòng đại loại như "Enable Cache" thì hãy chọn "Yes".
4. Làm sao để xóa CACHE
Theo mặc định thời gian một bản CACHE có hiệu lực là 900 s = 15 phút. Tuy nhiên vì một lý do nào đó, bạn muốn các bài viết hoặc các module... cần được cập nhật ngay thông tin mà không phải đợi 15 phút sau.
Bạn vào menu System --> chọn Clean Content Caches để xóa các file cache của các bài viết
Bạn vào menu System --> chọn Clean All Caches để xóa tất cả các cache
Cải thiện các truy vấn SQL
Xác định phần tiền tố của các bảng.Thường là "jos_"
Mở công cụ SQL (thực hiện các truy vấn SQL)
Chạy các câu lệnh SQL tương ứng sau
Đối với Joomla! core:
ALTER TABLE `jos_categories` ADD INDEX `title_id` (`title`,`id`);
ALTER TABLE `jos_components` ADD INDEX `opt_par` (`option`, `parent`, `id`);
ALTER TABLE `jos_components` ADD INDEX `admin_opt` (`admin_menu_link`, `option`);
ALTER TABLE `jos_content` ADD INDEX `state_access` ( `state` , `access` , `publish_up` , `publish_down` , `id` , `catid` , `sectionid` , `created_by` );
ALTER TABLE `jos_core_acl_aro` ADD INDEX `val_aro_id` (`value`, `aro_id`);
ALTER TABLE `jos_core_acl_aro_groups` ADD INDEX `name_lft_rgt` (`name`, `lft`, `rgt`);
ALTER TABLE `jos_mambots` ADD INDEX `fold_acc` ( `folder`, `access`, `published`, `ordering`, `element`, `params`(20));
ALTER TABLE `jos_mambots` ADD INDEX `element` ( `element` );
ALTER TABLE `jos_menu` ADD INDEX `link_id` (`link`(30), `id`);
ALTER TABLE `jos_menu` ADD INDEX `link_pub_id` (`link`(30), `published`, `id`);
ALTER TABLE `jos_menu` ADD INDEX `pub_acc_menu` (`published`, `access`, `menutype`, `parent`,`ordering`, `id`, `name`);
ALTER TABLE `jos_sections` ADD INDEX `id,acc,pub` (`id`, `access`, `published`, `name`(20));
ALTER TABLE `jos_sections` ADD INDEX `pub_acc_id` (`published`,`access`,`id`,`name`(20));
ALTER TABLE `jos_stats_agents` ADD INDEX `agent_type` (`agent`,`type`,`hits`);
ALTER TABLE `jos_templates_menu` ADD INDEX `client_menu` (`client_id`, `menuid`, `template`);
ALTER TABLE `jos_template_positions` ADD INDEX `pos` (`position`);
ALTER TABLE `jos_users` ADD INDEX `user_pass_id` (`username`,`password`,`id`);
ALTER TABLE `jos_docman` ADD INDEX `own_pub` (`dmowner`, `published`, `approved`, `catid`, `id`);
ALTER TABLE `jos_jomcomment` ADD INDEX `content_opt` (`contentid`,`option`, `published`);
ALTER TABLE `jos_opensef_config` ADD INDEX `scope_name` (`scope`, `name`);
ALTER TABLE `jos_opensef_sef` ADD INDEX `exter_dir` (`external`, `direction`, `site_id`, `use_internal`);
Bảo vệ file Configuration.php khỏi các truy cập trái phép
Việc bảo vệ các file có nội dung quan trọng, các file cấu hình chứa các thông số của hệ thống như: tên database, tên truy nhập, mật khẩu... là rất cần thiết và phải đặc biệt lưu tâm. Trong Joomla có một file như thế - file "configuration.php". Để tăng cường bảo mật cho file "configuration.php" này có nhiều cách, tuy nhiên có một cách hay được sử dụng và đề cập trên các diễn đàn, đó là chuyển file "configuration.php" tới một nơi an toàn, tránh sự nhòm ngó của hacker. Các bước thực hiện như sau:
Giả sử Website Joomla của bạn được đặt trong thư mục "/www/public_html"
www
---|public_html
--------------|configuration.php
Chuyển file "configuration.php" ra khỏi "public_html", đặt nó vào một khu vực khác do bạn tự tạo chẳng hạn "/www/private". Đặt cho nó một cái tên mới, chẳng hạn "vinaora_joomla.conf".
www
---|private
-----------|vinaora_joomla.conf
Tạo một file "configuration.php" thay thế file cũ nhưng chứa nội dụng sau:
require( '/www/private/vinaora_joomla.conf' );
?>
Đừng để bất cứ khoảng trắng hoặc dòng trắng nào phía trước thẻ "" và phía sau thẻ "?>" và không được lưu nó với UTF-8 nếu không bạn sẽ nhận được thông báo lỗi, đại loại như:
Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxx/public_html/configuration.php:2) in /home/xxxxx/public_html/index.php on line 250
Thiết lập (CHMOD) quyền chỉ đọc cho file "configuration.php" mới này để đảm bảo nó không bị thay đổi nội dung.
Khi bạn cần thay đổi các thiết lập cho Joomla hãy thực hiện bằng tay đối với file "vinaora_joomla.conf"
Bảo mật trang quản trị bằng mật khẩu
Bạn muốn ngăn chặn việc truy cập trái phép vào vùng quản trị, trang administrator (phần backend trong Joomla). Có nhiều giải pháp để thực hiện việc này. Bài viết này xin giới thiệu một cách khá đơn giản nhưng lại hiệu quả với mục đích "Tăng cường thêm một rào cản trước khi truy nhập được file index.php". Áp dụng trên Hosting chạy Apache Server.
Cách thực hiện:
Copy đoạn mã sau và đặt vào đầu của file "index.php" trong thư mục "Joomla\administrator\"
$name='439581667ef694b60d58f213cccf9503';
$pass='439581667ef694b60d58f213cccf9503';
if (!isset($_SERVER['PHP_AUTH_USER'])
|| md5($_SERVER['PHP_AUTH_USER'])!==$name
|| md5($_SERVER['PHP_AUTH_PW'])!==$pass)
{
header('WWW-Authenticate');
header('HTTP/1.0 401 Unauthorized');
exit('VINAORA : Access Denied');
}
?>
Trong đó
username = vinaora
password = vinaora
CHƯƠNG 2
XÂY DỰNG ỨNG DỤNG SIÊU THỊ SÁCH TRỰC TUYẾN TRÊN CMS JOOMLA
Môi trường và công cụ để phát triển ứng dụng
Để xây dựng và phát triển ứng dụng này ta cần phải cài đặt môi trường máy ảo php và có các công cụ cần thiết như sau:
Server Apache 2.2.8 (Win32)
Bộ php 5.2.5
Bộ MySQL 5.0.51
Phiên bản mã nguồn mở Joomla ổn định
Ngoài ra chúng ta có thể cài đặt các chương trình soạn thảo: phpDesigner 2008, Macromedia Dreamweaver 8, Zend Studio - 5.5.0…
Để thuận lợi và nhanh chóng hơn, ta có thể cài bộ XAMPP 1.6.6 tích hợp tất cả server apache, php và mysql như sau:
XAMPP: dùng để giả lập máy tính của bạn thành một máy chủ web (máy tính của bạn khi được giả lập máy chủ web sẽ được gọi là: localhost, để phân biệt với các máy chủ đang hoạt động trên web là host server). Bạn vào địa chỉ sau:
http://www.apachefriends.org/en/xampp-windows.html#641.
Hình 6 : Các gói cài đặt XAMPP
Ta có thể download 1 trong 2 gói là Installer và Zip. Với gói ZIP ta chỉ cần giải nén là có thể sử dụng được ngay mà không cần cài đặt như gói Installer. Cách sử dụng của 2 gói phần mềm này về cơ bản là giống nhau.
Joomla : joomla các phiên bản được cung cấp miễn phí tại trang web http://www.joomla.org .
Hình 7 : Các phiên bản Joomla
Chọn download phiên bản 1.0.12 và download file Joomla_1.0.12-Stable-Full_Package.zip.
Hình 8 : Các gói phiên bản Joomla 1.0
Chia sẻ với bạn bè của bạn: |