Kiến thức Hữu ích 😍

Hướng Dẫn Cài Đặt MediaWiki Trên CentOS 7 Nhanh Chóng & Hiệu Quả


Chào bạn, nếu bạn đang tìm kiếm một giải pháp mạnh mẽ để xây dựng hệ thống quản lý tri thức, tài liệu nội bộ hoặc một trang wiki cộng đồng, thì MediaWiki chính là câu trả lời. Đây là phần mềm mã nguồn mở đã tạo nên nền tảng cho Wikipedia, Bách khoa toàn thư mở lớn nhất thế giới. Kết hợp với sự ổn định và bảo mật của hệ điều hành CentOS 7, bạn sẽ có một nền tảng vững chắc để lưu trữ và chia sẻ thông tin.

Trong bài viết này, AZWEB sẽ hướng dẫn bạn từng bước chi tiết để cài đặt MediaWiki trên CentOS 7. Chúng tôi sẽ đi từ khâu chuẩn bị môi trường máy chủ, cài đặt các thành phần cần thiết như Apache, PHP, MariaDB, cho đến cấu hình và tối ưu hóa để wiki của bạn hoạt động mượt mà nhất. Dù bạn là người mới bắt đầu hay đã có kinh nghiệm quản trị hệ thống, bài hướng dẫn này đều sẽ cung cấp những kiến thức hữu ích và dễ áp dụng. Hãy cùng bắt đầu hành trình xây dựng trang wiki của riêng bạn ngay bây giờ!

Giới thiệu về MediaWiki và CentOS 7

MediaWiki là một phần mềm mã nguồn mở miễn phí, được thiết kế chuyên biệt để tạo và quản lý các trang web theo mô hình wiki. Nổi tiếng nhất với vai trò là nền tảng của Wikipedia, MediaWiki cho phép nhiều người dùng cùng nhau biên soạn, chỉnh sửa và quản lý nội dung một cách dễ dàng. Ứng dụng thực tiễn của nó rất đa dạng, từ việc xây dựng các kho tri thức nội bộ cho doanh nghiệp, tạo tài liệu hướng dẫn sản phẩm, cho đến việc xây dựng các trang bách khoa toàn thư chuyên ngành.

Ưu điểm lớn nhất của MediaWiki là khả năng mở rộng và tùy biến cao. Với hàng ngàn tiện ích mở rộng (extensions) có sẵn, bạn có thể bổ sung vô số tính năng như trình soạn thảo trực quan, hệ thống phân quyền chi tiết, và tích hợp với các dịch vụ khác. Cấu trúc của nó được tối ưu hóa để xử lý lượng lớn nội dung và lưu lượng truy cập, đảm bảo hiệu suất ổn định ngay cả khi hệ thống phát triển.

Bên cạnh đó, CentOS 7 là một hệ điều hành máy chủ dựa trên Red Hat Enterprise Linux (RHEL), nổi tiếng về sự ổn định, an toàn và được cộng đồng hỗ trợ lâu dài. Đây là lựa chọn lý tưởng cho các ứng dụng web quan trọng đòi hỏi thời gian hoạt động cao và ít phải bảo trì. Việc chọn CentOS 7 để cài đặt MediaWiki là một sự kết hợp hoàn hảo, mang lại một nền tảng vững chắc, đáng tin cậy để bạn yên tâm xây dựng và phát triển hệ thống quản lý tri thức của mình.

Chuẩn bị môi trường và các yêu cầu cần thiết

Trước khi bắt đầu cài đặt MediaWiki, việc chuẩn bị một môi trường máy chủ sạch sẽ và đầy đủ các thành phần cần thiết là vô cùng quan trọng. Điều này đảm bảo quá trình cài đặt diễn ra suôn sẻ và hệ thống wiki của bạn hoạt động ổn định sau này.

Kiểm tra và cập nhật hệ thống CentOS 7

Đầu tiên, hãy đảm bảo hệ điều hành CentOS 7 của bạn được cập nhật lên phiên bản mới nhất. Việc này giúp vá các lỗ hổng bảo mật và cập nhật các gói phần mềm hệ thống, tạo nền tảng vững chắc cho các bước tiếp theo. Bạn cần có quyền root hoặc một người dùng có quyền sudo để thực hiện các lệnh này.

Hãy mở terminal và chạy lệnh sau để cập nhật toàn bộ hệ thống:

sudo yum update -y

Quá trình này có thể mất vài phút tùy thuộc vào số lượng gói cần cập nhật. Sau khi hoàn tất, bạn đã có một hệ thống CentOS 7 sẵn sàng cho việc cài đặt phần mềm.

Hình minh họa

Yêu cầu phần mềm cho MediaWiki

MediaWiki hoạt động trên nền tảng LAMP, viết tắt của Linux, Apache, MySQL/MariaDB và PHP. Chúng ta cần cài đặt và cấu hình từng thành phần này.

Cài đặt Apache HTTP Server

Apache là máy chủ web phổ biến sẽ phục vụ các trang wiki của bạn đến người dùng. Để cài đặt Apache, hãy sử dụng lệnh sau:

sudo yum install httpd -y

Sau khi cài đặt xong, bạn cần khởi động dịch vụ Apache và cho phép nó tự khởi động cùng hệ thống:

sudo systemctl start httpd
sudo systemctl enable httpd

Cài đặt PHP và các extension cần thiết

PHP là ngôn ngữ lập trình mà MediaWiki được xây dựng trên đó. MediaWiki yêu cầu một số tiện ích mở rộng (extensions) của PHP để hoạt động đầy đủ chức năng. Bạn có thể cài đặt PHP cùng các extension cần thiết bằng một lệnh duy nhất.

sudo yum install php php-mysqlnd php-gd php-xml php-intl php-json php-mbstring -y

Các extension này hỗ trợ kết nối cơ sở dữ liệu, xử lý hình ảnh, phân tích XML và các chức năng quốc tế hóa quan trọng khác.

Hình minh họa

Cài đặt và cấu hình MySQL/MariaDB

MediaWiki cần một hệ quản trị cơ sở dữ liệu để lưu trữ tất cả nội dung, từ bài viết, thông tin người dùng đến lịch sử chỉnh sửa. MariaDB là một nhánh của MySQL và hoàn toàn tương thích, thường được sử dụng trên CentOS 7.

Cài đặt MariaDB server bằng lệnh:

sudo yum install mariadb-server -y

Tiếp theo, khởi động và kích hoạt dịch vụ MariaDB:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Bước cuối cùng và quan trọng nhất là bảo mật cho MariaDB. Chạy script bảo mật và làm theo các hướng dẫn trên màn hình để đặt mật khẩu root, xóa người dùng ẩn danh và vô hiệu hóa đăng nhập từ xa.

sudo mysql_secure_installation

Bạn đã hoàn tất việc chuẩn bị môi trường cần thiết. Giờ chúng ta sẽ chuyển sang phần cài đặt MediaWiki.

Hình minh họa

Hướng dẫn cài đặt MediaWiki từng bước trên CentOS 7

Sau khi đã chuẩn bị xong môi trường máy chủ với Apache, PHP và MariaDB, chúng ta sẽ bắt đầu các bước chính để cài đặt MediaWiki. Quá trình này bao gồm việc tải xuống mã nguồn, giải nén và thiết lập cơ sở dữ liệu.

Tải và giải nén gói MediaWiki

Đầu tiên, bạn cần tải về phiên bản MediaWiki mới nhất từ trang web chính thức. Bạn có thể tìm liên kết tải xuống dạng file .tar.gz trên trang chủ của MediaWiki.

Sử dụng lệnh wget để tải trực tiếp về máy chủ của bạn. Thay thế URL dưới đây bằng liên kết phiên bản mới nhất bạn tìm được.

wget https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.3.tar.gz

Hình minh họa

Khi quá trình tải xuống hoàn tất, bạn sẽ có một file nén trong thư mục hiện tại. Tiếp theo, hãy giải nén file này bằng lệnh tar:

tar -xvzf mediawiki-*.tar.gz

Lệnh này sẽ tạo ra một thư mục mới có tên tương tự file đã tải. Bây giờ, chúng ta cần di chuyển thư mục này vào thư mục gốc của web server, thường là /var/www/html/, và đổi tên nó thành một cái tên ngắn gọn hơn, ví dụ như wiki.

sudo mv mediawiki-*/ /var/www/html/wiki

Thiết lập quyền truy cập và cấu hình ban đầu

Để máy chủ web Apache có thể đọc, ghi và thực thi các file của MediaWiki, chúng ta cần cấp quyền sở hữu thư mục wiki cho người dùng apache.

Sử dụng lệnh chown để thay đổi quyền sở hữu:

sudo chown -R apache:apache /var/www/html/wiki

Bước này rất quan trọng để tránh các lỗi về quyền truy cập trong quá trình cài đặt và vận hành sau này.

Hình minh họa

Tạo database và user cho MediaWiki

Tiếp theo, chúng ta cần tạo một cơ sở dữ liệu và một người dùng riêng cho MediaWiki trong MariaDB. Điều này giúp tăng cường bảo mật bằng cách giới hạn quyền truy cập của ứng dụng.

Đăng nhập vào MariaDB với quyền root:

sudo mysql -u root -p

Nhập mật khẩu root bạn đã thiết lập ở bước mysql_secure_installation. Sau khi đăng nhập thành công, hãy thực hiện các lệnh SQL sau:

  1. Tạo một database mới (ví dụ: my_wiki_db):
CREATE DATABASE my_wiki_db;
  1. Tạo một người dùng mới và đặt mật khẩu cho người dùng đó (ví dụ: wikiuserStrongPassword123). Hãy nhớ thay StrongPassword123 bằng một mật khẩu mạnh của riêng bạn.
CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'StrongPassword123';
  1. Cấp toàn bộ quyền cho người dùng mới trên database vừa tạo:
GRANT ALL PRIVILEGES ON my_wiki_db.* TO 'wikiuser'@'localhost';
  1. Áp dụng các thay đổi và thoát:
FLUSH PRIVILEGES;
EXIT;

Bây giờ, bạn đã có một database trống và một tài khoản người dùng sẵn sàng để MediaWiki sử dụng.

Hình minh họa

Cấu hình Apache, PHP và MySQL cho MediaWiki

Để MediaWiki hoạt động trơn tru, chúng ta cần tinh chỉnh cấu hình của Apache và PHP. Việc này không chỉ giúp wiki của bạn chạy được mà còn đảm bảo hiệu suất và bảo mật tốt hơn.

Cấu hình Virtual Host Apache cho MediaWiki

Sử dụng Virtual Host cho phép bạn chạy nhiều trang web trên cùng một máy chủ và quản lý cấu hình cho từng trang một cách độc lập. Chúng ta sẽ tạo một file cấu hình Virtual Host riêng cho trang wiki.

Tạo một file cấu hình mới trong thư mục /etc/httpd/conf.d/ với tên wiki.conf:

sudo nano /etc/httpd/conf.d/wiki.conf

Bên trong file này, hãy dán nội dung cấu hình sau. Đừng quên thay your_domain.com bằng tên miền hoặc địa chỉ IP của máy chủ của bạn.

<VirtualHost *:80>
    ServerAdmin webmaster@your_domain.com
    DocumentRoot "/var/www/html/wiki"
    ServerName your_domain.com
    <Directory "/var/www/html/wiki">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/log/httpd/wiki-error_log"
    CustomLog "/var/log/httpd/wiki-access_log" combined
</VirtualHost>

Hình minh họa

Cấu hình này chỉ định DocumentRoot (thư mục gốc của wiki) và cho phép sử dụng file .htaccess thông qua AllowOverride All, điều này cần thiết cho các URL thân thiện.

Sau khi lưu file, hãy khởi động lại dịch vụ Apache để áp dụng thay đổi:

sudo systemctl restart httpd

Tùy chỉnh PHP cho hiệu năng và tương thích

Cấu hình PHP mặc định có thể không đủ để MediaWiki hoạt động tối ưu, đặc biệt là khi bạn tải lên các file lớn. Chúng ta cần chỉnh sửa file php.ini.

Mở file cấu hình PHP, thường nằm ở /etc/php.ini:

sudo nano /etc/php.ini

Tìm và điều chỉnh các tham số sau để tăng giới hạn:

  • upload_max_filesize = 20M (Tăng giới hạn kích thước file tải lên)
  • post_max_size = 20M (Phải lớn hơn hoặc bằng upload_max_filesize)
  • memory_limit = 128M (Tăng bộ nhớ cho các tác vụ PHP)

Những giá trị này là ví dụ, bạn có thể điều chỉnh tùy theo nhu cầu sử dụng của mình. Sau khi chỉnh sửa, hãy lưu file và khởi động lại Apache một lần nữa để các thay đổi về PHP có hiệu lực.

sudo systemctl restart httpd

Môi trường máy chủ của bạn giờ đã được cấu hình tối ưu để sẵn sàng cho bước cài đặt cuối cùng qua giao diện web.

Thiết lập cơ bản và kiểm tra hoạt động của MediaWiki

Sau khi hoàn tất các bước cấu hình trên máy chủ, phần còn lại của quá trình cài đặt sẽ được thực hiện thông qua giao diện web thân thiện của MediaWiki. Đây là giai đoạn cuối cùng để khởi chạy trang wiki của bạn.

Truy cập trình cài đặt web của MediaWiki

Mở trình duyệt web của bạn và truy cập vào địa chỉ IP hoặc tên miền mà bạn đã cấu hình cho máy chủ. Bạn sẽ được tự động chuyển hướng đến trang cài đặt của MediaWiki.

Giao diện cài đặt sẽ hướng dẫn bạn qua từng bước một cách rõ ràng:

  1. Chọn ngôn ngữ: Chọn ngôn ngữ cho quá trình cài đặt và cho trang wiki của bạn.
  2. Kiểm tra môi trường: Trình cài đặt sẽ tự động kiểm tra xem máy chủ của bạn có đáp ứng đủ các yêu cầu về phiên bản PHP, các extension cần thiết hay không. Nếu tất cả đều màu xanh, bạn có thể tiếp tục.
  3. Kết nối cơ sở dữ liệu: Đây là bước quan trọng. Bạn cần nhập thông tin database đã tạo ở phần trước:
    • Database host: localhost
    • Database name: my_wiki_db (hoặc tên bạn đã đặt)
    • Database username: wikiuser (hoặc tên bạn đã đặt)
    • Database password: Mật khẩu bạn đã tạo cho wikiuser.
  4. Cấu hình Wiki: Đặt tên cho trang wiki của bạn và tạo một tài khoản quản trị viên (administrator). Hãy ghi nhớ kỹ tên đăng nhập và mật khẩu này vì đây là tài khoản có quyền cao nhất trên wiki.

Hình minh họa

Hoàn thành các bước trên, trình cài đặt sẽ tiến hành tạo các bảng cần thiết trong cơ sở dữ liệu.

Kiểm tra thành công và khởi chạy wiki

Khi quá trình cài đặt hoàn tất, MediaWiki sẽ tạo ra một file cấu hình có tên là LocalSettings.php. File này chứa tất cả các thông tin cấu hình bạn vừa thiết lập.

Trình cài đặt sẽ yêu cầu bạn tải file LocalSettings.php này về máy tính của mình. Sau khi tải về, bạn cần upload file này lên thư mục gốc của MediaWiki trên máy chủ, tức là /var/www/html/wiki/. Bạn có thể sử dụng một chương trình FTP/SFTP như FileZilla hoặc lệnh scp để thực hiện việc này.

Sau khi đã đặt file LocalSettings.php vào đúng vị trí, hãy quay lại trình duyệt và truy cập lại vào địa chỉ wiki của bạn. Nếu mọi thứ chính xác, bạn sẽ thấy trang chủ của wiki mới. Hãy thử đăng nhập bằng tài khoản quản trị viên đã tạo để xác thực rằng mọi thứ hoạt động bình thường.

Để tăng cường bảo mật, bạn nên giới hạn quyền truy cập vào các thư mục không cần thiết. Ví dụ, sau khi cài đặt xong, bạn có thể xóa quyền ghi trên file LocalSettings.php để tránh bị thay đổi ngoài ý muốn.

sudo chmod 600 /var/www/html/wiki/LocalSettings.php

Chúc mừng! Bạn đã cài đặt thành công MediaWiki trên CentOS 7.

Khắc phục các lỗi phổ biến trong quá trình cài đặt

Ngay cả khi đã tuân thủ cẩn thận các bước, đôi khi bạn vẫn có thể gặp phải một số lỗi không mong muốn. Dưới đây là cách chẩn đoán và khắc phục hai vấn đề phổ biến nhất trong quá trình cài đặt MediaWiki.

Lỗi không kết nối được database

Đây là lỗi thường gặp nhất trong bước thiết lập trên giao diện web. Thông báo lỗi thường là “Cannot connect to database” hoặc tương tự. Nguyên nhân hầu như luôn liên quan đến thông tin kết nối bạn đã cung cấp.

Cách kiểm tra và khắc phục:

  1. Kiểm tra thông tin đăng nhập: Đảm bảo rằng tên database, tên người dùng và mật khẩu bạn nhập vào trình cài đặt web khớp chính xác 100% với những gì bạn đã tạo trong MariaDB. Hãy chú ý đến cả chữ hoa, chữ thường.
  2. Xác thực quyền của người dùng: Đăng nhập lại vào MariaDB (sudo mysql -u root -p) và kiểm tra quyền của người dùng wiki. Chạy lệnh:
    SHOW GRANTS FOR 'wikiuser'@'localhost';

    Kết quả phải hiển thị rằng người dùng có ALL PRIVILEGES trên database của bạn. Nếu không, hãy thực hiện lại lệnh GRANT.

  3. Kiểm tra dịch vụ MariaDB: Đảm bảo rằng dịch vụ MariaDB đang chạy trên máy chủ. Bạn có thể kiểm tra bằng lệnh:
    sudo systemctl status mariadb

    Nếu dịch vụ không hoạt động, hãy khởi động nó bằng sudo systemctl start mariadb.

Lỗi quyền truy cập thư mục hoặc file

Lỗi này thường xuất hiện dưới dạng thông báo “Permission denied” hoặc trang trắng khi bạn cố gắng truy cập wiki. Nguyên nhân là do máy chủ web Apache không có quyền đọc hoặc ghi vào các thư mục cần thiết của MediaWiki.

Cách kiểm tra và khắc phục:

  1. Kiểm tra quyền sở hữu thư mục: Đây là nguyên nhân phổ biến nhất. Hãy chắc chắn rằng bạn đã chạy lệnh chown để cấp quyền sở hữu toàn bộ thư mục MediaWiki cho người dùng apache. Chạy lại lệnh này để đảm bảo:
    sudo chown -R apache:apache /var/www/html/wiki

    Hình minh họa

  2. Kiểm tra SELinux (Security-Enhanced Linux): CentOS 7 bật SELinux theo mặc định, một cơ chế bảo mật mạnh mẽ nhưng đôi khi có thể ngăn chặn Apache ghi vào các thư mục. Nếu bạn nghi ngờ SELinux là nguyên nhân, hãy kiểm tra log của nó:
    sudo tail /var/log/audit/audit.log

    Nếu thấy các thông báo từ chối liên quan đến httpd, bạn có thể cần phải thay đổi ngữ cảnh bảo mật cho thư mục. Một giải pháp nhanh là cho phép Apache ghi vào thư mục imagescache:

    sudo chcon -t httpd_sys_rw_content_t /var/www/html/wiki/images -R
    sudo chcon -t httpd_sys_rw_content_t /var/www/html/wiki/cache -R

Việc xử lý các lỗi này đòi hỏi sự kiên nhẫn và kiểm tra cẩn thận. Bằng cách đi qua từng bước, bạn sẽ sớm tìm ra nguyên nhân và đưa trang wiki của mình vào hoạt động.

Tối ưu hóa hiệu suất MediaWiki trên máy chủ CentOS 7

Cài đặt thành công chỉ là bước khởi đầu. Để trang wiki của bạn, đặc biệt là khi có nhiều nội dung và người dùng, hoạt động nhanh chóng và ổn định, việc tối ưu hóa hiệu suất là rất cần thiết. Dưới đây là một số kỹ thuật bạn có thể áp dụng trên máy chủ CentOS 7.

Sử dụng cache Memcached hoặc Redis cho MediaWiki

Caching là một trong những cách hiệu quả nhất để tăng tốc độ cho MediaWiki. Thay vì phải truy vấn cơ sở dữ liệu và xử lý PHP cho mỗi yêu cầu, MediaWiki có thể lưu trữ các đối tượng và trang đã được tạo vào bộ nhớ cache. Memcached và Redis là hai hệ thống cache trong bộ nhớ rất phổ biến.

Để tích hợp, bạn cần cài đặt Memcached hoặc Redis trên máy chủ, sau đó cài đặt extension PHP tương ứng (ví dụ: php-pecl-memcached). Cuối cùng, bạn chỉ cần thêm một vài dòng vào file LocalSettings.php để kích hoạt và cấu hình cache. Việc này giúp giảm đáng kể tải cho máy chủ và tăng tốc độ phản hồi của trang web.

Tối ưu cấu hình PHP-FPM và Apache để giảm độ trễ

Thay vì sử dụng mod_php mặc định của Apache, việc chuyển sang sử dụng PHP-FPM (FastCGI Process Manager) có thể cải thiện đáng kể hiệu suất và khả năng mở rộng. PHP-FPM chạy như một dịch vụ độc lập, cho phép bạn quản lý các tiến trình PHP một cách hiệu quả hơn, giảm thiểu việc sử dụng bộ nhớ.

Để thực hiện, bạn cần cài đặt php-fpm, cấu hình Apache để chuyển các yêu cầu PHP sang dịch vụ FPM thông qua mod_proxy_fcgi. Tinh chỉnh các tham số trong pool của PHP-FPM, chẳng hạn như số lượng tiến trình con, sẽ giúp bạn cân bằng giữa việc sử dụng tài nguyên và khả năng xử lý đồng thời.

Hình minh họa

Lập lịch backup database thường xuyên và update hệ thống

Tối ưu hóa không chỉ là về tốc độ mà còn là về sự ổn định và an toàn. Việc sao lưu cơ sở dữ liệu thường xuyên là cực kỳ quan trọng. Bạn có thể sử dụng mysqldump để xuất toàn bộ database của wiki ra một file SQL.

Hãy tạo một script đơn giản và sử dụng cron để tự động hóa công việc này hàng ngày hoặc hàng tuần. Ví dụ:

mysqldump -u wikiuser -p'YourPassword' my_wiki_db > /path/to/backups/wiki_backup_$(date +%F).sql

Bên cạnh đó, đừng quên cập nhật hệ thống (sudo yum update -y) và các thành phần của MediaWiki một cách định kỳ. Việc này giúp bạn nhận được các bản vá bảo mật mới nhất và các cải tiến về hiệu suất từ cộng đồng.

Kết luận

Qua bài viết này, AZWEB đã cùng bạn đi qua một hành trình chi tiết từ A đến Z để cài đặt và cấu hình MediaWiki trên hệ điều hành CentOS 7. Chúng ta đã bắt đầu từ việc chuẩn bị một môi trường máy chủ vững chắc với Apache, PHP và MariaDB, sau đó thực hiện từng bước cài đặt MediaWiki, cấu hình các thành phần quan trọng, và cuối cùng là khám phá các phương pháp tối ưu hóa hiệu suất để đảm bảo trang wiki của bạn hoạt động mượt mà.

Việc sở hữu một hệ thống wiki mạnh mẽ như MediaWiki mở ra vô vàn khả năng cho việc quản lý tri thức, xây dựng tài liệu nội bộ cho doanh nghiệp, hay tạo ra một không gian cộng tác cho cộng đồng. Sự kết hợp giữa tính năng linh hoạt của MediaWiki và sự ổn định của CentOS 7 chắc chắn sẽ mang lại cho bạn một nền tảng đáng tin cậy.

Chúng tôi khuyến khích bạn không ngừng thử nghiệm, khám phá các tiện ích mở rộng và tùy chỉnh trang wiki để phù hợp nhất với nhu cầu của mình. Nếu gặp khó khăn hoặc muốn tìm hiểu sâu hơn, đừng ngần ngại tham khảo tài liệu chính thức từ MediaWiki.org và tham gia vào cộng đồng người dùng đông đảo trên toàn thế giới. Chúc bạn thành công với dự án wiki của mình.

Đánh giá