Thiết kế Web với Joomla và một số thủ thuật trong Joomla

pdf 140 trang vanle 4950
Bạn đang xem 20 trang mẫu của tài liệu "Thiết kế Web với Joomla và một số thủ thuật trong Joomla", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfthiet_ke_web_voi_joomla_va_mot_so_thu_thuat_trong_joomla.pdf

Nội dung text: Thiết kế Web với Joomla và một số thủ thuật trong Joomla

  1. Thiết kế Web với Joomla và một số thủ thuật trong Joomla
  2. Part 1 Thiết Kế Web Với JoomlaJoomla! là một hệ quản trị nội dung mã nguồn mở (tiếng Anh: Open Source Content Management Systems). Joomla! được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL , cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên Internet hoặc Intranet. Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tin nhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm trong Site và hỗ trợ đa ngôn ngữ. Joomla được phát âm theo tiếng Swahili như là 'jumla' nghĩa là "đồng tâm hiệp lực". Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ và ứng dụng. Joomla có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao. Joomla có mã nguồn mở do đó việc sử dụng Joomla là hoàn toàn miễn phí cho tất cả mọi người trên thế giới. Tham khảo thêm: WikiPedia-Joomla, Wikipedia-Hệ quản trị nội dung Các khái niệm và thuật ngữ Module là gì? Module là một trong 3 thành phần mở rộng chính của Joomla! Đó là một đoạn mã nhỏ thường được dùng để truy vấn các thông tin từ cơ sở dữ liệu Collection by traibingo 1
  3. và hiển thị các kết quả tìm được. Nó có thể được nạp vào một vị trí bất kỳ trên template (vị trí left, right, top, bottom hoặc vị trí do người dùng định nghĩa); có thể hiện trên tất cả các trang của Website hay một số trang được ấn định. Khả năng tương tác giữa người sử dụng và hệ thống thông qua module là hạn chế (chúng ta thường chỉ nhận thông tin trả về). Module có tên bắt đầu bằng mod_ Chúng ta có các module thông dụng: Lastest News (mod_latestnews): Module hiển thị các tin mới nhất Popular News (mod_mostreads): Module hiển thị các bài được quan tâm nhiều nhất Related Items (mod_related_items): Module hiển thị các bài viết liên quan Random Image (mod_random_image): Module hiển thị các ảnh ngẫu nhiên Search Module (mod_search): Module công cụ tìm kiếm Login Module (mod_login): Module hiển thị form đăng nhập hệ thống Stats Module (mod_stats): Module hiển thị các thông tin thống kê về hệ thống Menu Module (mod_mainmenu): Module hiển thị các menu của website Banners Module (mod_banners): Moudule hiển thị các banner quảng cáo Khái niệm Front-end và Back-end Front-end (tiền sảnh) Front-end (tiền sảnh), còn được biết với tên gọi Public Front-end: phần giao diện phía ngoài, nơi tiếp xúc với mọi người sử dụng. Bất cứ ai cũng có thể trông thấy khi gõ đúng đường dẫn URL vào trình duyệt. Front-end chứa 1 trang đặc biệt là FrontPage (homepage) - trang chủ. Back-end (hậu sảnh) Back-end, còn được biết với tên gọi Public Back-end, Administrator, Control Pane: phần dành cho người quản trị. Những người bình thường Collection by traibingo 2
  4. không biết đường dẫn để truy cập, hoặc nếu có biết thì cũng phải qua bước kiểm tra tài khoản. Phần back-end được truy cập thông qua đường dẫn: Các khái niệm Section, Category và Content là gì? Trước khi đi vào xây dựng một Website bằng Joomla chúng ta cần nắm rõ 3 khái niệm quan trọng: Section, Category và Content. Vậy Section là gì? Category là gì? Content là gì?. Chúng ta cùng xem "Cấu trúc nội dung của một Website Joomla" được thể hiện thông qua hình vẽ dưới đây: Section 1 |Category 1a |Category 1c |Category 1b Section 2 |Category 2a |Category 2b |Content 2b1 |Content 2b2 Section là gì? Collection by traibingo 3
  5. Section: Các mục, các lĩnh vực, các dòng sản phẩm, dịch vụ mà Website muốn đề cập tới. VD1: Một Website bán sách trực tuyến có thể bao gồm các Section: "Sách Văn học", "Sách Tin học", "Sách Toán học" VD2: Một Website về tin tức có thể bao gồm các Section: "Thể thao", "Văn hóa", "Pháp luật" Category là gì? Category: Các chuyên mục, loại sản phẩm, loại dịch vụ được đề cập một cách cụ thể hơn, chi tiết hơn. VD1: Trong Section "Văn học" có các Category: "Tiểu thuyết", "Truyện ngắn", "Hồi ký" VD2: Trong Section "Thể thao" có các Category: "Bóng đá", "Quần vợt", "Các môn thể thao khác" Content là gì? Content: Toàn bộ nội dung của một bài viết và thường gồm 2 phần: Phần giới thiệu (Intro Text): Phần này nêu ngắn gọn, tóm tắt hoặc là ý mở đầu cho toàn bộ bài viết. Phần chi tiết (Description Text): Phần còn lại của bài viết. Như vậy để tạo một bài viết chúng ta cần qua tối đa 3 bước và tối thiểu là 1 bước nếu đã co Section và Category: 1. Bước 1: Tạo Section: Vào Content > Section Manager 2. Bước 2: Tạo Category: Vào Content > Category Manager 3. Bước 3: Tạo Content: Vào Content > Article Manager > New Collection by traibingo 4
  6. Lựa chọn phiên bản của Joomla! Một trong những thắc mắc thường gặp của những người mới làm quen với Joomla là: Đâu là phiên bản mới nhất của Joomla Joomla 1.5 ??? hay Joomla 1.0.12 ???. Cái nào cung cấp nhiều tính năng hơn, ổn định hơn, được hỗ trợ nhiều hơn, đẹp hơn, đáng dùng hơn Xin được giải thích ngay. Hiện Joomla có 2 dòng phiên bản chính: Joomla 1.0.x và Joomla 1.5.x Dòng phiên bản Joomla 1.0.x Là phiên bản phát hành ổn định. Được sử dụng rộng rãi, có nhiều thành phần mở rộng (component, module, mambot) Có thể sử dụng ngay cho website của bạn. Joomla 1.0.0: Phiên bản phát hành đầu tiên (15-09-2005) Joomla 1.0.12: Phiên bản phát hành mới nhất (25-12-2006) Dòng phiên bản Joomla 1.5 Là phiên bản phát triển và vẫn đang ở giai đoạn Beta 2 (chưa ổn định). Phiên bản Joomla! 1.5 là phiên bản cải tiến từ Joomla 1.0.x (phần mã được viết lại hoàn toàn, tuy nhiên vẫn giữ cách hành xử như cũ) được coi như Mambo 4.6. Ban đầu nó còn được gọi là Joomla 1.1, nhưng sau đó vì nhận thấy nó được cải tiến nhiều về mặt kỹ thuật, tính năng nên nhóm phát triển quyết định lấy tên là Joomla 1.5 Có nhiều tính năng hay Chỉ nên sử dụng cho mục đích thử nghiệm Joomla 1.5 hỗ trợ đa ngôn ngữ Joomla 1.5 dùng charset mặc định là UTF-8 (thay vì ISO-8859-1 trong Joomla 1.0.x) Collection by traibingo 5
  7. Lựa chọn phiên bản để cài đặt Cài đặt lần đầu, cài mới Bạn nên chọn phiên bản Joomla 1.0.x, chọn bản mới nhất: Joomla 1.0.12 - Bước 1: Mở - Bước 2: Chọn bản Joomla_1.0.12-Stable-Full_Package.zip (Stable: Ổn định, Full: Đầy đủ) Cài đặt ở chế độ nâng cấp Nếu bạn đang dùng Joomla 1.0.x. VD: Joomla! 1.0.7 và muốn nâng cấp lên Joomla! 1.0.12. - Bước 1: Mở - Bước 2: Chọn bản Joomla_1.0.7_to_1.0.12-Stable-Patch_Package.zip (1.0.7 to 1.0.12) - Bước 3: Giải nén và copy đè vào thư mục Joomla cũ. Cài đặt ở chế độ phát triển, kiểm tra tính năng Hiện tại Joomla đang phát triển dòng phiên bản Joomla! 1.5 Download link Joomla 1.5: Collection by traibingo 6
  8. Part 2 Web Server là gì? HTML là gì? PHP là gì? HTML là gì? HTML (tiếng Anh, viết tắt cho HyperText Markup Language, tức là "Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web. Được định nghĩa như là một ứng dụng đơn giản của SGML, vốn được sử dụng trong các tổ chức cần đến các yêu cầu xuất bản phức tạp, HTML giờ đây đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì. Phiên bản mới nhất của nó hiện là HTML 4.01. Tuy nhiên, HTML hiện không còn được phát triển tiếp. Người ta đã thay thế nó bằng XHTML. Web Programming Language là gì? Web Programming Language (Ngôn ngữ lập trình Web): Ngôn ngữ được viết theo phong cách lập trình (khác so với HTML - ngôn ngữ đánh dấu) để hỗ trợ và tăng cường các khả năng của Web. Cho phép điều khiển các phần tử của trang Web dễ dàng hơn. Chúng ta có một số ngôn ngữ lập trình Web như là: ASP, ASP.Net, PHP, JSP Web Server là gì? Web Server (máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx ; Apache dành cho *.php ; Sun Java System Web Server của SUN dành cho *.jsp Collection by traibingo 7
  9. Database Server là gì? Database server (máy phục vụ Cơ sở dữ liệu): Máy tính mà trên đó có cài đặt phần mềm Hệ quản trị Cơ sở dữ liệu (HQTCSDL). Chúng ta có một số HQTCSDL chẳng hạn như: SQL Server, MySQL, Oracle Cài đặt Web Server WAMP trên Windows Một trong những khó khăn ban đầu của người mới làm quen với Joomla hay người thiết kế Web nói chung đó là cài đặt Web Server. Đa phần cảm thấy rất chật vật trong việc cài đặt Apache (Web Server) + MySQL (Database Server) + PHP và cấu hình sao cho chúng làm việc tốt với nhau. Tuy nhiên có một giải pháp khá đơn giản và tiện lợi, đó là sử dụng gói cài đặt tích hợp gồm Apache + MySQL + PHP + PHPMyAdmin (một công cụ quản trị CSDL). Mọi việc cần làm chỉ còn là download bản cài đặt và tiến hành cài đặt từng bước theo chỉ dẫn. Chúng ta có 2 sản phẩm rất nổi tiếng là XAMPP và WAMP. Tuy nhiên với mục đích cài đặt trên localhost để chạy thử thì WAMP chính là lựa chọn đầu tiên và dễ dàng. WAMP là gì? WAMP: Một gói phần mềm Web Server tất cả trong một (All-in-One) gồm: Apache, MySQL, PHP chạy trên nền Windows. Collection by traibingo 8
  10. Giao diện quản trị Webserver WAMP (Windows + Apache + MySQL + PHP) Các đặc điểm nổi trội của WAMP Có thể cài đặt WAMP dễ dàng. WAMP được cập nhật đều đặn. Cho phép lựa chọn các phiên bản PHP, MySQL khác nhau. Collection by traibingo 9
  11. Rất tốt cho việc tạo máy chủ Web để chạy thử, thiết kế Website bằng PHP. Hỗ trợ tốt cho Joomla 1.5, Joomla 1.0 Hỗ trợ phiên bản PHP5 mới nhất Tương thích Windows XP / Windows Vista / Windows 7 Hoàn toàn miễn phí Download bản cài đặt WAMP Download WAMP tại địa chỉ Các bước cài đặt WAMP Nếu trước đó bạn đã cài đặt WAMP 5.1.x thì tốt nhất là gỡ nó đi sau đó mới cài WAMP Server 2.0 Collection by traibingo 10
  12. Nhấn [Next] và thực hiện các bước tiếp theo Nếu trên máy của bạn có cài trình duyệt Firefox và bạn muốn chọn Firefox làm trình duyệt mặc định khi mở thì nhấn [Yes] Collection by traibingo 11
  13. Điền các thông số để có thể gửi/nhận mail thông qua một SMTP server. Nếu không biết hãy để mặc định và nhấn [Next] Nhấn nút [Finish] để hoàn tất quá trình cài đặt Hoàn tất việc cài đặt và chạy thử Sau khi cài đặt thành công, bạn sẽ thấy biểu tượng của WAMP ở góc màn hình như dưới đây: Collection by traibingo 12
  14. Để chạy thử, nhấn vào mục "localhost" Hoặc mở trình duyệt và gõ địa chỉ (hoặc Để quản lý cơ sở dữ liệu (database) nhấn vào mục "phpMyAdmin" Hoặc mở trình duyệt và gõ vào địa chỉ Hoặc Collection by traibingo 13
  15. Các chú ý khác: Thư mục đặt website của bạn theo mặc định là "C:\wamp\www" Để có thể truy cập từ máy tính khác nhấn vào mục "Put Online" WAMP có thể cài đặt thành công trên IPhone Collection by traibingo 14
  16. Part 3 Truy cập Joomla trong mạng LAN Sử dụng file host của Windows 1. Tìm file hosts trong thư mục: "C:\WINDOWS\system32\drivers\etc\" 2. Mở file hosts bằng một trình soạn thảo bất kỳ (chẳng hạn Notepad) 3. Bạn thêm dòng sau: 127.0.0.1 yourdomain #VD: yoursite.com, maychu.com Nếu máy tính của bạn ở trong LAN, có địa chỉ IP: 192.168.0.2 và muốn các máy khác trong LAN có thể truy cập máy chủ thông qua địa chỉ: thì bạn thêm dòng sau và copy file host tới tất cả các máy trong LAN: 192.168.0.2 yoursite.com Bây giờ bạn có thể mở trình duyệt và gõ vào địa chỉ: khi đó kết quả trả về cũng giống hệt như khi bạn gõ vào địa chỉ Chú ý: Nếu muốn tắt tính năng này bạn chỉ cần thêm dấu # vào đầu dòng mà bạn đã khai báo trong file host. # Copyright (c) 1993-1999 Microsoft Corp. # # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost 127.0.0.1 yoursite.com 192.168.0.2 yoursite.com Collection by traibingo 15
  17. Tham khảo thêm: Không truy cập được Joomla từ máy con Lỗi khi chạy web joomla ở 1 máy khác trong cùng mạng LAN Dạng địa chỉ của Website Thông thường bạn có thể sở hữu một trong 2 dạng địa chỉ Website: 1. Địa chỉ cơ bản. VD. yoursite.com, yoursite.vze.com 2. Địa chỉ con. VD. yoursite.com/web_cua_ban Nếu Website của bạn ở dạng địa chỉ cơ bản Khi thử nghiệm trên localhost bạn chỉ cần đặt toàn bộ hệ thống Website trong "thư mục gốc chứa Web" mà phần mềm Web Server qui định. Chẳng hạn đối với Apache, thư mục gốc chứa Web được khai báo thông qua biến DocumentRoot trong file httpd.conf. # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:/wamp/www" Nếu Website của bạn ở dạng địa chỉ con Bạn có 2 cách để tạo website với dạng địa chỉ này 1. Cách 1: Tạo một thư mục con của "thư mục gốc chứa Web" với tên là web_cua_ban. (Chẳng hạn thư mục gốc chứa Web: D:/www/ thì thư mục chứa Website của bạn: D:/www/web_cua_ban/) 2. Cách 2 (khuyến cáo): Bạn có thể đặt thư mục chứa Web của bạn ở bất cứ chỗ nào, không nhất thiết phải là một thư mục con của "thư mục gốc chứa Web". Để triển khai theo giải pháp này bạn chỉ cần tạo bí danh cho thư mục chứa Web của bạn. Ở đây chỉ xin giới thiệu cách xử lý với Apache và WAMP: Collection by traibingo 16
  18. Bạn mở file httpd.conf và thêm vào đoạn mã sau: Alias /web_cua_ban/ "duong_dan_thu_muc_chua_web" // Chẳng hạn D:/webdesign/web_cua_ban/ Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny Allow from all Nếu bạn chạy gói phần mềm Web Server WAMP, bạn nhấn chuột vào biểu tượng WAMP ở khay hệ thống (gần đồng hồ), sau đó: Chọn mục Alias directories, chọn tiếp Add an alias. Trong màn hình dòng lệnh hiện ra tiếp theo, gõ vào bí danh cho Website của bạn, chẳng hạn web_cua_ban Tiếp theo gõ vào vị trí lưu trữ của Website, chẳng hạn D:/webdesign/web_cua_ban/ Cài đặt Web Server XAMPP trên Linux Thông thường khi cài đặt Server với một hệ điều hành họ Linux (VD: CentOS, Fedora, SuSE, Redhat Linux, Ubuntu ) chúng ta có thể chọn cài đặt phần mềm Apache (dùng làm Web Server) và MySQL (dùng làm hệ quản trị CSDL) trong gói phần mềm kèm theo. Tuy nhiên rất có thể bạn đã quên hoặc không thích cài chúng hoặc cảm thấy khó khăn khi cấu hình để chúng làm việc với nhau và chạy được PHP, bạn có thể chọn một giải pháp khác: Cài đặt gói phần mềm XAMPP (gồm Apache + MySQL + PHP + PHPMyAdmin). Các bước tiến hành như sau: Collection by traibingo 17
  19. Bước 1: Download Download link: Bước 2: Cài đặt - Mở Linux shell và đăng nhập bằng tài khoản root su - Giải nén file cài đặt vào thư mục /opt tar xvfz xampp-linux-1.5.3a.tar.gz -C /opt Bước 3: Khởi động XAMPP /opt/lampp/lampp start Bước 4: Kiểm tra Mở trình duyệt và gõ: Các chú ý khác [1]. Sau khi cài đặt XAMPP khi gõ trình duyệt sẽ tự động chuyển hướng tới Để thay đổi mặc định ban đầu này: Vào thư mục xampp/htdocs thay đổi (hoặc đổi tên hoặc xóa) file index.php cho phù hợp với mục đích của mình. [2]. Để tạo site dạng cần thêm đoạn code sau vào file xampp/apache/conf/httpd.conf Alias /Joomla/ "/www/Joomla/" Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny Allow from all Collection by traibingo 18
  20. Trong đó /www/Joomla/ là đường dẫn tới thư mục Joomla của bạn [3]. Để tăng cường bảo mật mở Linux Shell và chay dòng lệnh sau: /opt/lampp/lampp security [4]. Để XAMPP tự chạy sau khi Reboot (giống như một service trong Windows chạy ở chế độ Automatic). Xem hướng dẫn sau: Các thông số cần chú ý khi Upload Joomla lên Hosting Mở file "configuration.php" và chỉnh sửa các thông số cho phù hợp với HOST / HOSTING / SERVER mới của bạn. Đối với Joomla! 1.5 Các thông số kết nối với Database /* Database Settings */ var $dbtype = 'mysql'; // Thường là 'mysql'. Ngoài ra có thể là 'mysqli' (tốt hơn 'mysql') var $host = 'localhost'; // Thường là 'localhost'. // Ngoài ra có thể là tên hoặc IP của MySQL server // VD: 'mysql01.yoursite.com', '208.67.222.222' var $user = 'xxx'; // Tên của tài khoản MySQL gắn với database chứa website Joomla. // VD: root, yoursite var $password = 'xxx'; // Mật khẩu của tài khoản MySQL nói trên. var $db = 'xxx'; // Tên của database chứa website Joomla. // VD: joomla, yoursite_joomla Collection by traibingo 19
  21. var $dbprefix = 'jos_'; // Tiền tố của các bảng trong database. Mặc định là: 'jos_' Các thông số liên quan tới lưu trữ file /* Server Settings */ var $absolute_path = 'xxx'; // Đường dẫn tuyệt đối tới nơi chứa Joomla. // Các phiên bản Joomla 1.5 gần đây đã bỏ thông số này // VD: 'C:\\www\\joomla' (trên Windows) // VD: '/home/yoursite.com/public_html' (trên Linux) var $log_path = 'xxx'; // Đường dẫn lưu trữ các file log. // VD: 'C:\\www\\joomla\\logs' // Hoặc bạn có thể sử dụng một đường dẫn khác, miễn là Writeable var $tmp_path = 'xxx'; // Đường dẫn lưu trữ các file tạm. // VD: '/home/yoursite.com/public_html/tmp' // Hoặc bạn có thể sử dụng một đường dẫn khác, miễn là Writeable Thông số địa chỉ Website var $live_site = ''; // Địa chỉ Website. VD: // Các phiên bản Joomla 1.5 gần đây đã bỏ thông số này Đối với Joomla! 1.0 Các thông số kết nối với Database /* Database Settings */ $mosConfig_host = 'localhost'; // Thường là 'localhost'. // Ngoài ra có thể là tên hoặc IP của Database server $mosConfig_user = ''; // Tên của tài khoản MySQL gắn với database chứa website Joomla. // VD: root, yoursite $mosConfig_password = ''; // Mật khẩu của tài khoản MySQL nói trên. Collection by traibingo 20
  22. $mosConfig_db = ''; // Tên của database chứa website Joomla. // VD: joomla, yoursite_joomla $mosConfig_dbprefix = 'jos_'; // Tiền tố của các bảng trong database. Mặc định là: 'jos_' Các thông số liên quan tới lưu trữ file /* Server Settings */ $mosConfig_absolute_path = 'xx';// Đường dẫn tuyệt đối tới nơi chứa Joomla // VD: 'C:\\www\\joomla' // VD: '/home/yoursite.com/public_html' $mosConfig_cachepath = 'xxx'; // Đường dẫn tới nơi chứa các file cache. // Sẽ sử dụng khi bật tính năng cache // VD: 'C:\\www\\joomla\\cache' // VD: '/home/yoursite.com/public_html/cache' Thông số địa chỉ Website $mosConfig_live_site = ''; // Địa chỉ Website. // VD: ' ' Collection by traibingo 21
  23. Part 4 Upload Joomla 1.5 lên Server/Hosting Rất nhiều bạn sau khi đã cài đặt Joomla thành công trên localhost và nay muốn upload lên Server để chạy chính thức trên Internet nhưng đã phải loay hoay rất lâu. Thực ra công việc rất đơn giản và chỉ mất vài phút, quan trọng là bạn nắm được nguyên tắc và cẩn thận một chút. Bài viết sau hi vọng sẽ giúp bạn cảm thấy làm việc với Joomla thật là dễ chịu. Thao tác "upload Webstite Joomla" (hay website bất kỳ) lên Server/Hosting chỉ gồm 3 bước: Upload thư mục chứa Website lên Server Nhập (import) dữ liệu từ localhost lên Server Chỉnh sửa các thông số Bước 1: Upload thư mục chứa Website lên Server. Bạn chỉ cần sử dụng một công cụ FTP (File Transfer Protocol) nào đó chẳng hạn: FileZilla, SmartFTP, Net2FTP hoặc công cụ quản lý file do Server/Hosting của bạn cung cấp để copy thư mục Website của bạn lên Server/Hosting mà thôi. Bước 2: Nhập (import) dữ liệu từ localhost lên Server. Bước 2.1: Xuất (export) dữ liệu từ localhost ra tệp *.sql Mở công cụ "phpMyAdmin" Chọn database Joomla Chọn nút "Export" (trong thanh công cụ phía trên cùng) Chọn "Add DROP TABLE / DROP VIEW" và "Add IF NOT EXISTS" (nếu có trong khung "Structure") Chọn "Save as file" Lưu file *.sql Collection by traibingo 22
  24. Bước 2.2: Nhập (export) dữ liệu từ localhost ra tệp *.sql Mở công cụ "phpMyAdmin" Chọn database chứa Joomla (nếu chưa có hãy tạo nó) Chọn "Import" Nhấn nút "Browser" và chọn file *.sql mà bạn đã sao lưu Joomla Nhấn nút "Go" để khôi phục Bước 3: Chỉnh sửa các thông số (quan trọng) Mở file "configuration.php" và sửa các thông số sau cho phù hợp Nếu muốn hỗ trợ thêm truy cập FTP trong Joomla! bạn cần chỉnh sửa thêm các thông số: Chú ý: Collection by traibingo 23
  25. Nếu không cần thiết hãy tạm disbale các thông số liên quan tới FTP $ftp_enable = '0'; Địa chỉ Website của có thể là địa chỉ cơ bản (VD: ' hoặc địa chỉ con (VD: ' tùy theo bạn đặt Joomla ở thư mục gốc trên Server hay lồng trong thư mục con. Địa chỉ tuyệt đối tới thư mục Joomla có thể là: var $absolute_path = '/www'; var $absolute_path = '/public_html'; var $absolute_path = '/www/yoursite.com/joomla'; var $absolute_path = 'D:\www\yoursite.com'; Collection by traibingo 24
  26. Bảo mật toàn tập cho Website Joomla 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! ( 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). 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. 06. Chặn các truy vấn nguy hiểm nhờ file ".htaccess" 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" 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" 09. Chọn Host có hỗ trợ PHP5. Collection by traibingo 134
  27. 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). 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". 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. Collection by traibingo 135
  28. 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\" Trong đó username = yoursite password = yoursite Collection by traibingo 136
  29. Part 5 Hướng dẫn cài đặt Joomla! 1.5 Việc cài đặt Website Joomla! là rất dễ dàng, đơn giản và nhanh chóng đối với tất cả mọi người. Bạn chỉ cần truy cập Website Joomla, download bộ cài đặt, giải nén, upload lên host, tạo database và tiến hành cài đặt theo từng bước. Màn hình cài đặt của Joomla 1.5 khá thân thiện và được bố trí hợp lý. Bạn chỉ cần chú ý một điều duy nhất là "phải tạo 1 database với Collation - charset: utf8_general_ci" trước khi cài đặt mà thôi. Dưới đây là các bước thực hiện. Bước 0: Download & Upload bộ cài đặt Joomla! Download Joomla 1.5 Link download: Joomla 1.5 Upload Joomla lên server Upload gói cài đặt Joomla! (file Joomla_1.5 zip) vừa download lên Server và giải nén vào thư mục gốc chứa Website của bạn (hoặc một thư mục con của nó, chẳng hạn joomla). Thư mục gốc chứa Web thường có tên là: htdocs, public_html, www, wwwroot C:\wamp\www\ C:\Program Files\xampp\htdocs\ Bạn có thể Upload Joomla! lên server bằng một số cách sau: Copy trực tiếp (nếu cài trên máy của bạn) Collection by traibingo 25
  30. Sử dụng công cụ quản lý file (File Manager) mà HOSTING cung cấp thông qua Cpanel hoặc Direct Admin hoặc Plesk. Hay công cụ FTP: Filezilla (miễn phí), WS_FTP, Total Commander, Net2FTP (miễn phí) Bước 1: Chọn ngôn ngữ cài đặt Mở trình duyệt và gõ vào địa chỉ Website của bạn. Nếu bạn giải nén bộ cài đặt vào thư mục gốc thì gõ: VD: VD: VD: (nếu cài trên máy của bạn) Nếu bạn giải nén bộ cài đặt vào thư mục joomla (thư mục con của thư mục gốc) thì gõ: VD: VD: (nếu cài trên máy của bạn) Màn hình cài đặt xuất hiện và bạn có thể chọn một ngôn ngữ bất kỳ được hỗ trợ: Collection by traibingo 26
  31. Bước 2: Kiểm tra cấu hình hệ thống Để có thể cài đặt và sử dụng Joomla!, máy chủ của bạn phải đáp ứng một số yêu cầu. Joomla! sẽ kiểm tra các giá trị này. Nếu chúng có màu xanh thì OK. Còn nếu các giá trị kiểm tra có màu đỏ thì bạn cần yêu cầu bộ phận Hỗ trợ kỹ thuật của Server giúp đỡ. Tất nhiên, bạn vẫn có thể tiếp tục cài đặt nhưng có thể một số chức năng sẽ không hoạt động. Bạn có thể tham khảo bài viết "Xử lý cảnh báo trong quá trình cài đặt và cấu hình Joomla!"để giải quyết vấn đề này. Bước 3: Thông tin bản quyền Bạn nên dành một chút thời gian để đọc các thông tin này. Collection by traibingo 27
  32. Bước 4: Thiết lập các thông số để kết nối tới Cơ sở dữ liệu Trước khi thực hiện bước này bạn cần có một database để chứa dữ liệu Joomla!. Nếu làm trên localhost, bạn có thể thực hiện theo hướng dẫn của bài viết "Tạo Database Joomla trên WAMP với utf8_general_ci". Hostname: Thường là giá trị "localhost" (chỉ điền giá trị khác nếu như Database Server và Web Server nằm ở 2 nơi khác nhau, hoặc Hosting của bạn cung cấp như vậy) User name: Tên tài khoản gắn với database chứa Joomla của bạn. (Nếu làm trên localhost bạn có thể dùng tài khoản có tên là root). Password: Mật khẩu của tài khoản trên. (Nếu dùng tài khoản root, bạn có thể để trống ô này) Availbe Collations (nếu có): Bạn nên chọn là "utf8_general_ci" Database Name: Tên cơ sở dữ liệu sẽ chứa Joomla của bạn Collection by traibingo 28
  33. Chú ý mục "Table Prefix", để tránh bị tấn công "SQL Injection" bạn nên thay tiền tố "jos_" bằng một chuỗi ký tự khác, chẳng hạn "aroaniv_" Bước 5: Thiết lập các thông số FTP - Nếu đang cài đặt trên LOCALHOST, bạn có thể bỏ qua bước này - Nếu Host của bạn không hỗ trợ, bạn cũng không cần quan tâm - Nếu Host của bạn hỗ trợ, bạn cần chú ý các thông số sau: FTP User: Tên tài khoản FTP - tài khoản dùng để quản lý các thư mục và file trên Host FTP Password: Mật khẩu tương ứng. Auto Find Path: Tự động tìm đường dẫn tới nơi chứa Web của bạn FTP Host: Địa chỉ HOST chứa website Joomla, bạn có thể sử dụng địa chỉ IP của HOST FTP Port: Cổng của dịch vụ FTP, theo mặc định là 21 Nên dùng chính tài khoản mà bạn đã sử dụng để Upload bộ cài đặt Joomla lên HOST Collection by traibingo 29
  34. Bước 6: Thiết lập cấu hình site Joomla của bạn Site name: tên site của bạn. VD: YOURSITE.COM, VnExpress, Hosting Việt Nam, ThanhNienOnline Your Email: địa chỉ email của bạn VD: admin@yoursite.com Admin Password: Mật khẩu để quản trị Joomla Các thông số trên sau này đều có thể thay đổi dễ dàng nên bạn không cần bận tâm lắm. Chỉ cần nhớ mật khẩu là đủ . Install Defaul Sample Data: Cài đặt dữ liệu mẫu. Bạn nên nhấn nút này để Joomla tạo mẫu cho bạn một trang web đơn giản. Collection by traibingo 30
  35. Bước 7: Kết thúc Vì lý do an toàn và để hoàn tất quá trình cài đặt bạn cần xóa thư mục có tên "installation" - Lưu ý: tài khoản truy nhập hệ thống là: admin; mật khẩu: mật khẩu mà bạn đã gõ ở bước 6. - Để xem Website của bạn: Nhấn vào nút Site - Để quản trị Website: Nhấn vào nút Admin. Đường dẫn sẽ có dạng như sau: hoặc hoặc (nếu cài trực tiếp trên máy của bạn) Collection by traibingo 31
  36. Keyword: joomla, website, server, ftp, upload, host, localhost, download, database, website joomla, upload joomla, download joomla 1.5 cài đặt, thư mục, hướng dẫn, tài khoản, cài đặt joomla, hướng dẫn cài đặt, upload joomla lên server Collection by traibingo 32
  37. Part 6 Hướng dẫn Việt hóa Joomla 1.5 Joomla! 1.5 ra đời đánh dấu sự nhảy vọt cả về cách trình bày, giao diện, tính năng, kiến trúc và " hỗ trợ tất cả các ngôn ngữ có tập ký tự được biểu diễn bằng bảng mã UTF-8 " (trích dẫn từ Với Joomla! 1.5 việc bản địa hóa đã trở nên dễ dàng hơn, toàn diện hơn (sử dụng bảng mã Unicode và cho phép bản địa hóa cả phần front-end, back-end). Bài viết này sẽ giúp các bạn nhanh chóng Việt hóa Joomla! (Việt hóa cả phần front-end và back- end) chỉ sau vài bước đơn giản Việt hóa phần tiền sảnh front-end (phía người sử dụng) Các gói ngôn ngữ phần tiền sảnh của Joomla! 1.5 được lưu trong thư mục "\language". Gói ngôn ngữ tiếng Anh sẽ được lưu trong thư mục "\language\en-GB". Trong thư mục này lại có các file sau: index.html: Để tránh các hacker liệt kê các file và thư mục. en-GB.xml: Mô tả các thông tin liên quan tới gói ngôn ngữ. en-GB.ignore.php: Danh sách các ký tự bỏ qua khi tìm kiếm. en-GB.ini: File ngôn ngữ chính của Joomla! en-GB.com_xxx.ini: File ngôn ngữ cho component có tên là com_xxx. en-GB.mod_xxx.ini: File ngôn ngữ cho module có tên là mod_xxx. en-GB.plg_xxx.ini: File ngôn ngữ cho các plugin có tên liên quan. Để tạo gói ngôn ngữ tiếng Việt. Chúng ta làm như sau: Bước 1. Tạo thư mục chứa gói ngôn ngữ tiếng Việt: "\language\vi-VN" Collection by traibingo 33
  38. Bước 2. Copy toàn bộ các file trong thư mục "\language\en-GB" tới thư mục "\language\vi-VN" Bước 3. Thay phần tiền tố của tên các file tiếng Anh (en-GB) bằng tiền tố của file tiếng Việt (vi-VN). Nghĩa là ta có cấu trúc thư mục chứa gói ngôn ngữ tiếng Việt như sau: \language\vi-VN\ \index.html \vi-VN.xml \vi-VN.ignore.php \vi-VN.ini \vi-VN.com_xxx.ini \vi-VN.mod_xxx.ini \vi-VN.plg_xxx.ini Bước 4. Thay file "vi-VN.xml", "vi-VN.ignore.php" bằng 2 file đính kèm sau: Download Bước 5. Mở các file *.ini bằng trình soạn thảo Notepad++ (khuyến cáo). Bước 6. Chọn định dạng (mở menu Format) khi lưu các file này: "UTF-8 without BOM" (lưu các ký tự tiếng Việt nhưng không chèn thêm ký tự đánh dấu UTF-8 ở đầu file). Bước 7. Tiến hành Việt hóa. Thay các từ/cụm từ tiếng Anh bằng từ/cụm từ tiếng Việt tương đương. Việt hóa phần hậu sảnh back-end (phía người quản trị) Gói ngôn ngữ tiếng Anh của phần hậu sảnh Joomla! được lưu trong thư mục "administrator\language\en-GB". Việc Việt hóa được tiến hành tương tự như phần tiền sảnh front-end của Joomla!. Chú ý: Tất cả các file nếu nội dung có chứa tiếng Việt thì đều phải lưu với lựa chọn "UTF-8 without BOM". Collection by traibingo 34
  39. Keyword: Việt, Việt hóa, tiếng Việt, ngôn ngữ, gói ngôn ngữ, tiếng Anh, bản địa hóa, UTF-8, front-end, back-end Cài đặt bộ gõ tiếng Việt AVIM cho Joomla Bộ gõ A.V.I.M - Advanced Vietnamese Input Method (tên gọi cũ là H.I.M) của tác giả Đặng Trần Hiếu được phát triển bằng ngôn ngữ Javascript, có thể dễ dàng tích hợp AVIM vào website, diễn đàn. AVIM có thể hoạt động tốt với IFRAME nên sẽ kết hợp được với các bộ gõ thuộc dạng web-based WYSIWYG (bộ soạn thảo tích hợp trên web, forum, blog ) khác được viết bằng Javascript hay sử dụng công nghệ AJAX. AVIM là bộ gõ đầu tiên tương thích cùng lúc với trình duyệt FireFox lẫn Internet Explorer vào thời điểm phát hành. Điểm mạnh của AVIM là khả năng tương thích. Cho đến thời điểm hiện tại, phiên bản AVIM 20070613 hoạt động trên khá nhiều trình duyệt như Internet Explorer, FireFox, Safari, Opera, Konqueror AVIM chạy "ngon lành" trên hầu hết các hệ điều hành Windows, Linux, Solaris, Mac OS Hiện nay, số lượng website và diễn đàn tại Việt Nam sử dụng AVIM rất phổ biến như HVA, DDTH, HN-AMS, Wikipedia Việt Nam, VN UNITED, JoomlaViet, ITP Students Forums Gần đây AVIM còn được phát triển thành module cho FireFox và Yahoo Messenger. Thực hiện cài đặt bộ gõ AVIM: Bước 1: Download AVIM bản mới nhất Blog của tác giả: Hieu's Blog Download link: Bước 2: Thiết lập các thông số Mở file AVIM (VD: AVIM20070613.js) mà bạn vừa download về và sửa các thông số sau (nếu muốn) Collection by traibingo 35
  40. method=0 //Cách gõ tiếng Việt, 0=Tự động, 1=TELEX, 2=VNI, 3=VIQR on_off=1 //1=Bật bộ gõ, 0=Tắt bộ gõ dockspell=1 //1=Có kiểm tra chính tả, 0=Không kiểm tra chính tả dauCu=1 //1=Bỏ dấu kiểu cũ (o`a, o`e, u`y) useCookie=1 //1=Có sử dụng Cookie, 0=Không sử dụng cookie Bước 3: Upload file AVIM lên Joomla Upload AVIM lên thư mục Joomla: đặt trực tiếp vào thư mục Joomla Joomla \templates \templates\yoursite \templates\yoursite\index.php avim20070613.js index.php Bước 4: Nhúng AVIM vào Website Joomla Mở file index.php trong thư mục templates\templa_cua_ban. VD: "Joomla\templates\yoursite\index.php" Tìm đến trước thẻ và thêm đoạn mã sau (nhớ thay = Website của bạn ) Bước 5: Nhúng AVIM vào phần quản trị Nếu là Joomla 1.5: mở file index.php trong thư mục "administrator\templates\khepri" Nếu là Joomla 1.0.x: mở file index.php trong thư mục "administrator\templates\joomla_admin" Sau đó làm tương tự như bước 4 Bước 6: Chạy thử Collection by traibingo 36
  41. Mở Website của bạn. VD: F12: bật/tắt bộ gõ F9: thay đổi kiểu gõ (luân phiên Tự động, Telex, VNI, VIQR) F8: bật/tắt chế độ kiểm tra chính tả. F7: bật/tắt chế độ bỏ dấu theo kiểu cũ ("òa", "ùy" ). Cài đặt gói ngôn ngữ tiếng Việt (Việt Nam) cho Joomla 1.0.x Bước 1: Download gói ngôn ngữ Bước 2: Mở trang quản trị Bước 3: Tiến hành cài đặt Bước 4: Thiết lập ngôn ngữ tiếng Việt thành ngôn ngữ mặc định cho Site Bước 1: Download gói ngôn ngữ tiếng Việt Tải gói ngôn ngữ (language package): hoặc Bước 2: Mở trang quản trị Mở trang quản trị bằng đường dẫn VD: Collection by traibingo 37
  42. Bước 3: Tiến hành cài đặt Vào menu Installers > Languages Nhấn nút [Browers] > chỉ vào gói ngôn ngữ mà bạn vừa download ở trên. Collection by traibingo 38
  43. Nhấn [Upload File & Install] Đợi Joomla thông báo kết quả cài đặt, nếu thành công nhấn vào link Continue. Từ danh sách các gói ngôn ngữ, chọn ngôn ngữ mới cài đặt (ngôn ngữ Việt Nam), sau đó nhấn vào nút [Publish] Bây giờ bạn đã cài đặt thành công gói ngôn ngữ mới cho Joomla! Collection by traibingo 39
  44. Bước 4: Thiết lập ngôn ngữ tiếng Việt thành ngôn ngữ mặc định cho Site Mở trang quản trị Vào menu Global Configuration -> Site -> Locale, chọn ngôn ngữ Việt Nam và nhấn nút [Default] để thiết lập tiếng Việt thành ngôn ngữ mặc định cho site. Collection by traibingo 40
  45. Part 7 Hướng dẫn cài đặt template cho Joomla! 1.5 Bước 1: Download template cho Joomla Bạn có thể tìm template cho Joomla! bằng từ khóa "Joomla template", "Template Free" and "Joomla" hoặc xem bài "Tập hợp các trang cung cấp template free" để tìm một template phù hợp. Bước 2: Mở trang quản trị Mở trang quản trị (BackEnd) bằng đường dẫn: VD: Bước 3: Tiến hành cài đặt Mở menu Extensions -> Install/Uninstall Collection by traibingo 41
  46. e Nhấn lên nút [Browse ], chọn template mà bạn vừa download (được đóng gói trong một file zip hoặg gz) sau đó nhấn lên nút [Upload file & Install] e Chờ Joomla thông báo việc cài đặt thành công rồi nhấn vào Continue Bước 4: Thiết lập template mới cài đặt thành template mặc định Mở menu Extensions -> Template manager, chọn template mới cài đặt rồi nhấn vào nút [Default] Collection by traibingo 42
  47. e Tham khảo thêm: Các phần tử mặc định trong file CSS của Joomla 1.0.x Joomla 1.0.x sử dụng file CSS có tên là template_css.css. File này nằm trong thư mục templates\template_cua_ban. Để có thể thiết kế và chỉnh sửa theo ý muốn bạn cần nắm rõ các phần tử CSS mà Joomla sử dụng. Chúng bao gồm các phần tử sau: / com_contact / .componentheading .contentpane .contentdescription .sectiontableheader .category .small .contentpane .contentheading Collection by traibingo 43
  48. .contact_email .inputbox .button / com_content / .componentheading .contentpane .contentdescription .inputbox .sectiontableheader .sectiontableentry1 .sectiontableentry2 .sectiontablefooter .blogsection .contentpaneopen .article_seperator .contentheading .contentpagetitle .buttonheading .small .createdate .modifydate .readon .pagenav_prev .pagenav_next .adminform .button .text_area .blog .blog_more / com_login / .contentpane .componentheading .inputbox .button / com_newsfeeds / Collection by traibingo 44
  49. .componentheading .contentpane .contentdescription .sectiontableheader .category .small .contentheading / com_poll / .componentheading .contentpane .pollstableborder .sectiontableheader .smalldark .button .inputbox / com_registration / .componentheading .contentpane .inputbox .button / com_search / .componentheading .contentpaneopen .inputbox .button .searchintro .small .highlight / com_user / .componentheading .inputbox .button Collection by traibingo 45
  50. .row1 .row2 / com_weblinks / .componentheading .contentpane .contentdescription .sectiontableheader .tabclass1 .tabclass2 .small .category .inputbox / com_wrapper / .contentpane .componentheading .wrapper / includes/frontend / .moduletable .newsfeed .module .message / includes\HTML_toolbar.php / .toolbar / includes\joomla.php / .profiler .item .small .back_button .buttonheading .tab-page Collection by traibingo 46
  51. .tab .inputbox / includes\joomla.xml.php / .paramlist .editlinktip .text_area .inputbox / includes\pageNavigation.php / inputbox .pagenav / includes\pathway.php / .pathway / includes\js\dtree\dtree.js / .dtree .dTreeNode .node .clip / includes\patTemplate\tmpl\forms.html / .message .tooltip .tab-page .tab .expander / mambots\content\mosimage.php / .mosimage_caption .mosimage / mambots\content\mospaging.php / Collection by traibingo 47
  52. .pagenavcounter .pagenavbar .contenttoc .toclink / mambots\content\mosvote.php / .content_rating .content_vote .button / modules\mod_latestnews.php / .latestnews / modules\mod_login.php / .button .inputbox / modules\mod_mostread.php / .mostread / modules\mod_mostread.php / .poll .pollstableborder .button / modules\mod_mostread.php / .syndicate .syndicate_text / modules\mod_search.php / .inputbox .button .search Collection by traibingo 48
  53. Part 8 Cấu trúc gói cài đặt template Joomla! Tất cả gói giao diện (template/theme) của Joomla! đều được đóng gói trong một file nén (.zip) cho phép bạn upload và cài đặt trực tiếp thông qua trang quản trị. Template là một thế mạnh của Joomla!. Hiện có hàng nghìn template miễn phí cũng như có phí cho bạn lựa chọn. Việc thiết kế chúng cũng khá đơn giản và bạn hoàn toàn có thể chuyển đổi từ một template thuần HTML sang template Joomla. Ngoài ra bạn có thể thay đổi template nhanh chóng và dễ dàng thông qua trang quản trị. Không những thế Joomla còn cho phép một template được áp dụng cho toàn site hoặc một số trang nhất định. Cấu trúc của gói cài đặt template Joomla! Một gói cài đặt template Joomla gồm các file bắt buộc sau: index.php templateDetails.xml template_css.css hoặc template.css template_thumbnail.png File "index.php" File này gồm các mã lệnh PHP, thẻ , thẻ và các bảng hoặc các thẻ để định vị các module và tạo nên bố cục của template. File "templateDetails.xml" Được sử dụng trong quá trình cài đặt. File này chứa các thông số về template và giúp Joomla! biết được trong quá trình cài đặt cần tạo các thư mục và truyền các file css, php, ảnh nào lên thư mục templates. Collection by traibingo 49
  54. File "template_css.css" hoặc "template.css" Joomla 1.0.x sử dụng file template_css.css còn Joomla 1.5 sử dụng file template.css. Đây chính là CSS chính của Joomla. File này kết hợp với index.php để tạo nên template. File "template_thumbnail.png" File này chính là ảnh chụp minh họa của template. Nó giúp bạn dễ hình dung khi lựa chọn template hoặc trong phần quản trị hoặc ở mặt tiền của Website (nếu bạn cho phép mọi người có thể tùy chọn template) Các thư mục và file khác. Ngoài các file chính nói trên trong gói cài đặt template có thể có thêm thư mục CSS để chứa các file CSS bổ sung, thư mục ảnh để chứa các ảnh được sử dụng cho template, thư mục javascript để chứa các javascript (nếu có) Cấu hình Joomla để gửi/nhận mail với GMail 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 Collection by traibingo 50
  55. 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. 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: 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: Collection by traibingo 51
  56. 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 Collection by traibingo 52
  57. Component-Module-Plugin AxtaWeb (ASM) - Công cụ quản lý website Joomla! xuất sắc Nếu bạn đã từng là một tín đồ của DotNetNuke hay các ứng dụng khác trên nền .Net chắc bạn không thể quên tính năng kéo và thả các module thật tuyệt vời. Còn đối với Joomla! thì sao? Tính năng này đã bị bỏ quên quá lâu. Bạn phải mất khá nhiều bước để quản lý các module: Đăng nhập vào back-end, vào mục quản lý module, chọn module, bật/tắt hoặc chỉnh sửa, lưu lại và quay ra trang chủ để kiểm tra vừa mất thời gian lại không trực quan. Nhưng bạn đừng lo bởi vì chúng ta đã có công cụ AxtaWeb Site Manager (ASM) với 3 tính năng nổi trội: Kéo và thả các module, Kéo và thả để sắp xếp các mục của Menu, Thêm bài viết nhanh chóng và dễ dàng từ front-end. Nào chúng ta hãy cùng thử nghiệm. AxtaWeb Site Manager (ASM) là cách dễ nhất và nhanh nhất để thực hiện các tác vụ thông thường. ASM làm việc trên mọi template Joomla! hợp chuẩn (XHTML & CSS). Chỉ cần thêm 3 dòng code vào template và cài đặt ASM, bạn có thể chạy ngay ASM để kiểm tra với template của bạn hay bất cứ một template nào khác (chẳng hạn của RocketTheme, Joomlart, YooTheme, DesignForJoomla ) ASM chính là một công cụ hoàn hảo dành cho các webmaster. Với giao diện trực quan của ASM, soạn giả (người viết bài) có thể được huấn luyện thành thạo trong vài phút để thực hiện các tác vụ thông thường mà không cần phải đăng nhập vào back-end. Các tính năng của AxtaWeb Site Manager (ASM): Quản lý các module Bất cứ một module Joomla! nào được cài đặt trên site của bạn đều có thể xuất bản (published), hủy xuất bản (unpulished) và di chuyển tới các vị trí trên template trong vài giây. Nếu bạn muốn thử với module Login ở các vị trí khác nhau? Chỉ cần trỏ và click vào mođule đó để di chuyển. Quản lý các menu Collection by traibingo 53
  58. Bạn chỉ mất một click để xuất bản, hủy xuất bản một menu. Kéo và thả để thay đổi thứ tự các mục trên menu và tạo các mục con. Thêm nội dung (bài viết) Chỉ mất vài click chuột, bạn có thể thêm bài viết ngay từ front-end. Nhờ việc kết hợp với "Quản lý module", bài viết mới của bạn được thêm vào Website với rất ít thời gian. Một công cụ hoàn hảo để thêm một lượng lớn các bài viết cùng lúc! Xuất bản các Component Việc xuất bản một component ở giao diện front-end không thể dễ dàng hơn. Giống như các tính năng ở trên, chỉ cần kéo và thả! Collection by traibingo 54
  59. Part 9 Cài đặt các thành phần mở rộng cho Joomla Sau khi cài đặt Joomla bạn đã có một Website với nhiều tính năng cơ bản. Tuy nhiên, nếu muốn tùy biến hoặc bổ sung tính năng cho Website các bạn có thể cài đặt thêm các thành phần mở rộng (extension) như: gói ngôn ngữ (language package), giao diện (template), component, mô-đun (module), mambot/plugin. Những thành phần mở rộng này được đánh dấu bằng các biểu tượng như hình bên dưới đễ dễ phân biệt. Tuy nhiên chúng có thể là những đơn vị độc lập hoặc có thể là một gói gồm cả component, module, mambot/plugin hỗ trợ lẫn nhau. Các bước cài đặt một thành phần mở rộng: Bước 1: Download thành phần mở rộng Truy cập vào website Sử dụng công cụ tìm kiếm hoặc dựa theo danh mục liệt kê chức năng để tìm extension thỏa mãn yêu cầu của bạn. Xác định thành phần mở rộng đó là loại gì? Gói ngôn ngữ (language pack), giao diện (template), component, mô-đun(module), Collection by traibingo 55
  60. mambot/plugin hay là một gói (gồm cả component, module và mambot/plugin). Đọc hướng dẫn cài đặt kèm theo Download thành phần mở rộng đó. Bước 2: Cài đặt extension Để cài đặt một thành phần mở rộng bạn có 3 lựa chọn: Cài đặt thông qua file nén (ZIP) Cài đặt thông qua một danh sách các file đã được upload lên Server Cài đặt từ một địa chỉ URL. Cài đặt thông qua file nén (ZIP). Mở trang quản trị (VD: ) Chọn menu "Extensions" Chọn mục "Install/Unistall" Trong ô "Upload Package File" nhấn nút "Browse " và chọn file nén chứa extension. Nhấn nút "Upload file and Install" Chờ Joomla thông báo kết quả cài đặt Lưu ý: Thông thường một thành phần mở rộng (extension) được đóng gói trong một file nén (ZIP) có dạng như sau: Collection by traibingo 56
  61. file_nen.zip thu_muc_1 thu_muc_2 file_xx file_danh_muc.xml Trong đó file .xml nằm ở thư mục ngoài cùng là file chứa các thông số cho quá trình cài đặt và cấu hình. Cài đặt thông qua một danh sách các file Nên áp dụng cách này nếu Server của bạn không hỗ trợ việc giải nén file Zip hoặc gói cài đặt của bạn lớn. Giải nén extension mà bạn đã download được. Upload các file này lên một thư mục nào đó trên Server mà Joomla có thể truy cập được. VD: C:/www/yoursite/joomla/tmp/com_docman VD: \www\yoursite\joomla\tmp\com_docman Mở trang quản trị (VD: ) Chọn menu "Extensions" Chọn mục "Install/Unistall" Trong ô "Install from directory" nhập vào đường dẫn mà bạn đã giải nén extension. Nhấn nút "Install" Đợi Joomla thông báo kết quả cài đặt Cài đặt thông qua một địa chỉ URL trỏ tới gói cài đặt Ít thông dụng Viết bài trong Joomla! Collection by traibingo 57
  62. 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: Tạo một Category - Chuyên mục trong Joomla! 1.0.x Monday, 18 June 2007 19:51 Đăng nhập vào trang quản trị. VD: Mở menu Content -> Category Manager Collection by traibingo 58
  63. Một danh sách các Category (chuyên mục) sẽ xuất hiện. Nhấn vào biểu tượng New để tạo Category mới của bạn. Lựa chọn Section của Category và điền các thông số cần thiết. Collection by traibingo 59
  64. Nhấn nút Save để lưu lại Collection by traibingo 60
  65. Part 10 Tạo một Section - Chủ đề mới trong Joomla 1.0.x Đăng nhập vào trang quản trị. VD: Mở menu Content -> Section Manager Một danh sách các Section (Chủ đề) sẽ hiện ra, nhấn vào biểu tượng New để tạo Section mới của bạn. Collection by traibingo 61
  66. Điền các thông tin cần thiết như: Title (tiêu đề), Section Name (Tên), Description (Mô tả chi tiết) Nhấn nút Save để lưu lại Collection by traibingo 62
  67. Lỗi thường gặp 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 10 Hì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 Collection by traibingo 63
  68. Tắt bỏ trình upload ảnh dựa trên Flash của Joomla 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) 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: Collection by traibingo 64
  69. [Session] ; Handler used to store/retrieve data. session.save_handler = files ; Path to store data session.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: Collection by traibingo 65
  70. Sau đó mở link tới file này. VD: 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. 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: 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\yoursite.com\tmp"; Collection by traibingo 66
  71. "/home/yoursite/public_html/tmp", "/var/www/yoursite.com/public_html/tmp" Collection by traibingo 67
  72. Part 11 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 Collection by traibingo 68
  73. 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": 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 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 Collection by traibingo 69
  74. Đặt câu hỏi tại hoặc 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 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ừ 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 Collection by traibingo 70
  75. 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 và 8. Do biến session.save_path Sẽ chỉ cụ thể sau: Một số giải pháp khác 1. 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_users 3. Tìm bản ghi username=admin và thay password bằng giá trị sau 439581667ef694b60d58f213cccf9503 Đăng nhập lại hệ thống bằng tài khoản: username: admin, password: yoursite Collection by traibingo 71
  76. Part 12 Nâng cấp joomla Hướng dẫn nâng cấp Joomla 1.0.x lên Joomla 1.5 Trước khi thực hiện việc nâng cấp, hãy tiến hành sao lưu toàn bộ Website trước khi thực hiện (sao lưu thư mục Joomla! và sao lưu database của Joomla - khuyến cáo dùng công cụ Sypex SQL Dumper) Bước 1: Cài đặt Thành phần Chuyển đổi (Migrator Component) Download Migrator Component Phiên bản mới nhất của dòng Joomla 1.5 hiện tại là Joomla 1.5 RC3 do vậy bạn hãy download file có tên là "migrator_rc3.tgz" Mở trang quản trị Joomla (thường có dạng: VD: Collection by traibingo 72
  77. Mở menu "Installer" > chọn "Components" Trong mục "Upload Package File", nhấn nút [Browser] và chọn Migrator Component mà bạn vừa download ở trên, sau đó nhấn vào nút [Upload File & Install] để tiến hành cài đặt. Nếu màn hình Joomla thông báo Migrator Component đã được cài đặt thành công bạn hãy nhấn vào nút [Continue] để kết thúc việc cài đặt. Collection by traibingo 73
  78. Để chạy Migrator Component mở menu Components > chọn Migrator. Component này sẽ cho phép bạn chuyển đổi dữ liệu của Joomla 1.0.x sang Joomla 1.5 Chú ý: Component này chỉ cho phép chuyển đổi website Joomla phiên bản 1.0.x lên Joomla 1.5. Ngoài ra website này cần phải hoàn toàn "trinh trắng" nghĩa là chưa cài đặt thêm bất cứ một thành phần mở rộng (component/module/mambot) nào khác. Nếu đã cài đặt thêm component/module/mambot thì bạn cần kiểm tra thông tin hỗ trợ từ thành phần mở rộng đó. Bạn hãy yêu cầu sự hỗ trợ từ chính tác giả của các component/module/mambot. Collection by traibingo 74
  79. Bước 2: Tạo file SQL chuyển đổi (Migration SQL) Chạy component Migrator (menu Components > chọn Migrator), sau đó nhấn vào link Create Migration SQL File. Nếu như mọi thứ đều tốt đẹp Migrator Component sẽ tạo một file chuyển đổi database (*.sql) Nhấn nút [Download] để lưu file này xuống máy tính. Collection by traibingo 75
  80. Bước 3: Chuẩn bị một bản Joomla 1.5 mới Chọn bản mới nhất của dòng Joomla 1.5: Download Joomla 1.5 Sử dụng một công cụ FTP Client nào đó (WS FTP, FileZilla ) hoặc đăng nhập vào cPanel và sử dụng công cụ FileManager mà host cung cấp để tạo một thư mục có tên là "dev" nằm ngay dưới thư mục gốc (public_html). Nếu bạn đã sao lưu toàn bộ Website cũ (chắc chắn là như vậy!) bạn có thể đặt luôn gói cài đặt Joomla! vào thư mục gốc (thường là public_html) mà không cần phải tạo thư mục "dev" Collection by traibingo 76
  81. Tiếp đó bạn hãy upload gói cài đặt Joomla 1.5 lên thư mục này, sau đó giải nén. Sau khi việc Upload bộ cài đặt Joomla 1.5 và việc giải nén đã hoàn tất, có lẽ bạn cần nghỉ ngơi 5' để chuẩn bị cho công việc tiếp theo :) Bước 4: Cài đặt Joomla 1.5 Hãy tham khảo bài viết: Hướng dẫn cài đặt Joomla 1.5 Collection by traibingo 77
  82. Tuy nhiên hãy chú ý ở bước 6 (Step 6: Configuration) Sau khi điền tên của website, email của bạn và mật khẩu của tài khoản admin, hãy chú ý tùy chọn "Load Migration Script" - đây chính là tùy chọn để nâng cấp từ Joomla 1.0.x. Điền các thông số cần thiết Old Table Prefix: Phần tiền tố của các bảng trong database cũ (thường là jos, trừ phi là bạn đã thay đổi). Old Site Encoding: Thường là "utf8_general_ci" Migration Script: Hãy nhấn nút [Browser] và chọn file chuyển đổi .sql mà bạn đã tạo ra từ bước 1. Đánh dấu vào mục "This script is a Joomla! 1.0 migration script" để khẳng định chắc chắn đây là script để chuyển đổi từ Joomla 1.0 lên Joomla 1.5. Collection by traibingo 78
  83. Nhấn vào nút [Upload and execute] để upload file .sql và thực hiện việc đưa database từ Joomla! 1.0.x cũ vào hệ thống mới. Nhấn vào nút [Next] ở góc trên bên phải để sang bước kế tiếp. Xóa thư mục có tên "installation" trong Joomla! để hoàn tất việc cài đặt. Collection by traibingo 79
  84. Collection by traibingo 80
  85. Part 13 Nâng cấp Joomla 1.0.x lên phiên bản mới nhất Việc nâng cấp cho Joomla từ một phiên bản 1.0.x (VD: Joomla 1.0.12) lên phiên bản mới hơn (cùng họ 1.0.x) được thực hiện khá đơn giản. Tuy nhiên để tránh những rủi ro có thể xảy ra, điều đầu tiên các bạn phải làm là tiến hành việc sao lưu (backup) toàn bộ Website của mình. Quy trình về việc sao lưu xin xem chi tiết tại mục "Backup Website Joomla!". Dưới đây là các bước tiến hành việc nâng cấp cho Joomla 1.0.x. [1]. Xác định phiên bản đang sử dụng Đăng nhập vào trang quản trị. VD: [2]. Kiểm tra phiên bản mới nhất đã phát hành Thông tin chung: Collection by traibingo 81
  86. Link download: Chọn bản download: [3]. Nâng cấp Giải nén bản vá bổ sung (-Patch) vừa download và chép đè vào thư mục Joomla của bạn. Mở cPanel > File Manager > Thư mục chứa Joomla Nhấn nút [Upload Files] để upload gói nâng cấp Collection by traibingo 82
  87. Chọn gói nâng cấp mà bạn vừa download ở trên Sau đó nhấn chuột lên file nâng cấp (*.zip) và chọn "Extract File Contents" để chép đè vào thư mục Joomla của bạn Collection by traibingo 83
  88. Nếu bạn có dùng file .htaccess hãy kiểm tra file htacess.txt và cập nhật những phần thay đổi Sao lưu - Backup Joomla! Backup database với LazyBackup 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 Collection by traibingo 84
  89. 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" 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. Collection by traibingo 85
  90. 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/yoursite.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ả. Collection by traibingo 86
  91. Part 14 Backup và Restore dữ liệu bằng Sypex SQL Dumper (nâng cao) Sypex SQL Dumper thực sự làm món đồ không thể thiếu dành cho việc backup (sao lưu) và restore (khôi phục) dữ liệu. Nó chỉ có một file duy nhất nhưng hiệu quả làm việc thì rất tốt. Giao diện làm việc thân thiện, dễ thao tác. Backup và restore được dữ liệu lớn. Có thể chọn 9 tỷ lệ nén khác nhau. Hỗ trợ việc backup và restore một bảng dữ liệu bất kỳ. Bảo mật tốt. Thử nghiệm Máy tính IBM Thinkpad T41 (CPU 1,6GHz, RAM 512M). Web Server: WAMP 1.7.1. Tiến hành backup 1 database có dung lượng là 45.1 MB, xuất ra file .sql có dung lượng là 15 MB, xuất ra file .gz (tỷ lệ nén trung bình - 5) có dung lượng là 4.1 MB mất chưa đến 25". Khôi phục mất 5'55". Số dòng lệnh SQL thực hiện: 413.459. Thông tin và Download: Trang chủ: Download bản tiếng Nga: SypexDumperLite_108_Rusian Download bản tiếng Anh: SypexDumperLite_108_English Cài đặt Sypex SQL Dumper Giải nén Collection by traibingo 87
  92. Upload file "dumper.php" hoặc "dumper.en.php" lên thư mục "Joomla/administrator/" của Joomla. Để tránh sự nhòm ngó của các hacker, bạn nên đổi tên file này thành "yoursite_dumper.php" chẳng hạn Cấu hình Sypex SQL Dumper Thay đổi các thông số sau cho phù hợp define('PATH', 'backups/'); // đường dẫn chứa file backup define('URL', 'backups/'); // các file backup được đặt ở đây define('DBNAMES', 'yoursite_joomla'); // thay 'yoursite_joomla' bằng tên database chứa Joomla Chạy công cụ Supex SQL Dumper Truy nhập bằng đường dẫn VD: VD: Backup database (sao lưu dữ liệu) Mở công cụ Sypex Dumper Nhập username và password Chọn "Backup / Make a database backup" > chọn database > chọn "Compression = GZIP" (nếu muốn nén) > chọn mức nén "Compression Level" (9 - mức cao nhất). Nhấn "Go" để xuất dữ liệu Collection by traibingo 88
  93. Lưu ý: Các file dữ liệu được lưu trong: Joomla\administrator\backups Nếu muốn backup một bảng nào đó chứ không backup toàn bộ database > gõ tên bảng vào mục "Filter". Chẳng hạn jos_content Restore database (Khôi phục dữ liệu) Mở SQL Dumper Nhập username và password Chọn "Restore existing backup" > chọn database trong "Restore in Database" > chọn file dữ liệu đã sao lưu trong "Dump File" Nhấn "Go" để khôi phục dữ liệu Lưu ý: Để khôi phục dữ liệu chỉ cần đặt file dữ liệu vào thư mục backup mà bạn đã khai báo ở mục "cấu hình", Sypex SQL Dumper sẽ tự động phát hiện. Collection by traibingo 89
  94. Backup dữ liệu bằng SQL Dumper SQL Dumper là một giải pháp đơn giản cho việc sao lưu (backup) dữ liệu Joomla. Nó thực sự dễ làm kể cả với những ai mới làm quen với Joomla. Ngoài tính bảo mật cao nó còn có thể sao lưu và khôi phục các database lớn. Công cụ này được Sypex giới thiệu, phân phối theo giấy phép GNU/GPL và được tích hợp vào Joomla bởi Ivo Apostolov. Cài đặt Thông tin về SQL Dumper: Download SQL Dumper: Mở trang quản trị Joomla: VD: Chọn mục "Installers" > "Components" > nhấn nút "Browers" > chọn file "com_sql.zip" > nhấn nút "Upload and Install" Mở công cụ Truy nhập bằng đường dẫn: VD: Hoặc đăng nhập vào trang quản trị > chọn mục "Components" > chọn mục "SQL Dumper" Collection by traibingo 90
  95. Sao lưu dữ liệu Mở công cụ SQL Dumper Nhập username và password Chọn "Backup of existing database" > chọn database > chọn "Compression = GZIP" để nén > chọn mức nén "Compression Level" (9 - mức cao nhất). Nhấn "Go" để xuất dữ liệu Lưu ý: Các file dữ liệu được lưu trong: Joomla\administrator\backups Nếu muốn backup một số bảng nhất định chứ không backup toàn bộ database > gõ tên bảng vào mục "Filter" Khôi phục dữ liệu Mở SQL Dumper Nhập username và password Chọn "Restore existing backup" > chọn database trong "Restore in Database" > chọn file dữ liệu đã sao lưu trong "Dump File" Nhấn "Go" để khôi phục dữ liệu Collection by traibingo 91
  96. Collection by traibingo 92
  97. Part 15 Sao lưu và khôi phục Website Joomla! bằng phpMyAdmin Một trong những công việc hết sức quan trọng và cần được quan tâm thường xuyên của quản trị Website Joomla đó là: Sao lưu (backup) định kỳ và khôi phục (restore) Website khi gặp sự cố. Việc sao lưu và khôi phục tuy không mất nhiều thời gian nhưng đa số Webmaster lại quên hoặc ngại, cho đến khi sự việc xảy ra thì không có cách gì cứu vãn; công sức và thời gian bỏ ra có thể rất lớn. Về giải pháp sao lưu và khôi phục Website có thể có nhiều nhưng ở đây ta chỉ đề cập đến cách thông dụng: Sao lưu toàn bộ (gồm sao lưu toàn bộ thư mục chứa Website Joomla và sao lưu toàn bộ Cơ sở dữ liệu - Database) Việc sao lưu và khôi phục Website Joomla! có thể thực hiện bằng 2 cách: thủ công hoặc tự động. Tuy nhiên trong bài viết này ta chỉ đề cập đến việc sao lưu thủ công. Quá trình sao lưu. Sao lưu thư mục Website Joomla! Collection by traibingo 93
  98. Bạn chỉ cần dùng một công cụ FTP như FileZilla, CuteFTP, SmartFTP, Net2FTP để copy toàn bộ thư mục chứa Website Joomla! và lưu xuống ổ cứng. Sao lưu cơ sở dữ liệu (database) Thông thường HOSTING của bạn sẽ cung cấp công cụ phpMyAdmin để quản trị CSDL (Database). Các bước thực hiện như sau: Vào cPanel > MySQL Databases > phpMyAdmin Mở công cụ phMyAdmin. Chọn Database chứa Joomla trong danh sách xổ xuống (bên tai trái) Chọn mục "Export" Chọn "Add DROP TABLE / DROP VIEW" và "Add IF NOT EXISTS" (nếu có) Collection by traibingo 94
  99. Chọn "Save as file" Nhấn nút "Go" Lưu file *.sql mà phpMyAdmin vừa xuất ra. Nếu HOSTING cung cấp một công cụ khác, quy trình thao tác cũng thực hiện tương tự. Quá trình khôi phục. Khôi phục thư mục chứa Website Joomla: Bạn hãy xóa toàn bộ thư mục chứa Website Joomla hiện tại sau đó copy thư mục đã sao lưu vào thế chỗ. Khôi phục Cơ sở dữ liệu (Database) Mở công cụ phpMyAdmin Chọn database chứa Joomla Chọn "Import" Nhấn nút "Browser" và chọn file *.sql mà bạn đã sao lưu Nhấn nút "Go" để khôi phụ Collection by traibingo 95
  100. Tối ưu Website Joomla! Tăng tốc Joomla! bằng cách tạo cache cho module 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! 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 MB Application afterInitialise: 0.073 seconds, 2.16 MB Application afterRoute: 0.087 seconds, 2.83 MB Application afterDispatch: 0.112 seconds, 3.64 MB Application 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 Collection by traibingo 96
  101. 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 Bước 1: Chỉnh sửa file XML của module Bạn thêm vào đoạn mã sau: Use global No caching <param name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" Collection by traibingo 97
  102. /> 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! Collection by traibingo 98
  103. Part 16 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. 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à yoursite.com, bạn sẽ cần cấu hình để các máy tìm kiếm đều coi và 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. Collection by traibingo 99
  104. Bạn có thể sử dụng dịch vụ "Google Analytics" để thống kê về hoạt động của website 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. Collection by traibingo 100
  105. Hạn chế sử dụng các Component/Module Nếu bạn ghé thăm 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. Hạn chế các tính năng liên quan tới thống kê 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). Loại 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 Collection by traibingo 101
  106. 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. 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) VD: Bước 2: Thiết lập tính năng "cache" Mở menu Site -> Global Configuration Collection by traibingo 102
  107. 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 Collection by traibingo 103
  108. 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'). Collection by traibingo 104
  109. Part 17 Tạo link thân thiện SEO/SEF 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: &Itemid=6 Sau khi bật tính năng SEO/SEF chúng ta có các địa chỉ URL tương ứng như sau: SEF 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: Collection by traibingo 105
  110. # 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 bạn có dạng , gõ thêm dòng: RewriteBase / Nếu Website của bạn có dạng , 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 bạn chạy 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: Nếu đang dùng Joomla 1.5 Chọn Global Configuration > SEO Settings > Search Engine Friendly URLs Collection by traibingo 106
  111. Nếu đang dùng Joomla 1.0.x (1.0.12) Chọn Site > Global Confirguration > SEO Bước 4: 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 trong joomla Phân quyền trong Joomla! 1.5 Phân quyền Joomla! ở tiền sảnh (front-end) Collection by traibingo 107
  112. Ở 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) 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. Collection by traibingo 108
  113. Collection by traibingo 109
  114. 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 Collection by traibingo 110
  115. joomla, administrator, manager, publisher, editor, author, registered, guest, front-end, back-end, acl, access control list Collection by traibingo 111
  116. Part 18 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: 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 Bước 1: Tạo một thư mục bí mật chẳng hạn [Joomla]/secret Thư mục này nằm cùng mức với thư mục /administrator Collection by traibingo 112
  117. 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: Tạo một file "yoursite.php" trong thư mục bí mật trên với nội dung sau: Bạn nên đổi cặp giá trị cookie "YoursiteAdminSession" & "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à "yoursite.php" :) Bước 3: Thêm nội dung sau tới file ".htaccess" của thư mục /administrator RewriteEngine On RewriteCond %{REQUEST_URI} ^/administrator RewriteCond %{HTTP_COOKIE} !YoursiteAdminSession=abcdef123456 RewriteRule .* - [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: VD: Reference: Collection by traibingo 113
  118. 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ì? 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. Collection by traibingo 114
  119. 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) Collection by traibingo 115
  120. 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) Collection by traibingo 116
  121. CHMOD 644 (rw- r r ) cho file 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: &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: CHMOD 755 cho các thư mục, CHMOD 644 cho các file bằng dòng lệnh Collection by traibingo 117
  122. 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ục find . -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ục find . -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à file find . -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" Đố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 Collection by traibingo 118
  123. CHMOD 755 (rwx r-x r-x) cho thư mục bằng FileZilla Collection by traibingo 119
  124. CHMOD 755 (rwx r-x r-x) cho thư mục bằng "File Manager" Collection by traibingo 120
  125. Part 19 Chống tấn công SQL Injection trong Joomla 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 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_' Collection by traibingo 121
  126. 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') Đố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: Collection by traibingo 122
  127. $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ụ: 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: Collection by traibingo 123
  128. $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 ); 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: 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) Collection by traibingo 124
  129. 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: Joomla! HISA sẽ thông báo kết quả Host Environment: Thông số chung của Host Collection by traibingo 125
  130. PHP Environment: Thông số về PHP MySQL Environment: Thông số về MySQL 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. Collection by traibingo 126