Cách cài đặt MediaWiki với Nginx trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt MediaWiki với máy chủ web Nginx trên Ubuntu 16.04. Tôi sẽ hướng dẫn bạn cách cài đặt và cấu hình ngăn xếp LEMP để cài đặt MediaWiki, bao gồm cả việc tạo và cấu hình SSL Letsencrypt miễn phí mới để bảo mật MediaWiki.

MediaWiki là một trong những phần mềm wiki phổ biến nhất ban đầu được phát triển để sử dụng trên Wikipedia. Đây là phần mềm mã nguồn mở và miễn phí được viết bằng ngôn ngữ lập trình PHP và đã trở thành phần mềm thống trị nhất trong danh mục wiki. Được Magnus Manske phát triển ban đầu vào năm 2002, công cụ này hiện đang ở phiên bản 1.30. MediaWiki đã được nhiều công ty/tổ chức lớn sử dụng, bao gồm Nginx, Intel, Novell và NASA.

Những gì chúng ta sẽ làm:
  1. Cài đặt Nginx trên Ubuntu 16.04
  2. Cài đặt và cấu hình PHP-FPM
  3. Cài đặt và cấu hình Cơ sở dữ liệu MySQL
  4. Tải xuống và cấu hình MediaWiki
  5. Tạo SSL Letsencrypt mới trên Ubuntu 16.04
  6. Cấu hình Nginx Virtual Host để cài đặt MediaWiki
  7. Cài đặt MediaWiki trên Web
  8. Cấu hình Giao diện mặc định MediaWiki
Điều kiện tiên quyết
  • Máy chủ Ubuntu 16.04
  • Quyền root

Bước 1 - Cài đặt Nginx trên Ubuntu 16.04​

Bước đầu tiên Việc chúng ta phải làm để cài đặt MediaWiki là cài đặt máy chủ web. Trong phần này, chúng ta sẽ cài đặt máy chủ web Nginx, khởi động dịch vụ Nginx, sau đó cho phép nó tự động khởi chạy khi hệ thống khởi động.

Trước khi cài đặt máy chủ web, hãy kết nối với máy chủ của bạn, cập nhật tất cả các kho lưu trữ, sau đó nâng cấp.
Mã:
sudo apt update
sudo apt upgrade -y
Bây giờ hãy cài đặt Nginx bằng lệnh apt sau.
Mã:
sudo apt install nginx -y
Sau đó, khởi động nginx và cho phép nó khởi chạy khi hệ thống khởi động.
Mã:
systemctl start nginx
systemctl enable nginx
Bây giờ hãy kiểm tra cổng HTTP bằng netstat và đảm bảo bạn thấy cổng 80 đang được Nginx sử dụng.
Mã:
netstat -plntu


Máy chủ web Nginx đã được cài đặt trên Ubuntu 16.04.

Bước 2 - Cài đặt và cấu hình PHP-FPM​

Bây giờ chúng ta sẽ cài đặt PHP-FPM trên Ubuntu 16.04. Và chúng ta sẽ sử dụng PHP 7.0 để cài đặt MediaWiki.

Cài đặt PHP và PHP-FPM (cùng với tất cả các tiện ích mở rộng cần thiết) bằng lệnh apt bên dưới.
Mã:
sudo apt install imagemagick php7.0-fpm php7.0-intl php7.0-xml php7.0-curl php7.0-gd php7.0-mbstring php7.0-mysql php-apcu
Sau khi cài đặt hoàn tất, chúng ta cần thay đổi một số cấu hình mặc định cho PHP-FPM. Chúng ta cần tăng kích thước tệp tải lên tối đa cũng như cấu hình giới hạn bộ nhớ.

Đi đến thư mục cấu hình PHP và chỉnh sửa tệp php-fpm 'php.ini' bằng vim.
Mã:
cd /etc/php/7.0
vim fpm/php.ini
Tăng cấu hình 'upload_max_filesize' lên '20M' và tăng 'memory_limit' lên '128M'.
Mã:
upload_max_filesize = 20M
 memory_limit = 128M
Lưu và thoát.

Bây giờ hãy khởi động lại dịch vụ PHP-FPM và cho phép nó tự động khởi chạy khi khởi động bằng các lệnh systemctl sau.
Mã:
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM hiện đang chạy trên Ubuntu 16.04, và nó đang chạy dưới tệp sock. Kiểm tra nó bằng lệnh netstat bên dưới.
Mã:
netstat -pl | grep php
Và bạn sẽ nhận được tệp sock PHP-FPM như hiển thị bên dưới.


Bước 3 - Cài đặt và cấu hình cơ sở dữ liệu MySQL​

MediaWiki lưu trữ tất cả dữ liệu và nội dung trong cơ sở dữ liệu và tương thích với nhiều máy chủ cơ sở dữ liệu. Đối với hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu MySQL để cài đặt MediaWiki.

Trong bước này, chúng tôi sẽ cài đặt máy chủ cơ sở dữ liệu MySQL và sau đó tạo cơ sở dữ liệu và người dùng mới cho MediaWiki.

Cài đặt cơ sở dữ liệu MySQL trên Ubuntu 16.04 bằng lệnh apt sau.
Mã:
sudo apt install mysql-server mysql-client -y
Bạn sẽ được yêu cầu nhập mật khẩu 'root' của MySQL - hãy nhập mật khẩu của riêng bạn và nhấn 'Enter'.



Lặp lại mật khẩu 'root' của MySQL.



Cài đặt MySQL đã hoàn tất. Bây giờ hãy khởi động MySQL và cho phép nó khởi chạy khi khởi động bằng các lệnh systemctl bên dưới.
Mã:
systemctl start mysql
systemctl enable mysql
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu và người dùng mới cho MediaWiki. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên là 'mediawikidb' với người dùng 'mediawiki' và mật khẩu 'mypassword'.

Kết nối với máy chủ mysql bằng lệnh mysql bên dưới.
Mã:
mysql -u root -p
Bây giờ hãy tạo cơ sở dữ liệu và người dùng bằng các truy vấn MySQL sau.
Mã:
create database mediawikidb;
cấp tất cả các quyền trên mediawikidb.* cho mediawiki@'localhost' được xác định bởi 'mypassword';
xóa các quyền;
thoát;
Máy chủ MySQL được cài đặt trên Ubuntu 16.04 và cơ sở dữ liệu để cài đặt MediaWiki đã được tạo.


Bước 4 - Tải xuống và cấu hình MediaWiki​

Đối với hướng dẫn này, chúng tôi sẽ sử dụng MediaWiki mới nhất phiên bản 1.30. Và trước khi tải MediaWiki, chúng ta cần cài đặt một số gói trên máy chủ.

Chạy lệnh apt bên dưới để cài đặt các gói mới.
Mã:
sudo apt install composer git zip unzip -y
Bây giờ hãy tạo thư mục 'mediawiki' mới và sao chép mã nguồn mediawiki vào thư mục đó.
Mã:
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki


Tiếp theo, hãy đến thư mục '/var/www/mediawiki' và cài đặt một số phụ thuộc PHP cần thiết cho quá trình cài đặt MediaWiki bằng lệnh composer.
Mã:
cd /var/www/mediawiki
composer install --no-dev


Sau khi cài đặt tất cả các phụ thuộc PHP hoàn tất, hãy thay đổi chủ sở hữu của thư mục mediawiki đến người dùng và nhóm 'www-data'.
Mã:
chown -R www-data:www-data /var/www/mediawiki
Phiên bản mới nhất của MediaWiki 1.30 được tải xuống trong thư mục '/var/www/mediawiki'.

Bước 5 - Tạo SSL Letsencrypt trên Ubuntu 16.04​

Vì lý do bảo mật, chúng tôi sẽ chạy MediaWiki dưới kết nối HTTPS. Tất cả các kết nối HTTP sẽ tự động chuyển hướng đến HTTPS. Và vì mục đích này, chúng tôi cần chứng chỉ SSL. Chúng tôi sẽ sử dụng SSL miễn phí từ Letsencrypt.

Để tạo chứng chỉ SSL mới từ Letsencrypt, chúng tôi cần cài đặt dòng lệnh letsencrypt vào máy chủ. Sử dụng lệnh sau để thực hiện việc này:
Mã:
sudo apt install letsencrypt -y
Sau khi cài đặt hoàn tất, hãy dừng máy chủ web Nginx.
Mã:
systemctl stop nginx
Tiếp theo, tạo chứng chỉ SSL mới bằng lệnh letsencrypt bên dưới.
Mã:
letsencrypt certonly
Bạn sẽ được yêu cầu nhập địa chỉ email - địa chỉ này được sử dụng để thông báo gia hạn chứng chỉ.

Vì vậy, hãy nhập địa chỉ email của bạn và chọn 'OK'.



Đối với TOS (Điều khoản dịch vụ) của Letsencrypt, hãy chọn 'Đồng ý' và nhấn Enter.



Và bây giờ hãy nhập tên miền wiki của bạn, tên miền của tôi là 'wiki.hakase-labs.co'.



Và khi tất cả hoàn tất, bạn sẽ nhận được kết quả như hiển thị bên dưới.



Chứng chỉ SSL để cài đặt MediaWiki đã được tạo trong thư mục '/etc/letsencrypt/live'.

Bước 6 - Cấu hình Máy chủ ảo Nginx của MediaWiki​

Ngăn xếp LEMP (Linux, Nginx, MySQL và PHP-FPM) để cài đặt MediaWiki đã được thiết lập và mã nguồn MediaWiki đã được tải xuống trong thư mục '/var/www/mediawiki'.

Trong bước này, chúng ta sẽ tạo một tệp máy chủ ảo Nginx mới 'mediawiki', sau đó kích hoạt máy chủ ảo.

Truy cập thư mục cấu hình Nginx và tạo một tệp máy chủ ảo mới 'mediawiki' bằng vim.
Mã:
cd /etc/nginx/
vim sites-available/mediawiki
Dán sau đây là máy chủ ảo Nginx để cấu hình MediaWiki.
Mã:
# Yêu cầu HTTP sẽ được chuyển hướng đến máy chủ HTTPS
 {
 listen 80;
 listen [::]:80;
 server_name wiki.hakase-labs.co;
 return 301 https://$host$request_uri;
 }
 
 # Cấu hình HTTPS
 máy chủ {
 
 listen 443 ssl;
 listen [::]:443;
 
 server_name wiki.hakase-labs.co;
 root /var/www/mediawiki;
 
 index index.php;
 autoindex off;
 
 # Cấu hình chứng chỉ SSL
 ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;
 
 client_max_body_size 5m;
 client_body_timeout 60;
 
 location / {
 try_files $uri $uri/ @rewrite;
 }
 
 location @rewrite {
 rewrite ^/(.*)$ /index.php?title=$1&$args;
 }
 
 location ^~ /maintenance/ {
 return 403;
 }
 
 # Cấu hình PHP
 location ~ \.php$ {
 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 include snippets/fastcgi-php.conf;
 }
 
 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
 try_files $uri /index.php;
 expires max;
 log_not_found off;
 }
 
 location = /_.gif {
 expires max;
 empty_gif;
 }
 
 location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
 deny all;
 }
 
 location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
 internal;
 }
 
 # Bảo mật cho 'image' directory
 location ~* ^/images/.*.(html|htm|shtml|php)$ {
 types { }
 default_type text/plain;
 }
 
 # Bảo mật cho 'image' directory
 location ^~ /images/ {
 try_files $uri /index.php;
 }
 
 }
Thay đổi theo yêu cầu/trường hợp của bạn, sau đó lưu và thoát.

Tiếp theo, kích hoạt máy chủ ảo mediawiki mới bằng lệnh sau.
Mã:
ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/
Kiểm tra cấu hình nginx và đảm bảo không có lỗi. Sau đó khởi động lại dịch vụ.
Mã:
nginx -t
systemctl restart nginx
Một cổng HTTPS mới 443 được mở trên máy chủ của bạn - hãy kiểm tra cổng này bằng lệnh netstat theo cách sau.
Mã:
netstat -plntu
Kết quả hiển thị bên dưới.


Bước 7 - Cài đặt MediaWiki trên nền web​

Bây giờ hãy mở trình duyệt web của bạn và nhập tên miền của bạn vào thanh địa chỉ.

http://wiki.hakase-labs.co

Và bạn sẽ được chuyển hướng đến kết nối HTTPS.



Nhấp vào liên kết 'thiết lập wiki' trên trang để cấu hình MediaWiki.

- Cấu hình ngôn ngữ

Chọn ngôn ngữ của riêng bạn, chúng tôi sẽ chọn 'Tiếng Anh' và nhấp vào 'Tiếp tục'.



- Kiểm tra môi trường

Và bây giờ, MediaWiki sẽ thực hiện kiểm tra môi trường. Đảm bảo bạn nhận được kết quả như hiển thị bên dưới.



Nhấp vào 'Tiếp tục' để cài đặt.

- Cấu hình cơ sở dữ liệu

Bây giờ đến phần cấu hình cơ sở dữ liệu. Trong trường 'Tên cơ sở dữ liệu', nhập 'mediawikidb' với tiền tố 'wiki_'. Tiếp theo, nhập tên người dùng cơ sở dữ liệu 'mediawiki' và mật khẩu 'mypassword'.



Và nhấp vào 'Tiếp tục'.

- Cài đặt cơ sở dữ liệu

Đối với cài đặt cơ sở dữ liệu, chỉ cần để mặc định và nhấp vào 'Tiếp tục'.



- Tạo người dùng quản trị

Bây giờ chúng ta cần tạo tài khoản quản trị viên. Nhập tên người dùng, mật khẩu và email của bạn như hiển thị bên dưới.



Và nhấp vào 'Tiếp tục'.

- Cấu hình bổ sung của MediaWiki

Và bạn sẽ đến trang về 'Cấu hình bổ sung của MediaWiki'.



Giữ nguyên các giá trị mặc định và nhấp vào 'Tiếp tục'.

- Cài đặt MediaWiki

Bây giờ hãy nhấp vào 'Tiếp tục' một lần nữa để cài đặt MediaWiki.



Và bạn sẽ đến trang tương tự như trang hiển thị bên dưới.



Nhấp vào 'Tiếp tục' một lần nữa.

Bây giờ bạn sẽ thấy trang thông báo quá trình cài đặt đã hoàn tất. Bạn sẽ được nhắc tải xuống tệp mới 'LocalSettings.php' - hãy tải xuống tệp.



Và tải tệp 'LocalSetting.php' lên thư mục mediawiki của máy chủ '/var/www/mediawiki'. Ngoài ra, đừng quên thay đổi chủ sở hữu của tệp thành người dùng và nhóm 'www-data'.
Mã:
scp LocalSettings.php [emailprotected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki
Bây giờ, hãy quay lại trang cài đặt MediaWiki của trình duyệt web và nhấp vào liên kết 'nhập wiki của bạn'. Bạn sẽ được thông báo rằng MediaWiki đã được cài đặt với máy chủ web Nginx trên máy chủ Ubuntu 16.04.


Bước 8 - Tải xuống và cấu hình Giao diện mặc định​

Ở giai đoạn này, quá trình cài đặt mediawiki đã hoàn tất. Và trong bước này, chúng ta sẽ cấu hình giao diện/chủ đề mặc định.

Vào thư mục '/var/www/mediawiki/skins' và sao chép giao diện mặc định 'Vector'.
Mã:
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector


Bây giờ hãy chỉnh sửa tệp 'LocalSettings.php' bằng trình soạn thảo vim.
Mã:
vim /var/www/mediawiki/LocalSettings.php
Và dán mã php sau vào cuối tệp.
Mã:
wfLoadSkin( 'Vector' );
Vậy là xong. Lưu và thoát.

Quay lại trình duyệt web của bạn và làm mới trang MediaWiki. Hãy đảm bảo bạn có được MediaWiki với giao diện 'Vector' như hiển thị bên dưới.



Cài đặt và cấu hình MediaWiki với máy chủ web Nginx trên Ubuntu 16.04 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên