MediaWiki là phần mềm wiki mã nguồn mở được viết bằng PHP. Nó cho phép bạn tạo trang web wiki tự lưu trữ của riêng bạn trên máy chủ. Đây là một trong những nền tảng wiki phổ biến nhất do tính đơn giản và khả năng tùy chỉnh của nó. Hiện nay, nó được nhiều công ty sử dụng để quản lý các trang wiki của họ. Nó cung cấp một công cụ đa năng và miễn phí để xuất bản nội dung trên internet.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt MediaWiki với máy chủ web Nginx và Let's Encrypt SSL trên Ubuntu 20.04.
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo.
Sau khi tất cả các gói được cài đặt, hãy cài đặt Composer bằng lệnh sau:
Tiếp theo, hãy chỉnh sửa tệp php.ini và thay đổi các thiết lập mặc định:
Thay đổi các dòng sau:
Lưu và đóng tệp sau đó khởi động lại PHP-FPM để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy kết nối với MariaDB bằng lệnh sau:
Sau khi kết nối, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Tiếp theo, xóa các đặc quyền và thoát khỏi MariaDB bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, di chuyển thư mục đã giải nén đến thư mục gốc web Nginx bằng lệnh sau:
Tiếp theo, thay đổi thư mục thành MediaWiki và cài đặt tất cả các phụ thuộc PHP bằng lệnh sau:
Sau khi tất cả các phụ thuộc được cài đặt, hãy thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Bạn cũng có thể xác minh trạng thái của Nginx bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy nhấp vào nút thiết lập wiki. Bạn sẽ thấy trang sau:
Tại đây, hãy chọn ngôn ngữ wiki của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp thông tin chi tiết về cơ sở dữ liệu của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Chọn sử dụng cùng một tài khoản như để cài đặt và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên trang wiki, tên người dùng và mật khẩu của bạn. Sau đó, nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục để bắt đầu cài đặt. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Sau khi cài đặt hoàn tất, bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút tải xuống để tải tệp LocalSettings.php xuống hệ thống của bạn. Sau đó, sao chép tệp này vào máy chủ của bạn bên trong thư mục gốc MediaWiki và thiết lập quyền thích hợp bằng lệnh sau:
Tiếp theo, hãy quay lại trình duyệt web của bạn và nhấp vào nhập wiki của bạn. Bạn sẽ thấy bảng điều khiển MediaWiki trên trang sau:
Trước tiên, hãy cài đặt Certbot bằng lệnh sau:
Sau khi quá trình cài đặt hoàn tất, hãy chạy lệnh sau để cài đặt Let's Encrypt SSL trên trang web của bạn:
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Nhập 2 và nhấn Enter để hoàn tất quá trình cài đặt. Bạn sẽ thấy kết quả đầu ra sau:
Bây giờ, trang web của bạn đã được bảo mật bằng Let's Encrypt SSL. Bạn có thể truy cập trang web một cách an toàn bằng URL
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt MediaWiki với máy chủ web Nginx và Let's Encrypt SSL trên Ubuntu 20.04.
Điều kiện tiên quyết
- Máy chủ chạy Ubuntu 20.04.
- Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Mật khẩu gốc được cấu hình trên máy chủ.
Bắt đầu
Trước tiên, hãy cập nhật các gói hệ thống lên phiên bản đã cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Cài đặt Nginx, MariaDB và PHP
MediaWiki yêu cầu máy chủ web Nginx, MariaDB máy chủ cơ sở dữ liệu, PHP và các phần mở rộng khác. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
apt-get install nginx mariadb-server php php-fpm php-mbstring php-xml php-json php-mysql php-curl php-intl php-gd php-mbstring texlive imagemagick unzip -y
Mã:
apt-get install composer -y
Mã:
nano /etc/php/7.4/fpm/php.ini
Mã:
memory_limit = 512Mpost_max_size =32Mupload_max_filesize = 32Mdate.timezone = Asia/Kolkata
Mã:
systemctl restart php7.4-fpm
Tạo Cơ sở dữ liệu MariaDB
MediaWiki sử dụng MariaDB làm cơ sở dữ liệu phụ trợ nên bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho MediaWiki.Đầu tiên, hãy kết nối với MariaDB bằng lệnh sau:
Mã:
mysql
Mã:
MariaDB [(none)]> CREATE DATABASE mediadb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediadb.* TO 'mediauser'@'localhost' IDENTIFIED BY 'password';
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Tải xuống MediaWiki
Đầu tiên, hãy truy cập trang web MediaWiki và chọn phiên bản mới nhất của MediaWiki. Sau đó, chạy lệnh sau để tải xuống máy chủ của bạn:
Mã:
wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.zip
Mã:
unzip mediawiki-1.35.2.zip
Mã:
mv mediawiki-1.35.2 /var/www/html/mediawiki
Mã:
cd /var/www/html/mediawiki
composer install --no-dev
Mã:
chown -R www-data:www-data /var/www/html/mediawiki
chmod -R 755 /var/www/html/mediawiki
Cấu hình Nginx cho MediaWiki
Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx cho MediaWiki. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/wiki.conf
Mã:
server { listen 80; server_name wiki.example.com; root /var/www/html/mediawiki; index index.php; error_log /var/log/nginx/mediawiki.error; access_log /var/log/nginx/mediawiki.access; location / { try_files $uri $uri/ /index.php; } location ~ /\.ht { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; }}
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Máy chủ web hiệu suất cao và máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ 4, ngày 2 tháng 6 năm 2021 lúc 05:06:48 UTC; 3 giây trước Tài liệu: man:nginx(8) Tiến trình: 24594 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 24605 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 24606 (nginx) Nhiệm vụ: 2 (giới hạn: 2353) Bộ nhớ: 2,8M CGroup: /system.slice/nginx.service ??24606 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??24607 nginx: tiến trình công nhân02/06 05:06:48 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...02/06 05:06:48 ubuntu2004 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Truy cập Giao diện người dùng web MediaWiki
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL http://wiki.example.com. Bạn sẽ được chuyển hướng đến trang sau:Bây giờ, hãy nhấp vào nút thiết lập wiki. Bạn sẽ thấy trang sau:
Tại đây, hãy chọn ngôn ngữ wiki của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp thông tin chi tiết về cơ sở dữ liệu của bạn và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Chọn sử dụng cùng một tài khoản như để cài đặt và nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên trang wiki, tên người dùng và mật khẩu của bạn. Sau đó, nhấp vào nút Tiếp tục. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục để bắt đầu cài đặt. Bạn sẽ thấy trang sau:
Nhấp vào nút Tiếp tục. Sau khi cài đặt hoàn tất, bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút tải xuống để tải tệp LocalSettings.php xuống hệ thống của bạn. Sau đó, sao chép tệp này vào máy chủ của bạn bên trong thư mục gốc MediaWiki và thiết lập quyền thích hợp bằng lệnh sau:
Mã:
chown www-data:www-data /var/www/html/mediawiki/LocalSettings.php
Bảo mật MediaWiki với Let's Encrypt SSL
Tiếp theo, bạn sẽ cần cài đặt gói máy khách Certbot để cài đặt và quản lý Let's Encrypt SSL.Trước tiên, hãy cài đặt Certbot bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Mã:
certbot --nginx -d wiki.example.com
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Trình cài đặt nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)ó: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho wiki.example.comĐang chờ xác minh...Dọn dẹp thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/wiki.conf
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Mã:
Chuyển hướng tất cả lưu lượng trên cổng 80 sang ssl trong /etc/nginx/conf.d/wiki.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://wiki.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=wiki.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/wiki.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/wiki.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 30-12-2021. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot của bạn tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.