meo joomla

76
1.Cấu hình Joomla để gửi/nhận mail với GMail Thursday, 02 July 2009 08:45 Việc cấu hình Joomla để cho phép gửi/nhận mail (email) thông qua tài khoản GMail hay một tài khoản mail của một hãng bất kỳ có sử dụng giao thức bảo mật SSL/TLS đã được cộng đồng Joomla đề cập và bàn tán nhiều, nhưng phải cho đến phiên bản Joomla 1.5.12 được phát hành ngày hôm qua (01/7/2009), tính năng này mới chính thức có mặt trong mục cấu hình Global Configuration. Và đây thực sự là tin vui đối với các webmaster, vì hiện có khá nhiều người đang phải sử dụng host free hay những host không hỗ trợ gửi/nhận mail. Thao tác cấu hình khá đơn giản. Đầu tiên các bạn mở trang quản trị, mở mục "Global Configuration" chọn tab "Server", sau đó tìm phần "Mail Settings" và cấu hình như sau: Mailer: SMTP Server Mail From: Địa chỉ thư của bạn From Name: Tiêu đề thư SMTP Authentication: Yes SMTP Security: SSL SMTP Port: 465 SMTP Username: Your Gmail username SMTP Password: Your Gmail password SMTP Host: smtp.gmail.com

Upload: vo-thi-dung

Post on 14-Jun-2015

2.287 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Meo Joomla

1.Cấu hình Joomla để gửi/nhận mail với GMailThursday, 02 July 2009 08:45

Việc cấu hình Joomla để cho phép gửi/nhận mail (email) thông qua tài khoản GMail hay một tài khoản mail của một hãng bất kỳ có sử dụng giao thức bảo mật SSL/TLS đã được cộng đồng Joomla đề cập và bàn tán nhiều, nhưng phải cho đến phiên bản Joomla 1.5.12 được phát hành ngày hôm qua

(01/7/2009), tính năng này mới chính thức có mặt trong mục cấu hình Global Configuration. Và đây thực sự là tin vui đối với các webmaster, vì hiện có khá nhiều người đang phải sử dụng host free hay những host không hỗ trợ gửi/nhận mail.

Thao tác cấu hình khá đơn giản.

Đầu tiên các bạn mở trang quản trị, mở mục "Global Configuration" và chọn tab "Server", sau đó tìm phần "Mail Settings" và cấu hình như sau:

Mailer: SMTP Server Mail From: Địa chỉ thư

của bạn From Name: Tiêu đề

thư SMTP Authentication:

Yes SMTP Security: SSL SMTP Port: 465 SMTP Username: Your Gmail username SMTP Password: Your Gmail password SMTP Host: smtp.gmail.com

Chúc các bạn thành công.

Trong trường hợp bạn vừa nâng cấp lên Joomla 1.5.12, có thể phần "Mail Settings" không xuất hiện đúng như trên thì bạn chỉ cần chỉnh sửa một thông số bất kỳ nào đó, sau đó nhấn nút [Save] để Joomla! nhận các thông số mới.

Keyword:

Page 2: Meo Joomla

joomla, mail, email, gmail, smtp, ssl, tls, global, configuration, server, username, password, host

cấu hình, gửi, nhận, thư

2.Cách trình bày trang Homepage (Frontpage)

Homepage trong Joomla! được cài đặt và thể hiện thông qua một thành phần đặc biệt đó là com_frontpage. Do vậy trong Joomla! trang homepage còn được gọi là Front Page. Thông qua trang Front Page bạn có thể trình bày một số cách: dạng blog, dạng kết hợp blog + chia cột... Với những ai mới làm quen với Joomla, các tham số đi kèm trang Frontpage như: leading, intro, colums, links... có thể gây khó khăn. Tuy nhiên hi vọng với một vài bước đơn giản dưới đây bạn hoàn toàn có thể làm chủ Frontpage.

Bước 1: Đăng nhập vào trang quản trị (back-end).

VD: http://vinaora.com/administrator

Bước 2: Vào phần quản lý menu

Theo mặc định, trang Homepage được đặt trong "Main Menu". Mở menu Menus --> Main Menu --> chọn "Home" và quan sát các tham số tùy chỉnh bên tay phải (mục "Parameters").

VD bạn thiết lập như hình bên, bạn sẽ có kết quả như dưới đây:

Page 3: Meo Joomla

Lưu ý:

Để quản lý các bài viết của trang FrontPage bạn mở menu "Content" --> "Front Page Manager"

Để có trang Homepage giống như VnExpress (các bài viết được trình bày lần lượt theo các chủ đề) bạn cần tìm và cài đặt một component chẳng hạn như: D4Ezine, iJoomla...

Một vài câu hỏi liên quan: Điều chỉnh trang Frontpage như thế nào? Edit trang Frontpage ở đâu? Chỉnh cột ở frontpage? Chuyển blog content từ 2 sang 1? Bố cục Front page (intro, read more)

Keyword: frontpage, front-page, Front Page

Page 4: Meo Joomla

3. Quy trình tạo một bài viết trong Joomla!

Content (bài viết) trong Joomla! được tổ chức theo mô hình phân cấp và chỉ gồm 2 mức. Mức cao nhất: Section (phần/mục), mức tiếp theo: Category (chuyên mục) là mức con của Section.

Bạn có thể xem sơ đồ dưới đây hoặc hình vẽ mô tả bên cạnh.

|Section|--------|Category|-----------------|Content 1|-----------------|Content 2|

Do vậy để tạo một bài viết chúng ta cần thực hiện tối đa là 3 bước.

Bước 1. Tạo Section (phần/mục). Bước 2: Tạo Category (chuyên mục). Bước 3: Tạo Content (bài viết).

Chú ý: Khi tạo Website nên định hình và tạo ngay các phần/mục (Section) và các chuyên

mục (Category) tương ứng. Joomla! chỉ hỗ trợ phân cấp thành 2 mức như trên. Do vậy nếu muốn chia thành

nhiều mức hơn bạn cần tìm một component hỗ trợ từ site: http://extensions.joomla.org

Page 5: Meo Joomla

Keyword: bài viết, chuyên mục, content, section, category 

4. Khắc phục lỗi không thể upload ảnh

Trình quản lý ảnh "Media Manager" của Joomla có một chức năng rất hay: Cho phép upload nhiều ảnh cùng lúc và hiển thị mức độ % hoàn thành công việc. Tuy nhiên trong trường hợp nếu như bạn cài đặt phiên bản Flash Player 10 thì chức năng trên sẽ bị vô hiệu hóa, không có bất cứ một cửa sổ nào xuất hiện khi bạn nhấn vào nút [Browse Files].

Hình 01: Trình upload ảnh mặc định của Joomla không hoạt động khi cài Flash 10Hình 02: Sử dụng trình upload ảnh đơn giản (upload từng file một)

Lỗi này cũng ảnh hưởng tới tất cả các trình upload ảnh/video/flash có sử dụng công nghệ Flash chứ không riêng gì Joomla.

Để khắc phục lỗi trên có 2 cách:

Không cài đặt Flash 10 Hoặc vào Site > Global Configuration > Media Settings >  mục "Enable Flash

Uploader" chọn No

Page 6: Meo Joomla

Tắt bỏ trình upload ảnh dựa trên Flash của Joomla

Tham khảo thêm:

Vấn đề với trình upload Lỗi upload ảnh với phiên bản Flash 10 Những thay đổi về bảo mật trong phiên bản Flash 10

Keyword:

joomla, upload, flash, 10, media, media settings trình upload, ảnh, không hoạt động, vô hiệu hóa, cửa sổ, lỗi

5. Lỗi "session.save_path"

Biến session.save_path được dùng để làm gì?

Trên các Webserver chạy PHP, thông tin về phiên làm việc hiện tại của người sử dụng thường được lưu vào các file khác nhau và đặt vào một thư mục nào đó. Chẳng hạn:

thư mục "C:\wamp\tmp", "D:\xampp\tmp"... (đối với hệ thống Windows) thư mục "/tmp", "/usr/var/tmp", "/var/lib/php/session"... (đối với hệ thống

Linux)

Page 7: Meo Joomla

Thư mục mà Webserver dùng để lưu các phiên làm việc này được khai báo thông qua biến "session.save_path" và nằm trong file "php.ini" giống như dưới đây:

[Session]; Handler used to store/retrieve data.session.save_handler = files

; Path to store datasession.save_path = "c:/wamp/tmp"

; Whether to use cookies.session.use_cookies = 1

; Name of the session (used as cookie name).session.name = PHPSESSID

; Initialize session on request startup.session.auto_start = 0...

Những lỗi có thể xảy ra với biến "session.save_path"

Do biến "session.save_path" được khai báo trong file "php.ini" nên khi cài đặt cũng như khi sử dụng Joomla! có 2 khả năng lỗi có thể xảy ra:

Biến "session.save_path" chưa được thiết lập, nghĩa là có giá trị là "None" hoặc "Not Set"

Biến "session.save_path" đã được thiết lập là đường dẫn tới một thư mục nào đó, nhưng bạn lại không có quyền ghi đối với thư mục này - "Unwriteable"

Cách xử lý lỗi

Bước 1: Xác định giá trị hiện tại của biến "session.save_path"

Tạo một file "session.php" có nội dung như sau:

<?php     echo (($sp=ini_get('session.save_path')) ?$sp:( 'none' ) ); ?>

Sau đó mở link tới file này. VD: http://vinaora.com/joomla/session.php. Thông tin hiển thị trên màn hình chính là đường dẫn tới thư mục chứa session của Webserver.

Page 8: Meo Joomla

Bước 2: Thiết lập lại giá trị biến "session.save_path"

Đầu tiên tạo một thư mục (hoặc chọn một thư mục) mà bạn có quyền ghi lên nó. Thiết lập Writeable (nếu là Host Windows) hoặc CHMOD 777 (nếu là Host Linux) cho thư mục này.

Tạo một file ".htaccess" ở thư mục gốc chứa Joomla của bạn với nội dung sau:

php_value session.save_path "/duong/dan/sesion/moi"

Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến "session.save_path" bằng file ".htaccess". Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại giúp bạn.

Hoặc tạo một file "php.ini" ở thư mục gốc chứa Joomla của bạn với nội dung sau:

session.save_path = "/duong/dan/session/moi"

Nếu bạn đang làm trên LOCALHOST thì chỉ cần mở file php.ini và chỉnh sửa trực tiếp, sau đó khởi động lại Webserver.  Bạn cũng cần lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến "session.save_path" bằng file "php.ini". Hoặc bạn phải copy file này tới mọi thư mục. Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại giúp bạn. 

Hoặc mở file "configuration.php" và thêm vào đầu file đoạn mã sau:

<?php     ini_set('session.save_path','/duong/dan/session/moi'); ?>

 Lưu ý chung:

Thay "/duong/dan/session/moi" bằng đường dẫn phù hợp với Host của bạn, chẳng hạn "D:\www\vinaora.com\tmp"; "/home/vinaora/public_html/tmp", "/var/www/vinaora.com/public_html/tmp"...

Keyword:

session, save, path, session.save_path, php, php.ini, htaccess, hosting, localhost, webserver

lỗi, biến, biến session, thiết lập, đường dẫn

Câu hỏi liên quan:

Bị lỗi với biến "session.save_path"?

Page 9: Meo Joomla

Xử lý lỗi "Session save path" như thế nào?

6. Lỗi thiếu bộ nhớ "Allowed memory size of 8388608..."

Quá trình cài đặt hoặc cấu hình một thành phần mở rộng của Joomla như: component, module, mambot/plugin, template... không phải lúc nào cũng suôn sẻ. Đôi khi do thành phần mở rộng - extension gồm quá nhiều file + dung lượng lớn + hoặc thao tác cần nhiều bộ nhớ sẽ gây ra lỗi thiếu bộ nhớ và xuất hiện màn hình thông báo lỗi như sau:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 19456 bytes) in ...

Để khắc phục lỗi này chúng ta cần tăng giá trị giới hạn bộ nhớ PHP.

Giá trị giới hạn bộ nhớ của PHP mặc định là 8M = 8388608 bytes, do đó có thể thay đổi giá trị này bằng 32M chẳng hạn (bạn hoàn toàn có thể thiết lập nhiều hơn tùy theo dung lượng RAM hiện có của server)

Cách 1: Dùng file ".htaccess"

Tạo file ".htaccess" ở thư mục gốc chứa Joomla của bạn với nội dung sau:

php_value memory_limit 32M

Lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến "session.save_path" bằng file ".htaccess". Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại giúp bạn.

Cách 2: Dùng file "php.ini"

Tạo file "php.ini" với nội dung sau và đặt vào thư mục chứa Joomla

memory_limit = 32M

Nếu bạn đang làm trên LOCALHOST thì chỉ cần mở file php.ini và chỉnh sửa trực tiếp, sau đó khởi động lại Webserver. 

Lưu ý: Không phải HOSTING nào cũng cho phép bạn thiết lập lại biến "session.save_path" bằng file "php.ini". Hoặc bạn phải copy file này tới mọi thư mục. Trong trường hợp này bạn cần liên hệ trực tiếp với HOSTING và đề nghị họ thiết lập lại giúp bạn. 

Cách 3: Dùng file "configuration.php"

Thêm đoạn sau vào đầu file "configuration.php":

Page 10: Meo Joomla

<?php ini_set("memory_limit","32M");?>

Trong tình huống cài đặt thành phần mở rộng (extension)

Nếu lỗi này xảy ra khi cài đặt thành phần mở rộng bạn có thể làm như sau:

Giải nén gói thành phần mở rộng mà bạn cần cài đặt Upload lên một thư mục nào đó trên Server. Khi cài đặt, chọn cài đặt từ một thư mục chứa thành phần mở rộng (tùy chọn 2) Nhấn nút cài đặt

Keyword:

8388608, memory, memory_limit, size, fatal, error, bytes lỗi, bộ nhớ, giới hạn

Câu hỏi liên quan:

Bị lỗi bộ nhớ Lỗi 8388608 là gì? Xử lý lỗi bộ nhớ "8388608" như thế nào?

7. Lỗi đăng nhập vào Joomla có thể do những nguyên nhân nào?

Một số nguyên nhân

1. Do bộ cài đặt Joomla

Bạn nên cài đặt/nâng cấp lên bản Joomla mới nhất và nhớ backup trước khi thực hiện

Đặt câu hỏi tại http://forum.joomla.org/ hoặc http://www.joomlaviet.org/forum/

2. Do Web Server, Hosting

Hãy chắc chắn rằng Web Server của bạn đang bình thường. Hỏi Hosting xem liệu gần đây họ có cấu hình lại hay nâng cấp, cập nhật, sửa đổi gì không?

Khuyến cáo sử dụng phần mềm Web Server: WAMP hoặc XAMPP (gồm: Apache+MySQL+PHP) nếu bạn đang sử dụng localhost làm Web Serrver

Page 11: Meo Joomla

3. Do tường lửa

Hãy chắc chắn rằng phần mềm tường lửa (Norton , ZoneAlarm ...) mà bạn đang sử dụng không gây ảnh hưởng cho Joomla. Hãy thử tắt nó đi.

4. Do trình duyệt

Thử trên các máy khác nhau để kiểm tra xem có phải chỉ mình máy bạn là không vào được.

Xóa tất cả cache và cookie của trình duyệt. Sử dụng trình duyệt ở chế độ mặc định. Nên tải FireFox 2.0 và chọn cài mới để

thử.

5. Gõ sai mật khẩu

Hãy cố gắng nhớ lại mật khẩu mà bạn đã dùng. Liệu bạn có để bộ gõ tiếng Việt (hoặc một ngoại ngữ khác) trong khi gõ mật khẩu

6. Do gói ngôn ngữ cài đặt

Có thể gói ngôn ngữ của bạn không chuẩn. Bạn cần tải về gói ngôn ngữ mới nhất từ http://joomlaviet.org/

Bạn có thể xóa các gói ngôn ngữ và chỉ giữ lại gói ngôn ngữ tiếng Anh và thử đăng nhập lại.

7. Do cấu trúc database bị thay đổi

Một số bản Joomla, đặc biệt là Joomla 1.5 do đang ở giai đoạn beta nên đôi khi cấu trúc database bị thay đổi (thêm/bớt cột, thay đổi độ rộng...) do vậy cũng ảnh hưởng đến việc đăng nhập.

Giải pháp: Bạn chỉ có thể mò mẫm từng bước để xem bảng dữ liệu nào đã bị thay đổi và đưa vấn đề của mình lên http://forum.joomla.org và http://joomlaviet.org/forum

8. Do biến session.save_path

Sẽ chỉ cụ thể sau: http://joomlaportal.ru/content/view/156/53/

Một số giải pháp khác1. Mở database của bạn bằng phpMyAdmin hoặc một tool khác mà Hosting của bạn

cung cấp.2. Mở bảng jos_users3. Tìm bản ghi username=admin và thay password bằng giá trị sau

Page 12: Meo Joomla

439581667ef694b60d58f213cccf9503

Đăng nhập lại hệ thống bằng tài khoản: username: admin, password: vinaora

Tham khảo:

http://www.joomlaviet.org/forum/index.php?topic=955.0 http://www.joomlaviet.org/forum/index.php?topic=1039.0 http://forum.joomla.org/index.php/topic,7452.0.html

Mẹo Joomla!8. Lỗi mất định dạng trong phần "Description" của Docman

Lỗi mất định dạng trong phần "Description" của DOCman xảy ra khi cài đặt phiên bản Joomla 1.5.x và DOCman v1.4.0 RC3 - 2003-2008. Lỗi này khiến cho toàn bộ phần "Description" mất các định dạng HTML như: In đậm, in nghiêng, màu chữ, font chữ, căn chỉnh....

Cách khắc phục:

Tìm đến dòng ~215 của file administrator/components/com_docman/classes/docman_models.class.php và thêm dấu comment //

$this->objFormatData->dmdescription = mosHTML::cleanText($objDBDoc->dmdescription);

Hoặc thay dòng ~215 của file administrator/components/com_docman/classes/docman_models.class.php

mosHTML::cleanText($objDBDoc->dmdescription);

Keyword:

docman, joomla, description, HTML, 1.4.0 RC3, 1.5 định dạng, mất định dạng

Câu hỏi liên quan:

Lỗi phần "Description" trong DOCMan? Trình soạn thảo (Editor) trong DOCMan không hoạt động

9. Cách xác định đường dẫn tuyệt đối {absolute_path}

Page 13: Meo Joomla

Trong một số trường hợp cần xác định đường dẫn tuyệt đối tới một thư mục hoặc file nào đó. Chẳng hạn, phải xác định đường dẫn tuyệt đối tới thư mục chứa Joomla trên Website của bạn để điền vào thông số $mosConfig_absolute_path (Joomla 1.0.x) hoặc $absolute_path (Joomla 1.5.x) trong file "configuration.php", bạn có thể làm như sau:

Tạo một file "info.php" nằm cùng mức với file "configuration.php"  có nội dung như sau:

<?php $p = getcwd(); echo $p;?>

hoặc 

<?php $p = dirname(__FILE__); echo $p;?>

hoặc

<?php phpinfo();?>

Sau đó mở trình duyệt và gõ vào địa chỉ tới file này.

VD: http://yoursite/info.php, http://vinaora.com/joomla/info.php

Trường hợp sử dụng hàm getcwd(), hoặc dirname(__FILE__) đường dẫn sẽ hiển thị trên màn hình. Còn nếu sử dụng hàm phpinfo() thì tìm thông số SCRIPT_FILENAME để biết đường dẫn tới file info.php nói trên.

Nếu:

SCRIPT_FILENAME = '/home/vinaora/httpdocs/info.php'

thì

// Trong Joomla 1.0.x$mosConfig_absolute_path = '/home/vinaora/httpdocs';$mosConfig_cachepath = '/home/vinaora/httpdocs/cache';

// Trong Joomla 1.5.xvar $absolute_path = '/home/vinaora/httpdocs'; var $log_path = '/home/vinaora/httpdocs/logs';var $tmp_path = '/home/vinaora/httpdocs/tmp';

Page 14: Meo Joomla

Keyword:

xác định, đường dẫn, tuyệt đối, absolute_path, mosConfig_absolute_path, configuration.php

Câu hỏi liên quan:

Làm sao xác định đường dẫn $mosConfig_absolute_path? $mosConfig_absolute_path là gì? Khai báo biến $mosConfig_absolute_path trong file "configuration.php" như thế

nào?

10. Chỉ hiển thị vùng {mainbody} hay {component} của một Website Joomla

Để hiển thị vùng {mainbody} hay vùng {component} của một Website Joomla 1.5 mà không có bất cứ một module nào và cũng không áp dụng định dạng do file CSS quy định bạn có thể sử dụng mẹo sau:

Thêm "?tmpl=component" hoặc "&tmpl=component" và phía cuối đường link của một trang bất kỳ mà bạn muốn hiện vùng {mainbody} / {component}.

Thí dụ: Nếu muốn hiển thị vùng {mainbody} / {component} của website community.joomla.org bạn chỉ cần thêm "?tmpl=component" vào phía cuối của đường link để có link dạng như sau:

http://community.joomla.org/?tmpl=component.

Page 15: Meo Joomla

Vùng {mainbody} / {component} là vùng (P) trong hình trên, nơi sẽ nạp component của trang.

Trong trường hợp bạn lại không muốn mọi người xem được vùng {mainbody} /{component} của Website bạn có thể sử dụng đoạn mã sau, đặt vào file .htaccess.

Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} tmpl=RewriteRule ^(.*)$ http://vinaora.com/index.php [F,L]

Chú ý: Thay http://vinaora.com bằng địa chỉ Website của bạn. Và nếu muốn chuyển hướng về trang chủ thì thay [F,L] bằng [R,L] (F: Fobridden, R: Redirect, L: Last Rule)

Tham khảo thêm:

How to view just your component in Joomla! 1.5

Keyword:

chỉ hiển thị, mainbody, component, tmpl, tmpl=component

11. Hack com Search: Bỏ chức năng sắp thứ tự

Page 16: Meo Joomla

Để bỏ tính năng sắp thứ tự khi tìm kiếm (một tính năng ít được sử dụng và không cần thiết) của Joomla! bạn chỉ cần vài phút thực hiện theo hướng dẫn dưới đây:

Đối với Joomla 1.5.x

 

Tìm file "\components\com_search\views\search\tmpl\default_form.php" --> dòng ~23 và cho đoạn mã vào cặp thẻ chú thích

<!--    <tr>        <td colspan="3">            <label for="ordering">                <?php echo JText::_( 'Ordering' );?>:            </label>            <?php echo $this->lists['ordering'];?>        </td>    </tr>-->

 Đối với Joomla 1.0.x

Tìm file "\components\com_search\search.html.php" --> dòng ~59 và cho đoạn mã vào cặp thẻ chú thích

Page 17: Meo Joomla

<!--    <tr>        <td colspan="3">            <label for="search_ordering">                <?php echo _CMN_ORDERING;?>:            </label>            <?php echo $lists['ordering'];?>        </td>    </tr> -->

Keyword:

search, tìm kiếm, ordering 

12. Cấm xem vị trí các module trên Template

Theo mặc định, các Website Joomla đều cho phép xem vị trí các module của Template theo dạng đường dẫn

http://domain/index.php?tp=1 hoặc http://domain/?tp=1

VD: http://joomla.org/?tp=1

Để cấm (vô hiệu hóa)  tính năng trên bạn chỉ cần thêm các dòng sau vào file ".htaccess" (được đặt ở thư mục chứa Joomla - cùng mức với file configuration.php)

Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} tp=RewriteRule ^(.*)$ http://vinaora.com/index.php [F,L]

Dòng 1 & 2 nếu có rồi thì thôi.Thay http://vinaora.com/index.php = link mà các bạn muốnF: Fobridden (Còn nếu nếu muốn chuyển hướng về trang chủ thì thay F = R: Redirect)L: Last rule

Đây cũng là cách để chặn lọc và chuyển hướng các chuỗi không mong muốn.

Hosting phải hỗ trợ file ".htaccess" và mod_rewrite phải được bật

Tham khảo thêm

http://www.joomlaviet.org/forum/viewtopic.php?f=33&t=5511 http://www.joomlaviet.org/forum/viewtopic.php?f=5&t=6350

Page 18: Meo Joomla

Keyword

module, vị trí, templae, .htaccess

13. Lỗi mất ký tự tiếng Việt trong tiêu đề Joomla 1.5

Cách khắc phục

Bước 1: Tìm file [Joomla1.5]/libraries/joomla/filter/filteroutput.php Bước 2: Mở file này bằng trình soạn thảo Notepad++ (miễn phí, nhanh, gọn...). Bước 3: Save file bằng định dạng UTF-8 Without BOM: cho phép lưu các ký tự

UTF-8 và quan trọng là không có ký tự đánh dấu UTF8 ở đầu file. Xem hình để rõ hơn

Bước 4: Tìm đến ~ dòng 87 và chèn thêm 10 dòng mã sau (dòng 88-97):

Page 19: Meo Joomla

10 dòng mã cần chèn:

// Hacked by VINAORA.COM$utf8characters = 'à|a, ả|a, ã|a, á|a, ạ|a, ă|a, ằ|a, ẳ|a, ẵ|a, ắ|a, ặ|a, â|a, ầ|a, ẩ|a, ẫ|a, ấ|a, ậ|a, đ|d, è|e, ẻ|e, ẽ|e, é|e, ẹ|e, ê|e, ề|e, ể|e, ễ|e, ế|e, ệ|e, ì|i, ỉ|i, ĩ|i, í|i, ị|i, ò|o, ỏ|o, õ|o, ó|o, ọ|o, ô|o, ồ|o, ổ|o, ỗ|o, ố|o, ộ|o, ơ|o, ờ|o, ở|o, ỡ|o, ớ|o, ợ|o, ù|u, ủ|u, ũ|u, ú|u, ụ|u, ư|u, ừ|u, ử|u, ữ|u, ứ|u, ự|u, ỳ|y, ỷ|y, ỹ|y, ý|y, ỵ|y, À|A, Ả|A, Ã|A, Á|A, Ạ|A, Ă|A, Ằ|A, Ẳ|A, Ẵ|A, Ắ|A, Ặ|A, Â|A, Ầ|A, Ẩ|A, Ẫ|A, Ấ|A, Ậ|A, Đ|D, È|E, Ẻ|E, Ẽ|E, É|E, Ẹ|E, Ê|E, Ề|E, Ể|E, Ễ|E, Ế|E, Ệ|E, Ì|I, Ỉ|I, Ĩ|I, Í|I, Ị|I, Ò|O, Ỏ|O, Õ|O, Ó|O, Ọ|O, Ô|O, Ồ|O, Ổ|O, Ỗ|O, Ố|O, Ộ|O, Ơ|O, Ờ|O, Ở|O, Ỡ|O, Ớ|O, Ợ|O, Ù|U, Ủ|U, Ũ|U, Ú|U, Ụ|U, Ư|U, Ừ|U, Ử|U, Ữ|U, Ứ|U, Ự|U, Ỳ|Y, Ỷ|Y, Ỹ|Y, Ý|Y, Ỵ|Y, "|, &|';$replacements = array();$items = explode(',', $utf8characters);foreach ($items as $item) {    @list($src, $dst) = explode('|', trim($item));    $replacements[trim($src)] = trim($dst);}$str = trim(strtr($str, $replacements));// End Hack

Bước 5: Save file lần cuối và kiểm tra

Tham khảo thêm

Joomla 1.5 Stable và vấn đề tiêu đề tiếng Việt utf-8

Keyword:

joomla, lỗi, tiếng Việt, ký tự, UTF-8, utf8

Page 20: Meo Joomla

14. Thay đổi cách hiển thị tiêu đề bài viết trong Joomla

Tiêu đề của bài viết trong Joomla có thể ở các dạng sau:

Dạng 1: Tên site - Tên bài viết (VD: VINAORA - Hướng dẫn cài đặt Joomla 1.5)

Dạng 2: Tên bài viết - Tên site (VD: Hướng dẫn cài đặt Joomla 1.5 - VINAORA)

Dạng 3: Tên bài viết (VD: Hướng dẫn cài đặt Joomla 1.5)

Nếu bạn đang sử dụng

Joomla 1.5

Tìm đến file [Joomla1.5]\libraries\joomla\document\html\renderer\head.php ~ dòng 61

$strHtml = $tab . '<title>' . htmlspecialchars($document->getTitle()) . '</title>' . $lnEnd;

Nếu muốn ở dạng 1 thay bằng

$strHtml = $tab . '<title>' . $mainframe->getCfg('sitename') . ' - ' . htmlspecialchars($document->getTitle()) . '</title>' . $lnEnd; // dạng 1

Nếu muốn ở dạng 2 thay bằng

$strHtml = $tab . '<title>' . htmlspecialchars($document->getTitle()) . ' - ' . $mainframe->getCfg('sitename') . '</title>' . $lnEnd; // dạng 2

Nếu muốn ở dạng 3 thay bằng

$strHtml = $tab . '<title>' . htmlspecialchars($document->getTitle()) . '</title>' . $lnEnd; // dạng 3

Joomla 1.0.x

Tìm đến file [Joomla1.0]/includes/joomla.php ~ dòng 507

$this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ' - '. $title : $GLOBALS['mosConfig_sitename'];

Nếu muốn ở dạng 1 thay bằng

$this->_head['title'] = $title ? $title. ' - '. $GLOBALS['mosConfig_sitename'] : $GLOBALS['mosConfig_sitename']; // dạng 1

Page 21: Meo Joomla

Nếu muốn ở dạng 2 thay bằng

$this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ' - ' . $title : $GLOBALS['mosConfig_sitename']; // dạng 2

Nếu muốn ở dạng 3 thay bằng

$this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] : $GLOBALS['mosConfig_sitename']; // dạng 3

Tham khảo thêm:

Thay đổi cách hiển thị của Joomla Title: http://www.joomlaviet.org/forum/index.php/topic,4428.0.html

Keyword:

Joomla, joomla 1.5, joomla 1.0, title, tiêu đề, bài viết, head

15. Tao đường dẫn tắt tới trang quản trị

Thông thường để truy cập vào trang quản trị của Joomla! chúng ta sử dụng đường dẫn: http://your-domain/administrator

VD: http://vinaora.com/administrator

Để không phải gõ một cụm dài "administrator" phía sau domain, ta có thể tạo một đường dẫn tắt chẳng hạn

http://vinaora.com/123 -> và được chuyển hướng tới --> http://vinaora.com/administrator

Cách thực hiện như sau:

Tạo file .htaccess nằm ở thư mục gốc chứa Joomla! (hoặc thêm vào phía cuối file này nếu đã có) nội dung sau:

Redirect /123 http://your-domain/administrator

Chú ý:

Nếu Website của bạn có dạng http://you-domain/joomla (VD: http://vinaora.com/joomla) thì bạn cần gõ nội dung sau:

Page 22: Meo Joomla

Redirect /joomla/123 http://your-domain/administrator

Cảnh báo:

Chỉ áp dụng cho Website chạy trên Apache và có hỗ trợ file .htaccess

16. Bỏ dòng chữ "Welcome to the Frontpage"

Bỏ dòng chữ "Welcome to the Frontpage" trong Joomla 1.5

Đăng nhập vào trang quản trị (back-end)

VD: http://vinaora.com/administrator

Mở menu chứa Front Page

Mở menu Menus --> Main Menu --> chọn mục Parameters - System bên tay phải.

Tìm dòng "Show Page Title" chọn "No"

Bỏ dòng chữ "Welcome to the Frontpage" trong Joomla 1.0.x

Đăng nhập vào trang quản trị (back-end)

Page 23: Meo Joomla

VD: http://vinaora.com/administrator

Mở menu chứa Front Page

Mở menu Menus --> Main Menu --> chọn mục Parameters bên tay phải.

Tìm dòng "Page Title" chọn "Hide"

Các câu hỏi liên quan: Làm sao xóa bỏ dòng "Welcome to the Frontpage"? Làm sao xóa "Welcome to the Frontpage"?

Keyword: welcome, frontpage, Frontpage

17. Bỏ dòng "Tác giả" / "Ngày đăng" khỏi các bài viết

Bước 1: Đăng nhập vào trang quản trị (back-end)

VD: http://vinaora.com/administrator

Bước 2: Thiết lập

Mở menu Content - Article Manager.

Page 24: Meo Joomla

Nhấn vào nút "Preferences" ở góc trên bên phải.

Trong hộp thoại xuất hiện tìm đến mục "Author Name" (tên tác giả), "Created Date and Time" (ngày giờ tạo bài viết), "Modified Date and Time" (ngày giờ chỉnh sửa bài viết) và chọn "Hide" để ẩn, ngược lại chọn "Show".

Tham khảo thêm: http://siteground.com

Page 25: Meo Joomla

18. Tên template, đường dẫn, và Base URL trong Joomla 1.5

Template trong Joomla! 1.5 thường được lưu trong thư mục "\templates" với cấu trúc như sau:

\templates----------\{tên_template}------------------------\index.php File chính của template------------------------\templateDetails.xml Thông tin về template------------------------\template_thumbnail.png Ảnh chụp template------------------------\params.ini Các tham số hỗ trợ------------------------\index.html Chống liệt kê thư mục------------------------\favicon.ico Biểu tượng nhỏ hiện trong thanh Address

------------------------\CSS\template.css File CSS chính----------------------------\template_rtl.css Cho các site có chữ đọc từ phải sang trái

------------------------\images Thư mục ảnh dùng cho template

Mở file "index.php" và gõ các dòng mã sau để kiểm tra

Tên template đang dùng

<?php echo $mainframe->getCfg('sitename');?>

Địa chỉ Email của Administrator

<?php echo $mainframe->getCfg('mailfrom');?>

Thư mục chứa template

<?php echo $this->template?>

Base URL

<?php echo JURI::base();?>

19. Xem vị trí các module trên template

Page 26: Meo Joomla

Để xem vị trí của các module trên template bạn chỉ cần thêm đoạn "?tp=1" hoặc "index.php?tp=1" sau vào phía sau tên domain của bạn.

VD:

http://vinaora.com/joomla/index.php?tp=1 http://joomla.org?tp=1

20. Thay template không cần đăng nhập

Đôi khi bạn cần kiểm tra một Website có làm việc tốt với template nào đó không mà không cần phải vào trang quản trị bạn có thể sử dụng mẹos sau:

Đối với Joomla 1.0.x

Thêm phần sau "?jos_change_template=new_template_name" vào phía sau địa chỉ Website của bạn.

VD:

http://joomla.org/?jos_change_template=rhuk_solarflare_ii http://joomla.org/?jos_change_template=madeyourweb

Lưu ý: Chỉ áp dụng cho dòng Joomla! 1.0.x

Đối với Joomla 1.5.x

Page 27: Meo Joomla

Thêm phần sau "?template=new_template_name" vào phía sau địa chỉ Website của bạn.

VD:  

http://demo.joomlaspan.com/demo15/?template=beez http://demo.joomlaspan.com/demo15/?template=rhuk_milkyway   http://joomlademo15.com/?template=beez http://joomlademo15.com/?template=rhuk_milkyway  

21. Backup database với LazyBackupMonday, 29 June 2009 09:57

Trong các cách để backup database thì plugin LazyBackup (hay Lazy Backup 2) là một giải pháp sao lưu dữ liệu khá hay và được nhiều người sử dụng. Với nhiều tùy chọn như: Tự động backup và gửi vào một hoặc nhiều email cùng lúc, hẹn giờ backup, không cần những thao tác phức tạp hoặc đòi hỏi kỹ năng hiểu biết cao về "cron" của Unix hay "scheduled tasks" của Windows, hỗ trợ chuẩn nén gzip và bảo vệ bằng mật khẩu, dễ dàng cài đặt và quan trọng là miễn phí;

Plugin LazyBackup xứng đáng là một món đồ không thể thiếu trong kho extensions của các fan Joomla.

Download plugin LazyBackup

Link download: LazyBackup

Cài đặt plugin LazyBackup

01:13: Mở menu "Extensions"

01:16: Chọn mục "Install/Unistall"

01:20: Trong mục "Upload Package File", chọn plugin LazyBackup đã download

02:03: Nhấn nút [Upload Files & Install]

Cấu hình plugin LazyBackup

02:12: Mở menu "Extensions"

Page 28: Meo Joomla

02:15: Chọn mục "Plugin Manager"

02:47: Tìm đến plugin có tên "LazyBackup"

Một số tùy chọn cần lưu ý: Compress backup file?: Cho phép nén file để giảm dung lượng. Only structure: Chỉ backup cấu trúc của database. Nên chọn "No", không chọn

"Yes" Backup every x days: Backup theo chu kỳ x ngày. Backup time (00:00-23:59): Thời điểm backup trong ngày. Backup x times a day: Số lần backup 1 ngày. To Email address: Địa chỉ email để lưu file backup, sử dụng dấu phẩy "," để

phân cách giữa các email. Backup path: Đường dẫn để lưu file backup. Bạn cần điền đường dẫn ở dạng đầy

đủ. VD như: /home/vinaora.com/public_html/backup. Password for encryption: Mật khẩu để bảo vệ các file backup.

04:02: Cuối cùng trong mục "Enabled" chọn "Yes" để kích hoạt.

04:05: Nhấn nút [Save] để lưu lại kết quả.

Keyword:

joomla, lazybackup, lazy backup, backup, database, extensions, plugin

sao lưu, dữ liệu, tự động, email

Tối ưu Website Joomla!22. Tăng tốc Joomla! bằng cách tao cache cho moduleMonday, 16 March 2009 00:27

Nếu như bạn có một website đơn giản và mỗi ngày chỉ có vài trăm khách viếng thăm thì bạn không cần quan tâm tới bài viết này. Còn nếu bạn nhận thấy website của bạn luôn nạp rất chậm khi có nhiều người truy cập thì bạn cần bật tính năng "debug" của Joomla! và quan sát xem có bao nhiêu truy vấn đã được thực thi. Trung bình từ 50 trở xuống là ổn. Còn trong trường hợp có hàng trăm truy vấn thì bạn cần phải chú ý tới tính năng cache của Joomla! và

tham số cache của các module.

Tính năng debug của Joomla!

Page 29: Meo Joomla

Sau khi bật tính năng debug của Joomla! bạn sẽ trông thấy các thông tin giống như dưới đây ở phía cuối website.

Profile Information

Application afterLoad: 0.001 seconds, 0.23 MBApplication afterInitialise: 0.073 seconds, 2.16 MBApplication afterRoute: 0.087 seconds, 2.83 MBApplication afterDispatch: 0.112 seconds, 3.64 MBApplication afterRender: 0.259 seconds, 4.45 MB

Memory Usage 4702404

16 queries logged

Tham số cache là gì?

Đây là một tham số đặc biệt trong Joomla. Khi tham số này được bật, nó sẽ báo hiệu cho Joomla tạo cache cho module và giúp tăng tốc cho website. Tại sao lại như vậy? Lấy thí dụ, module của chúng ta hiển thị 10 banner quảng cáo mới nhất. Nếu là một developer giỏi, chỉ cần 1 truy vấn cho module đó, còn ngược lại sẽ mất 10 truy vấn để thực thi. Đáng buồn là thực tế thì có rất nhiều module như vậy, có lẽ do các developer chỉ chú trọng tới các tính năng và chỉ muốn nhanh chóng phát hành sản phẩm tới cộng đồng mà không chú trọng tới hiệu suất thực thi.

Khi Joomla cache mô-đun, sẽ chỉ mất một lần truy vấn khi trang chứa module đó được nạp lần đầu. Còn khi có người thứ hai ghé thăm trang này, đơn giản là Joomla chỉ cần lôi nó từ cache (một file nằm trong thư mục /cache của Joomla). Không phải thực hiện bất cứ truy vấn nào nữa và do vậy giảm tải cho máy chủ và tăng hiệu suất thực thi. Truy vấn chỉ được thực hiện lại sau khi cache hết hạn (theo mặc định của Joomla là 900s) - bạn có thể thiết lập lại giá trị này trong mục Site >> Global Configuration

Cách thêm tham số Cache cho module Joomla

Page 30: Meo Joomla

Bước 1: Chỉnh sửa file XML của module

Bạn thêm vào đoạn mã sau:

<params group="advanced">    <param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">        <option value="1">Use global</option>        <option value="0">No caching</option>    </param>    <param name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" /></params>

Bước 2: Bật tính năng cache của module

Thuật ngữ:

Module (mô-đun) là một trong các thành phần mở rộng của Joomla thường được dùng để hiện thị dữ liệu (VD: các tin bài mới nhất, các tin được xem nhiều nhất...)

Cache / Caching: tính năng tạo bộ nhớ đệm trong Joomla! để giảm số truy vấn và tăng tốc độ thực thi

Debug: tính năng gỡ lỗi trong Joomla!

Keyword:

 joomla, module, cache, caching, debug tăng tốc, tốc độ, nhanh, chậm, truy vấn, tính năng, bộ nhớ đệm, gỡ lỗi

23. Những điều cần tránh khi tối ưu Joomla (Joomla SEO)

1. Sử dụng một danh sách các từ khóa trong tiêu đề hoặc thẻ meta của bài viết

VD: Nếu bạn có một tiêu đề bài viết là "seo, sef, search engine, tối ưu, rank, joomla" thì chắc chắn các máy tìm kiếm (search engine) sẽ coi đó là các từ khóa phân biệt và đánh giá thấp bài viết của bạn.

Page 31: Meo Joomla

Vì vậy thay vì cố tình spam các máy tìm kiếm, bạn hãy đặt một tiêu đề thật tự nhiên và phản ánh chân thực bài viết của mình. Nếu thực sự cần đưa một số từ khóa vào tiêu đề, bạn nên phân tách chúng bằng dấu gạch ngang "-". Ví dụ: "Tối ưu (seo-sef) cho Joomla"

2. Không hợp nhất 2 tên miền "có -www" và "không có -www"

Chẳng hạn bạn có tên miền là vinaora.com, bạn sẽ cần cấu hình để các máy tìm kiếm đều coi http://vinaora.com và http://vww.vinaora.com là một mà không phải là hai địa chỉ khác nhau.

Bạn có thể sử dụng file .htaccess để thực hiện công việc trên.

3. Không kiểm tra danh mục các bài viết mà các máy tìm kiếm đã lập chỉ mục

Bạn nên thường xuyên kiểm tra xem các máy tìm kiếm Google, Yahoo, MSN... lập chỉ mục Website của bạn ra sao để kịp thời phát hiện các link bị hư hỏng hay không mong muốn.

Bạn có thể sử dụng dịch vụ "Google Analytics" để thống kê về hoạt động của website

24. Tăng tốc Joomla 1.0 - Cải thiện các truy vấn SQL

Joomla thường bị chỉ trích vì tạo quá nhiều truy vấn SQL tới cơ sở dữ liệu MySQL, đồng thời Joomla cũng có cơ sở dữ liệu được thiết kế chưa thực sự tốt (cụ thể là việc lập chỉ mục cho các bảng). Bài viết dưới đây sẽ hướng dẫn bạn thực hiện một vài chỉnh sửa nhỏ với cơ sở dữ liệu Joomla. Bạn sẽ thấy tốc độ của Joomla được cải thiện đáng kể.

Lưu ý: Trước khi thực hiện mọi thay đổi hãy tiến hành backup toàn bộ website.

Bước 1: Mở phpMyAdmin và chọn database Joomla

VD: http://vinaora.com/phpMyAdmin

 

Bước 2. Xác định phần tiền tố của các bảng

Thường là "jos_"

Bước 3: Mở công cụ SQL (thực hiện các truy vấn SQL)

Page 32: Meo Joomla

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`);

Đối với DocMan:

ALTER TABLE `jos_docman` ADD INDEX `own_pub` (`dmowner`, `published`, `approved`, `catid`, `id`);

Đối với JoomComment

ALTER TABLE `jos_jomcomment` ADD INDEX `content_opt` (`contentid`,`option`, `published`);

Đối với OpenSEF

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`);

Page 33: Meo Joomla

Keyword:

Joomla, tăng tốc, SQL, truy vấn

25. Tăng tốc cho Joomla 1.5 Tối ưu Template. Bật tính năng nén thông tin bằng GZip Hạn chế sử dụng các Component/Module Hạn chế sử dụng các tính năng thống kê Lựa chọn đúng công cụ SEO/SEF Bật tính năng cache của hệ thống Loại bỏ các truy vấn tồi Tránh xa việc bắc cầu (Bridge) Tối ưu Cơ sở dữ liệu

Tối ưu Template

Joomla có một hệ thống template cực kỳ phong phú và phần lớn trong số chúng đều trông rất đẹp, tuy nhiên không phải template nào cũng tuân theo chuẩn và đạt yêu cầu về tốc độ. Do vậy để tối ưu Template bạn cần chú ý một số vấn đề sau:

Thiết kế Website theo chuẩn (HTML và CSS) để các trình duyệt có thể tính toán nhanh chóng và hiển thị chính xác những gì bạn muốn hiển thị.

Tránh sử dụng các ảnh có kích thước lớn hoặc sử dụng nhiều ảnh. Giảm kích thước của các file CSS, Javascript

Tham khảo: Website Analyzer

Bật GZip

GZip là một tính năng cho phép nén các thông tin. Nó đặc biệt hữu dụng khi Joomla của bạn được host trên Server có bộ xử lý mạnh.

Han chế sử dụng các Component/Module

Nếu bạn ghé thăm http://extensions.joomla.org bạn sẽ thấy Joomla! có hàng ngàn các Component/Module, tuy nhiên không phải cái nào cũng được thiết kế tốt. Và chính những component/module này đã làm giảm tốc độ nạp website của bạn. Do vậy hãy cẩn thận trong việc lựa chọn và cài đặt các Component/Module. Hãy hạn chế xuống mức thấp nhất có thể và xóa ngay những Component/Module không dùng đến.

Han chế các tính năng liên quan tới thống kê

Page 34: Meo Joomla

Các Component/Module thống kê thường được thiết kế và hiển thị các thông tin trông rất bắt mắt tuy nhiên chúng lại là thủ phạm gây ra hàng tấn truy vấn tới MySQL. Do vậy thay vì dùng các Component/Module này bạn có thể sử dụng "Google Analytics"

Lựa chọn đúng công cụ SEO/SEF

Joomla có khá nhiều công cụ hỗ trợ SEO/SEF (tạo các link thân thiện đối với máy tìm kiếm và người sử dụng) như: OpenSEF, Artio JoomSEF, sh404SEF... Tuy nhiên không phải cứ cái nào cung cấp nhiều tính năng, cấu hình dễ dàng, hiển thị đẹp là cái mà bạn lựa chọn. Bạn cần xem xét kỹ về cách thức làm việc của các công cụ này vì hầu hết trong số chúng tạo ra hàng tấn truy vấn tới MySQL.

Bật tính năng Cache của hệ thống

Nếu bạn bật tính năng tạo Cache cho các bài viết và module, chúng sẽ được nạp nhanh hơn (các mambot không bị xử lý mỗi khi trang được nạp).

Loai bỏ các truy vấn tồi

Bật tính năng debug của website và kiểm tra các truy vấn được thực thi. Hãy luôn giữ số truy vấn thấp nhất có thể (từ 30-50 truy vấn). Xác định các Component/Module/Mambot tạo ra nhiều truy vấn để tìm cách tối ưu hoặc thông báo cho tác giả của Component/Module/Mambot đó.

Tránh xa việc bắc cầu (Bridge)

Nhiều người thích tích hợp forum (chẳng hạn SMF), thư viện ảnh (chẳng hạn Gallery2) vào Joomla thông qua một cầu nối (Bridge). Tuy nhiên Bridge lại chính là nguyên nhân làm giảm tốc độ của Joomla. Do vậy hãy cố gắng không sử dụng Bridge.

Tối ưu Cơ sở dữ liệu (Database)

Có 2 loại tối ưu: Tối ưu các bảng và tối ưu các lược đồ. Tối ưu lược đồ thì chỉ cần thực hiện một lần (Xem thêm bài: Cải thiện các truy vấn SQL). Tối ưu các bảng thì cần thực hiện thường xuyên (khi dữ liệu được thêm, chỉnh sửa hoặc xóa). Để tối ưu các bảng: Mở phpMyadmin > Chọn Joomla > chọn bảng muốn tối ưu> chọn Optimize.

(Đang hoàn thiện)

26. Bật tính năng "cache" để tăng tốc cho Joomla 1.5!

Bước 1: Đăng nhập vào trang quản trị (back-end)

Page 35: Meo Joomla

VD: http://vinaora.com/administrator

Bước 2: Thiết lập tính năng "cache"

Mở menu Site -> Global Configuration

Nhấn vào link "System"

Tìm mục "Cache Settings" và chọn "Yes" rồi nhấn nút "Save" để lưu lại

Page 36: Meo Joomla

Lưu ý

Khi bật tính năng "cache", mọi thay đổi sau này sẽ không trông thấy kết quả ngay lập tức mà phải chờ sau khoảng thời gian "cache" (mặc định là 15').

Keyword: joomla, cache, tăng tốc

27. Tạo link thân thiện SEO/SEFThursday, 24 May 2007 14:03

Thông thường sau khi cài đặt Joomla! chúng ta dễ nhận thấy các địa chỉ URL (các đường link) của Website đều rất dài và chứa các tham số trông rất phức tạp. Để có thể đơn giản hóa các đường link này, đặc biệt là việc biến các đường link này sao cho

chúng có thể chứa tiêu đề của bài viết liên quan giúp các máy tìm kiếm như Google , Yahoo dễ phát hiện ra chúng ta cần bật tính năng SEO/SEF của Joomla!

Trước khi bật tính năng SEO/SEF chúng ta có các địa chỉ URL dạng như sau:

http://vinaora.com/joomla/index.php?option=com_content&task=view&id=5&Itemid=6http://vinaora.com/joomla/index.php?Itemid=27&option=com_content

Sau khi bật tính năng SEO/SEF chúng ta có các địa chỉ URL tương ứng như sau:

http://vinaora.com/joomla/content/view/5/6http://localhost/joomla/Toi-uu-Website-Joomla/27-Tao-link-than-thien-SEO-SEF

Page 37: Meo Joomla

Bây giờ, để bật tính năng SEO/SEF các bạn thực hiện từng bước như sau:

Bước 1: Xác định dạng địa chỉ Website của bạn

Mở file htaccess.txt và tìm đến đoạn:

# Uncomment following line if your webserver's URL# is not directly related to physical file paths.# Update Your Joomla/MamboDirectory (just / for root)# RewriteBase /

Nếu Website của ban có dang http://vinaora.com/ , gõ thêm dòng: RewriteBase /

Nếu Website của ban có dang http://vinaora.com/joomla/ , gõ thêm dòng:RewriteBase /joomla

Bước 2: Đổi tên file htaccess.txt --> .htaccess

Có thể đổi tên thông qua FTP hoặc công cụ quản lý file do HOSTING cung cấp

Nếu ban chay trên localhost thì mở COMMAND

- Chuyển đến thư mục chứa Joomla bằng lệnh cd, VD:

cd C:/www/joomla

- Sau đó đổi tên

rename htaccess.txt .htaccess

Bước 3: Bật SEO/SEF:

Vào trang quản trị Joomla, VD: http://vinaora.com/joomla/administrator/

Nếu đang dùng Joomla 1.5

Chọn Global Configuration --> SEO Settings --> Search Engine Friendly URLs

Page 38: Meo Joomla

Nếu đang dùng Joomla 1.0.x (1.0.12)

Chọn Site --> Global Confirguration --> SEO

 

Bước 99: Các chú ý

Apache Server của bạn phải nạp rewrite_module.

Nếu bạn đang làm trên localhost, thì mở file httpd.conf và tìm đến dòng:

#LoadModule rewrite_module modules/mod_rewrite.so

bỏ dấu # ở đầu dòng đi

Ngoài việc bật tính năng SEO/SEF trên chính Joomla chúng ta có thể sử dụng các phần mềm của hãng thứ ba (3rd party) để có thể có được những đường link như ý muốn. VD như: Artio JoomSEF, OpenSEF, Joomla SEF Patch, JoomSEO

Bảo mật Website Joomla!28. Phân quyền trong Joomla! 1.5

Phân quyền Joomla! ở tiền sảnh (front-end)

Ở phần tiền sảnh, Joomla! chia làm 5 nhóm người dùng tương ứng với 5 mức truy cập khác nhau:

Guest (Khách): Là những người truy cập, sử dụng website nói chung, họ không sở hữu tài khoản nào trên hệ thống Joomla!

Registered (Thành viên):  Là khách sau khi đăng ký vào của hệ thống Joomla! và trở thành thành viên chính thức của hệ thống.

Author (Tác giả): Là thành viên có quyền đăng bài hoặc đăng một vài thứ khác mà hệ thống cho phép (chẳng hạn như weblink)

Editor (Người biên soạn): Là thành viên có quyền đăng, kiểm duyệt và chỉnh sửa tất cả các bài viết (thậm chí cả những bài viết không phải của họ)

Publisher (Người xuất bản): Là người biên soạn, ngoài ra có thêm quyền quyết định việc phát hành các bài viết (chính thức xuất bản lên Website hay không)

Page 39: Meo Joomla

Lưu ý 1: Có thể thiết lập để mặc định tài khoản Khách (Guest)  cũng là tài khoản Thành viên (Registered).Lưu ý 2: Bất cứ thành viên nào thuộc phần hậu sảnh (Back-End) cũng có thể thực hiện các thao tác mà người xuất bản (Publisher) có thể làm.

Phân quyền Joomla! ở hậu sảnh (back-end)

Ở phần hậu sảnh, Joomla! chia làm 3 nhóm tài khoản với 3 mức độ quyền hạn khác nhau:

Manager (Người quản lý): Là tài khoản có quyền thực hiện các thao tác quản lý cơ bản (quản lý menu, quản lý bài viết...).

Administrator (Quản trị viên): Là tài khoản có quyền thực hiện mọi thao tác, trừ việc quản lý thông tin cấu hình hệ thống, quản lý giao diện, quản lý ngôn ngữ, quản lý các tài khoản siêu quản trị.

Super Administrator (Siêu quản trị): Là tài khoản có đặc quyền cao nhất, có thể thực hiện mọi hành động.

Page 40: Meo Joomla
Page 41: Meo Joomla

Thuật ngữ:

Front-end (Frontend): Phần tiền sảnh hay phần mặt trước, phần mặt tiền phía trang chủ mà ai cũng có thể trông thấy.

Back-end (Backend): Phần hậu sảnh hay phần quản trị là vùng chỉ dành cho các thành viên có quyền quản trị hệ thống Joomla!.

ACL (Access Control List): Danh sách điều khiển truy cập (trong bài viết này sử dụng khái niệm Phân quyền cho dễ hiểu).

Keyword:

phân quyền, quản trị, khách, người đăng ký, tác giả, người biên soạn, người xuất bản, quản lý, thành viên, đăng, kiểm duyệt, tiền sảnh, hậu sảnh, tài khoản, danh sách điều khiển truy cập

joomla, administrator, manager, publisher, editor, author, registered, guest, front-end, back-end, acl, access control list

Page 42: Meo Joomla

Chú ý: Ghi rõ nguồn VINAORA.COM khi sử dụng bài viết này.

29. Bảo mật cho trang quản trị Joomla! bằng cookie

Ý tưởng của giải pháp này là: Sử dụng chứng thực bằng cookie ngăn chặn mọi truy cập trực tiếp tới vùng quản trị Joomla! bằng đường dẫn /administrator (VD: http://vinaora.com/joomla/administrator). Thay vào đó phải truy cập gián tiếp thông qua một đường dẫn chỉ mình bạn biết (chẳng hạn http://vinaora.com/joomla/secret/vinaora.php).

Bước 1: Tao một thư mục bí mật chẳng han [Joomla]/secret

Thư mục này nằm cùng mức với thư mục /administrator

Lưu ý: Bạn hoàn toàn có thể sử dụng một thư mục có sẵn (chẳng hạn thư mục /language)

Bước 2: Tao một file "vinaora.php" trong thư mục bí mật trên với nội dung sau:

< ?php $admin_cookie_code="abcdef123456"; setcookie("VinaoraAdminSession",$admin_cookie_code,0,"/"); header("Location: /administrator/index.php");?>

Page 43: Meo Joomla

Bạn nên đổi cặp giá trị cookie "VinaoraAdminSession" & "abcdef123456" bằng những chuỗi ký tự bất kỳ (gồm ký tự chữ cái và ký tự số) để tránh hacker sử dụng công cụ chèn trực tiếp cookie trên vào trình duyệt.Bạn cũng có thể sử dụng một cái tên khác chứ không nhất thiết phải là "vinaora.php" :)

Bước 3: Thêm nội dung sau tới file ".htaccess" của thư mục /administrator

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/administratorRewriteCond %{HTTP_COOKIE} !VinaoraAdminSession=abcdef123456RewriteRule .* - [L,F]

Trong trường hợp HOSTING của bạn không hỗ trợ file .htaccess hãy liên hệ với bộ phận kỹ thuật để được giúp đỡ.

Khi cần truy cập vào trang quản trị hãy gõ đường dẫn: http://yoursite/secret/vinaora.php

VD: http://vinaora.com/secret/vinaora.php

Keyword:

bảo mật, ngăn cấm, truy cập, trang quản trị, thư mục, trực tiếp, gián tiếp joomla, security, administrator, htaccess, cookie

Reference:

http://forum.joomla.org/

Chú ý: Ghi rõ nguồn VINAORA.COM khi sử dụng bài viết này.

30. Các cách CHMOD cho tệp (file) và thư mục (directory)

Để đảm bảo an toàn cho các file và thư mục trong Joomla!, tránh sự nhóm ngó của các hacker thì một trong các yêu cầu quan trọng và phải luôn lưu ý đó là CHMOD cho đúng.

Thông thường chúng ta cần thiết lập CHMOD 755 cho các thư mục và CHMOD 644 cho các file.

CHMOD là gì? CHMOD= 755 là gì? CHMOD = 644 là gì?

Page 44: Meo Joomla

CHMOD chính là thao tác thay đổi các quyền sau: "Read" (Đọc): viết tắt là "r", và được biểu diễn bằng số 4 "Write" (Ghi / Chỉnh sửa): viết tắt là "w", và được biểu diễn bằng số 2 "Execute" (Thực thi): viết tắt là "x", và được biểu diễn bằng số 1

CHMOD cùng lúc thay đổi quyền hạn trên các file/thư mục với các đối tượng sau:

"Owner" - chủ sở hữu của file/thư mục, "Group" - Nhóm mà Owner là thành viên, "Public / Others/ Everybody": những người còn lại.

CHMOD 755  (rwx r-x r-x) cho thư mục

Lưu ý: Khái niệm CHMOD không tồn tại trên hệ thống Windows, mà chỉ có trên các hệ thống Unix/Linux

CHMOD = 755 cho các thư mục có nghĩa là: 7 = 4 + 2 + 1 : Người sở hữu thư mục có quyền đọc thư mục (read); chỉnh sửa thư

mục (write);  liệt kê các thư mục và file bên trong (execute); 5 = 4 + 0 + 1 : Những người cùng nhóm chỉ có quyền đọc thư mục (read); liệt kê

các thư mục và file bên trong (execute) 5 = 4 + 0 + 1 : Những người còn lại chỉ có quyền đọc thư mục (read); liệt kê các

thư mục và file bên trong (execute)

Page 45: Meo Joomla

CHMOD 755  (rwx r-x r-x) cho thư mục

CHMOD = 644 cho các tệp (file) có nghĩa là: 6 = 4 + 2 + 0 : Người sở hữu thư mục có quyền đọc tệp (read); chỉnh sửa tệp

(write) 4 = 4 + 0 + 0 : Những người cùng nhóm chỉ có quyền đọc tệp (read) 4 = 4 + 0 + 0 : Những người còn lại chỉ có quyền đọc tệp (read)

CHMOD 644  (rw- r-- r--) cho file

Page 46: Meo Joomla

CMOD 755 cho các thư mục, CHMOD 644 cho các file bằng một file PHP

Tạo một file "chmod.php" nằm trong thư mục mà bạn cần CHMOD cho toàn bộ các file, thư mục bên trong nó với nội dung như sau:

<?php

system('find . -type d -exec chmod 755 {} \; 2>&1');system('find . -type f -exec chmod 644 {} \; 2>&1');

echo("\n\nComplete!");

?>

Sau đó thực thi các dòng lệnh trên bằng cách mở link tới file này. VD:

http://vinaora.com/joomla/chmod.php

CHMOD 755 cho các thư mục, CHMOD 644 cho các file bằng dòng lệnh

Nếu bạn là người quản trị server hoặc có thể thực thi dòng lệnh thông qua SSH thì trước tiên bạn cần chuyển đến thư mục Joomla bằng lệnh "cd" (change directory), sau đó bạn có thể dùng các lệnh sau:

find . -type d -exec chmod 755 {} \; // dùng để CHMOD cho các thư mụcfind . -type f -exec chmod 644 {} \; // dùng để CHMOD cho các file

 hoặc

find . -type d -print0 | xargs -0 chmod 0775 // dùng để CHMOD cho các thư mụcfind . -type f -print0 | xargs -0 chmod 0664 // dùng để CHMOD cho các file

hoặc

chmod -R 755 ./*                             // dùng để CHMOD tất cả các thư mục và filefind . -type f -exec chmod 644 {} \;         // dùng để CHMOD cho các file

 CHMOD bằng các trình quản lý file như "File Manager", "FileZilla"...

Page 47: Meo Joomla

 Đối với FileZilla: Chọn"Recurse into subdirectories" để áp dụng thao tác CHMOD cho cả các thư

mục con Chọn "Apply to all files and directories" để áp dụng thao tác CHMOD cho tất cả

các file và thư mục Chọn "Apply to files only" để chỉ áp dụng thao tác CHMOD cho các file Chọn "Apply to directories only" để chỉ áp dụng thao tác CHMOD cho các thư

mục

CHMOD 755  (rwx r-x r-x) cho thư mục  bằng FileZilla

 

Page 48: Meo Joomla

CHMOD 755  (rwx r-x r-x) cho thư mục bằng "File Manager"

Keyword

chmod, 755, 644, read, write, execute, PHP, FileManager, FileZilla đọc, ghi, chỉnh sửa, thực thi, dòng lệnh

Các câu hỏi liên quan

Làm thế nào để CHMOD trong Joomla? Làm sao để CHMOD cho các thư mục và file trong Joomla? CHMOD = 755 nghĩa là gì? CHMOD = 644 nghĩa là gì?

31. Chống tấn công SQL Injection trong JoomlaSunday, 03 August 2008 14:31

Hiện Joomla! ngày càng phát triển mạnh mẽ và ngày càng được ứng dụng rộng rãi ở Việt Nam với số lượng các thành phần mở rộng (extensions) từ các hãng thứ ba cũng tăng không ngừng cả về số lượng và chất lượng. Rất nhiều thành phần mở rộng (gồm

Page 49: Meo Joomla

component, module, plugin, template...) thực sự tuyệt vời và đáng được cài đặt trên mọi Website.

Tuy nhiên, có một thực tế song hành với mặt ưu điểm trên là số lượng các Website bị tấn công thông qua các lỗi lập trình bất cẩn trong các thành phần mở rộng được cài đặt thêm cũng ngày càng tăng cao. Thậm chí số lượng lỗi bị khai thác còn cao hơn cả Microsoft (theo báo cáo 6 tháng đầu năm 2008 của IBM).

Do vậy, ngay từ lúc này, bạn hãy kiểm tra lại toàn bộ hệ thống của mình để đảm bảo: Chỉ cài đặt các thành phần mở rộng thực sự cần thiết, thực sự uy tín và hãy nhờ một người có kinh nghiệm để kiểm tra các đoạn mã, mà một trong số chúng thường bị hacker khai thác - các lỗi phổ biến về truy vấn SQL (thường gọi là SQL Injection).

Đối với người sử dụng cuối (end-user):

Không dùng tiền tố mặc định 'jos_'

Khi cài đặt website, Joomla sử dụng tiền tố mặc định cho các bảng của cơ sở dữ liệu: 'jos_'. Tuy nhiên để tránh sự nhòm ngó của các haker bạn nên đổi tiền tố này.

Không dùng tài khoản mặc định 'admin'

Tạo một tài khoản quản trị (Super Administrator) mới thay vì dùng tài khoản mặc định có tên 'admin'

Đổi tên và vô hiệu hóa tài khoản mặc định 'admin' mà Joomla đã tạo ra khi cài đặt bằng cách: Mở bảng _users, tìm bản ghi có id=62, đổi username khác 'admin' và thay block bằng '1')

Page 50: Meo Joomla

Đối với những người lập trình (developer) thì chú ý những vấn đề sau:

Ép kiểu dữ liệu

Luôn ép kiểu dữ liệu cho các chuỗi đưa vào câu lệnh truy vấn SQL. Thí dụ:

Nếu muốn kiểu dữ liệu là kiểu nguyên (integer) thì sử dụng câu lệnh SQL:

$sql = 'UPDATE #__mytable SET `id` = ' . (int) $int;

Nếu muốn kiểu dữ liệu là kiểu ngày/tháng (date) thì sử dụng câu lệnh SQL:

$date = & JFactory::getDate($mydate);$sql = 'UPDATE #__mytable SET `date` = ' . $db->quote( $date->toMySQL(), false);

Luôn gỡ bỏ ý nghĩa của những ký tự đặc biệt

Bạn cần gỡ bỏ ý nghĩa của những ký tự đặc biệt (những ký tự có khả năng gây nguy hiểm cho câu lệnh SQL) nằm trong các chuỗi dữ liệu được đưa vào câu lệnh SQL bằng câu lệnh:

$sql = 'UPDATE #__mytable SET `string` = ' . $db->quote( $db->getEscaped( $string ), false );

Chống tấn công DOS

Trong các mệnh đề WHERE, nếu bạn có sử dụng lệnh LIKE, hãy đảm bảo rằng bạn đã lọc các ký tự đặc biệt như "%" và "_"  thì sử dụng câu lệnh SQL:

$sql = 'UPDATE #__mytable SET .... WHERE `string` LIKE '. $db->quote( $db->getEscaped( $string, true ), false )

Chống tấn công XSS

Rất nhiều người có thói quen lấy dữ liệu nhập vào từ người dùng bằng câu lệnh JRequest::getVar(). Tuy nhiên đây là một thói quen không tốt. Thay vào đó bạn nên sử dụng các phương thức ép kiểu. Thí dụ:

Page 51: Meo Joomla

Nếu muốn kiểu số nguyên, dùng câu lệnh:

$int = JRequest::getInt( $name, $default );

Nếu muốn kiểu số thực, dùng câu lệnh:

$float = JRequest::getFloat( $name, $default );

Nếu muốn kiểu logic (đúng/sai), dùng câu lệnh:

$bool = JRequest::getBool( $name, $default );

Nếu muốn kiểu từ (word): chỉ có các ký tự chữ cái và ký tự gạch dưới "_", dùng câu lệnh:

$word = JRequest::getWord( $name, $default );

Nếu muốn kiểu câu lệnh (command): chỉ có các ký tự chữ cái, ký tự số, ký tự "."  và "_", dùng câu lệnh:

$cmd = JRequest::getCMD( $name, $default );

Nếu muốn kiểu văn bản không phải HTML (văn bản đã được lọc bỏ các thẻ HTML), dùng câu lệnh:

$string = JRequest::getString( $name, $default );

Tham khảo thêm:

Preventing SQL Injections (tác giả: Anthony Ferrara - Joomla Core Team, bài gốc tiếng Anh)

SQL Injection API getEscaped database->getEscaped

Keyword:

câu lệnh, sql, sql injection, ép kiểu, lọc bỏ, số nguyên, số thực, DOS, XSS, interger, float, string, JRequest... 

Ghi rõ nguồn "http://dev.joomla.org" (bản gốc) và "http://vinaora.com" (bản dịch và tổng hợp) khi sử dụng bài viết này.

32. Kiểm tra Website Joomla bằng Joomla! HISA

Joomla HISA là một công cụ kiểm tra - bảo mật cho phép:

Page 52: Meo Joomla

Kiểm tra một HOSTING có đáp ứng các yêu cầu cần thiết để cài đặt Joomla hay không

Thông báo các thông số của HOST (tên host, địa chỉ IP...); thông số về PHP, MYSQL...

Cảnh báo về các thiết lập không an toàn Cảnh báo về các thư mục chưa được thiết lập đúng quyền hạn

Cũng giống như "Joomla Diagnostics", rất đơn giản bạn chỉ cần tải về công cụ có tên là Joomla! HISA (Joomla! Health, Installation and Security Audit). Sau đó upload 1 file duy nhất (joomla_hisa_en.php) lên Hosting định cài đặt Joomla và xem kết quả.

Phiên bản Joomla HISA hiện tại chỉ cho phép kiểm tra dòng Joomla! 1.0.x (từ Joomla 1.0.10 trở đi)

Quy trình kiểm tra

Download Joomla HISA: >> Joomla HISA <<<

Giải nén và upload Joomla! HISA: Giải nén, sau đó upload 1 file duy nhất (joomla_hisa_en.php) lên thư mục chứa Joomla

Chạy Joomla! HISA: Mở trình duyệt và gõ vào URL tới file "joomla_hisa_en.php".

VD: http://vinaora.com/joomla/joomla_hisa_en.php

Joomla! HISA sẽ thông báo kết quả

Page 53: Meo Joomla

Host Environment: Thông số chung của Host

PHP Environment: Thông số về PHP

MySQL Environment: Thông số về MySQL

Page 54: Meo Joomla

Joomla! Environment: Các thông số liên quan cho Joomla

Required and Recommended Settings: Các yêu cầu bắt buộc và khuyến cáo

Nếu một trong các thiết lập bị cảnh báo bằng màu đỏ thì bạn nên xem bài viết "Xử lý cảnh báo trong quá trình cài đặt và cấu hình Joomla!" để biết cách khắc phục.

Directory and File Permissions: Quyền hạn đối với các tệp và thư mục

Để tránh các HACKER nhòm ngó bạn nên thiết lập các thư mục với CHMOD = 755, các tệp với CHMOD = 644

Page 55: Meo Joomla

Chú ý:

Thứ nhất, nên đổi tên file joomla_hisa_en.php trước khi upload lên host (Chẳng hạn đổi tên thành vinaora_hisa.php)

Thứ hai, sau khi sử dụng hãy xóa ngay file Joomla Hisa nói trên

Bài viết liên quan

http://forum.joomla.org/index.php/topic,136328.0.html

Keyword:

joomla, hisa, joomla hisa, kiểm tra, website, chmod

33. Kiểm tra hệ thống file Joomla bằng Joomla Diagnostics

Thông thường sau khi upload Joomla lên Hosting, hoặc sau một quá trình dài sử dụng bạn rất muốn biết liệu thư mục Joomla của mình có bị thiếu file, hư hỏng hoặc bị Hacker chỉnh sửa gì không? Joomla của mình có an toàn không? Thật đơn giản, bạn hãy tìm và download Joomla Diagnostics. Đây là một công cụ miễn phí cho phép xác định rõ:

Những file bị thiếu Những file bị hỏng hoặc đã bị chỉnh sửa Những file không an toàn (có thể truy cập trực tiếp từ đường dẫn, do thiếu kiểm

tra _VALID_MOS hoặc _JEXEC) Các thiết lập không an toàn (VD: register_globals = off)

Page 56: Meo Joomla

Quy trình kiểm tra như sau:

Download Joomla Diagnostics: Xác định rõ phiên bản Joomla mà bạn đang sử dụng: Joomla 1.0.13 hay Joomla

1.5 Tìm đúng Joomla Diagnostics cho phiên bản mà bạn đang sử dụng Link download: Joomla Diagnostics

Giải nén Joomla Diagnostics

Giải nén Joomla Diagnostics mà bạn vừa download ở trên (gồm 2 file: diagnostics.php và Joomla...txt) vào thư mục Joomla (nơi có file configuration.php)

diagnostics.php: file dùng để kiểm tra joomla...txt: chứa danh sách các file của Joomla và mã kiểm tra tính toàn vẹn

(CHECKSUM)

Chạy Joomla Diagnostics

Mở đường dẫn http://website_cua_ban/diagnostics.php

VD: http://vinaora.com/diagnostics.php VD: http://vinaora.com/joomla/diagnostics.php

Hình minh họa

Chú ý:

Page 57: Meo Joomla

Vì lý do bảo mật bạn cần phải xóa ngay file diagnostics.php sau khi sử dụng.

Tham khảo thêm:

http://www.joomla-addons.org/ http://forum.joomla.org/index.php?topic=53052.0

Keyword:

Joomla, joomla 1.0, joomla 1.5, diagnostics, joomla diagnostics, file

34. 9 bước bảo mật Website Joomla!Friday, 08 June 2007 23:55

Bảo mật cho Website Joomla là một nhân tố quan trọng góp phần bảo vệ Website trước các âm mưu tấn công có chủ đích cũng như vô tình, giúp cho Website luôn hoạt động ổn định và bền vững. Nhiều quản trị Website chỉ đặt trọng tâm vào việc thiết kế, cập nhật nội dung và giành thứ hạng cao trong các kết quả tìm kiếm mà quên đi việc đảm bảo an toàn cho Website, tới khi sự việc xảy ra thì đã quá muộn. Bài viết dưới đây sẽ giới thiệu tới các bạn 9 bước để bảo mật cho Website Joomla và giảm thiểu các nguy cơ tấn công từ Internet.

1. Sao lưu toàn bộ Website theo định kỳ

Điều đầu tiên và cũng là quan trọng nhất là bạn phải thường xuyên sao lưu toàn bộ Website bao gồm cả thư mục chứa Joomla và cơ sở dữ liệu MySQL. Hãy lập lịch ít nhất một lần trong tuần (khuyến cáo là mỗi ngày một lần) để thực hiện sao lưu. Bạn sẽ tiết kiệm được rất nhiều công sức và tiền của khi Website bị tấn công và chỉ mất vài phút hoặc vài chục phút để khôi phục lại gần như toàn bộ.

2. Nâng cấp khi Joomla có phiên bản phát hành ổn định mới nhất.

Nhóm phát triển nòng cốt của Joomla luôn phát hành đều đặn vài tháng một lần phiên bản Joomla mới bao gồm cả các bản vá lỗi bảo mật và và các bản vá tăng cường hiệu suất làm việc, do vậy bạn cần kiểm tra thường xuyên trên website của Joomla (http://www.joomla.org) để kịp thời cập nhật phiên bản mới nhất.

3. Kiểm tra các thành phần mở rộng (module, component, mambot/plugin) của các hãng thứ ba

Page 58: Meo Joomla

Một số Website có thể bị tấn công thông qua các lỗi bảo mật nằm trong các thành phần mở rộng được cài đặt thêm từ hãng thứ ba. Do vậy bạn cũng luôn phải chắc chắn rằng nếu mình có cài đặt các thành phần mở rộng từ hãng thứ ba thì đó phải là các phiên bản mới nhất.

Khuyến cáo: Hãy hạn chế tới mức tối đa việc cài đặt các thành phần mở rộng từ hãng thứ ba. Ngoài ra khi bạn quyết định gỡ một thành phần mở rộng nào đó khỏi hệ thống thì bạn cũng xóa cả các bảng cơ sở dữ liệu liên quan.

4. Quyền han đối với các thư mục

Sau khi cài đặt các thành phần mở rộng, bạn cần thiết lập quyền hạn đối với các thư mục sang chế độ CHMOD 755.

Lưu ý: Nếu quá trình cài đặt các thành phần mở rộng (component/module/language...) gặp trục trặc bạn cần chuyển các thư mục sau sang CHMOD 777. Khi cài đặt xong lại thiết lập như trên (755 đối với thư mục và 644 đối với file)

componentslanguage modules mambots templates administrator administrator/backups administrator/components administrator/modules

5. Quyền han đối với các tệp

Thiết lập quyền hạn đối với tất cả các tệp của bạn sang chế độ CHMOD 644.

 

Page 59: Meo Joomla

 

6. Quyền han đối với tệp configuration.php

Đây là một điều rất quan trọng. Bạn phải chắc chắn rằng mình đã thiết lập quyền hạn cho tệp "configuration.php" sang CHMOD 644.

7. Bảo mật với .htaccess

Bản phát hành mới nhất của Joomla bao gồm cả phiên bản cập nhật cho tệp ".htaccess" để làm giảm thiểu nguy cơ tấn công từ các hacker. Do vậy bạn cần phải truyền tệp .htaccess này tới server của bạn và đổi quyền hạn sang CHMOD 644.

8. Joomla! Register Globals Emulation.

Bạn cần phải chắc chắn rằng biến "register global emulation" được thiết lập thành OFF. Hãy mở tệp "global.php", tìm dòng define('RG_EMULATION', 1) và đổi nó thành

define('RG_EMULATION', 0)

9. Register Globals

Đảm bảo rằng Register Globals được thiết lập thành OFF. Nếu không hãy liên hệ với Server của bạn để đổi nó thành OFF hoặc mở tệp .htaccess và thêm vào đoạn mã sau

php_flag register_globals off.

Tham khảo thêm

Bảo mật cho Website Joomla! (tại diễn đàn chính thức của Joomla)

35. Bảo vệ file "configuration.php" khỏi các truy nhập trái phépFriday, 01 June 2007 17:38

Page 60: Meo Joomla

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:

<?phprequire( '/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ẻ "<?php" 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"

Tham khảo thêm: http://forum.joomla.org/index.php/topic,122594.0.html http://www.hvaonline.net/hvaonline/posts/list/72.hva

Keywords: FAQ, security, config, configuration, configuration.php, public_html, web_root, secure files

Page 61: Meo Joomla

36. Bảo mật toàn tập cho Website JoomlaWednesday, 30 May 2007 22:19

Bài viết này xin cung cấp cho bạn một loạt các thủ thuật để tăng cường bảo mật cho Website Joomla! được trích dẫn từ diễn đàn Joomla! (http://forum.joomla.org). Có thể một vài thủ thuật hơi khó thực hiện hoặc gây khó khăn, thâm chí là lỗi cho hệ thống của bạn, tuy nhiên đừng nản chí , mọi cái đều có giá của nó. Nếu không thiết lập một vòng đai an toàn cho Website sẽ có lúc bạn phải hối tiếc vì điều đó và thiệt hại có khi là không tính đếm được. Hãy tiến hành ngay khi có thể.

01. Luôn cập nhật phiên bản mới nhất (Joomla 1.0.x, Joomla 1.5)

02. Chỉ nên download Joomla! từ website chính thức Joomlacode.org và kiểm tra mã xác thực MD5 (nếu có)

03. Xóa thẳng tay những thư mục hoặc file không còn sử dụng. Sau khi cài đặt thành công Joomla, bạn phải xóa toàn bộ thư mục "installation". Nếu bạn upload lên Host bộ cài Joomla ở định dạng nén (*.zip), bạn cũng cần phải xóa bỏ file nén này. Tốt nhất là không nên để lại file hoặc thư mục gì ngoài gói Joomla.

04. Tăng cường bảo vệ cho file cấu hình "configuration.php" bằng cách chuyển nó ra khỏi thư mục public (thường có tên là public_html). [Xem thêm]

05. Đổi tên tài khoản truy nhập Joomla thay vì tài khoản mặc định "admin". Bước này tưởng chừng rất đơn giản nhưng lại ngăn chặn được khá nhiều cuộc tấn công. [Xem thêm]

06. Chặn các truy vấn nguy hiểm nhờ file ".htaccess" [Xem thêm]

07. Bảo vệ các thư mục nhậy cảm, chẳng hạn thư mục "administrator" thông qua file ".htaccess" [Xem thêm]

08. Giới hạn các IP truy cập tới các thư mục nhậy cảm thông qua file ".htaccess" [Xem thêm]

09. Chọn Host có hỗ trợ PHP5.

10. Sử dụng các công cụ nổi tiếng như PHPsuExec, php_suexec và suPHP.

11. Nếu có thể, hãy yêu cầu Server nạp các module mod_security và mod_rewrite để lọc và chặn các truy vấn nguy hiểm.

12. Sử dụng tài khoản MySQL đã được thiết lập quyền giới hạn (không sử dụng tài khoản root).

Page 62: Meo Joomla

13. Cố gắng nâng cấp các đoạn mã sang PHP5. Riêng gói Joomla thì bạn không cần lo lắng vì ngay từ ban đầu nó đã được thiết kế tương thích với PHP5.

14. Cố gắng không sử dụng các thành phần mở rộng yêu cầu "safe_mode" của PHP.

15. Tắt Joomla! Register Globals Emulation trong file "globals.php". [Xem thêm]

define( 'RG_EMULATION', 0 );

16. Thiết lập quyền truy cập (CHMOD) các thư mục sang 755, các file sang 644. Bạn có thể vào Site --> Global Configuration --> Server để thiết lập các quyền này cho thư mục và file. Bạn cũng có thể sử dụng một công cụ FTP như FileZilla, SmartFTP, WS_FTP, Net2FTP... để CHMOD. Lưu ý: Một số thành phần mở rộng trong quá trình cài đặt có thể yêu cầu quyền truy cập 777.

17. Xóa bỏ toàn bộ các template không sử dụng khỏi thư mục "templates" và không đặt bất cứ đoạn mã nhạy cảm nào vào các file trong template.

18. Thuê một chuyên gia bảo mật Joomla! để kiểm tra toàn bộ Website của bạn.

Tham khảo thêm: Joomla! Administrator's Security Checklist

37. Bảo mật cho trang quản trị administrator 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\"

<?php $name='439581667ef694b60d58f213cccf9503';$pass='439581667ef694b60d58f213cccf9503';

if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!==$name || md5($_SERVER['PHP_AUTH_PW'])!==$pass)

{

Page 63: Meo Joomla

header('WWW-Authenticate'); header('HTTP/1.0 401 Unauthorized'); exit('<a href="http://vinaora.com/">VINAORA</a> : Access Denied');}?>

Trong đó

username = vinaorapassword = vinaora

Tham khảo thêm:

Công cụ tạo mã hóa MD5 và một số loại mã hóa khác Làm sao để thay đổi đường dẫn tới trang admin

38.