MediaWiki là một phần mềm wiki phổ biến ban đầu được phát triển để sử dụng trên Wikipedia. Đây là một phần mềm wiki miễn phí và mã nguồn mở được viết bằng ngôn ngữ lập trình PHP. Được Magnus Manske đưa vào sử dụng 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 lớn sử dụng, bao gồm Nginx, Intel, Novell, v.v.
Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách cài đặt MediaWiki từng bước với máy chủ web Nginx trên CentOS 7. Chúng tôi cũng 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 tạo và cấu hình SSL Letsencrypt miễn phí mới để bảo mật MediaWiki.
Cập nhật tất cả các gói và cài đặt kho lưu trữ EPEL trong hệ thống CentOS 7 bằng lệnh yum bên dưới.
Tiếp theo, cài đặt máy chủ web Nginx.
Sau khi cài đặt Nginx hoàn tất, hãy khởi động máy chủ và cho phép nó tự động chạy khi khởi động hệ thống.
Vì vậy, máy chủ web Nginx đã được cài đặt trên máy chủ CentOS 7. Kiểm tra số liệu thống kê mạng bằng lệnh netstat và kết quả là bạn sẽ nhận được cổng HTTP đang được dịch vụ Nginx sử dụng.
Chúng ta sẽ sử dụng các gói PHP 7.0 từ kho lưu trữ của bên thứ ba 'webtatic'. Thêm kho lưu trữ 'webtatic' mới để cài đặt PHP 7.0 bằng lệnh bên dưới.
Bây giờ chúng ta có thể cài đặt PHP 7.0 với tất cả các tiện ích mở rộng cần thiết bằng lệnh yum bên dưới.
Như vậy là quá trình cài đặt PHP 7.0 trên CentOS 7 đã hoàn tất.
Tiếp theo, chúng ta sẽ cấu hình dịch vụ PHP-FPM. Chúng tôi sẽ chỉnh sửa tệp php.ini để cấu hình thông tin đường dẫn CGI, sau đó chỉnh sửa cấu hình 'www.conf' để cấu hình dịch vụ PHP-FPM. Sau đó, chúng ta sẽ cấu hình PHP-FPM để thực thi trong tệp sock (với người dùng và nhóm 'nginx').
Chỉnh sửa tệp 'php.ini' bằng vimeditor.
Bỏ chú thích dòng bên dưới và thay đổi giá trị thành 0.
Lưu các thay đổi và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chỉnh sửa tệp cấu hình PHP-FPM 'www.conf'.
Thay đổi giá trị dòng người dùng và nhóm thành 'nginx'.
Bây giờ hãy thay đổi giá trị của biến 'listen' thành tệp 'php-fpm.sock', như được hiển thị bên dưới.
Chúng ta cần cấu hình quyền của tệp sock, cũng như chủ sở hữu của thư mục tệp sock. Bỏ chú thích dòng listen.owner và listen.group, và thay đổi các giá trị tương ứng thành 'nginx'.
Để cấu hình thêm, hãy bỏ chú thích các dòng bên dưới.
Vậy là xong. Lưu và thoát.
Tiếp theo, tạo một thư mục mới cho cấu hình sessions-path.
Chạy các lệnh bên dưới để tạo thư mục sessions.
Sau khi hoàn tất, hãy khởi động dịch vụ PHP-FPM và cho phép dịch vụ này tự động chạy khi khởi động hệ thống.
Kiểm tra PHP-FPM bằng lệnh netstat bên dưới.
Và đảm bảo bạn nhận được tệp php-fpm.sock trong kết quả.
Để bắt đầu, hãy cài đặt MariaDB bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, hãy khởi động mariadb và cho phép nó khởi chạy khi khởi động hệ thống.
Bây giờ chúng ta cần cấu hình mật khẩu 'root' cho cơ sở dữ liệu MariaDB. Chạy lệnh sau để cấu hình mật khẩu 'root' của MariaDB.
Gõ 'Y' và nhấn Enter.
MariaDB đã được cài đặt trên hệ thống CentOS 7 và mật khẩu cho người dùng 'root' đã được cấu hình.
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu mới cho MediaWiki. Cụ thể, chúng ta sẽ tạo một cơ sở dữ liệu mới có tên là 'mediawikidb', với người dùng/chủ sở hữu mới là 'mediawiki' và mật khẩu là 'mypassword'.
Kết nối với shell mysql bằng lệnh mysql.
Bây giờ hãy chạy các truy vấn mysql sau để tạo cơ sở dữ liệu mới cho MediaWiki.
Cơ sở dữ liệu và người dùng mới cho cài đặt MediaWiki đã được tạo.
Cài đặt git và các gói khác bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, hãy tạo thư mục mới '/var/www/mediawiki' và sao chép mã nguồn mediawiki vào thư mục đó.
Tiếp theo, hãy vào thư mục '/var/www/mediawiki' và cài đặt một số phụ thuộc PHP cần thiết để cài đặt MediaWiki bằng lệnh composer, như được hiển thị bên dưới.
Bây giờ hãy thay đổi quyền sở hữu của thư mục mediawiki thành 'nginx' (cả người dùng và group).
Nguồn MediaWiki đã được tải xuống thư mục '/var/www/mediawiki' và tất cả các phụ thuộc đã được cài đặt.
Để chạy MediaWiki dưới kết nối bảo mật HTTPS, chúng ta cần chứng chỉ SSL. Chúng tôi sẽ sử dụng chứng chỉ SSL miễn phí từ Letsencrypt.
Cài đặt công cụ dòng lệnh lets encrypt bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, hãy dừng dịch vụ Nginx bằng lệnh systemctl.
Tiếp theo, chúng ta sẽ tạo chứng chỉ SSL mới bằng lệnh letsencrypt. Nhưng trước đó, hãy đảm bảo rằng các dịch vụ HTTP và HTTPS đã được thêm vào Firewalld.
Sau đây là cách bạn thêm các dịch vụ HTTP và HTTPS mới vào Firewalld.
Tạo chứng chỉ SSL miễn phí mới lets encrypt bằng lệnh letsencrypt bên dưới.
Lệnh sẽ hỏi bạn về xác thực ACME. Chọn số '1' để quay máy chủ web tạm thời.
Tiếp theo, nhập địa chỉ email của bạn để nhận thông báo gia hạn, sau đó nhập 'A' để đồng ý với Điều khoản dịch vụ (TOS) của Letsencrypt và cuối cùng nhập tên miền wiki của bạn.
Sau khi hoàn tất, bạn sẽ nhận được kết quả tương tự như kết quả hiển thị bên dưới.
Chứng chỉ SSL mới từ Letsencrypt đã được tạo và lưu trữ trong thư mục '/etc/letsencrypt/live'.
Đi tới thư mục '/etc/nginx' và tạo tệp cấu hình mới 'mediawiki.conf' bằng vimeditor.
Dán cấu hình bên dưới.
Vậy là xong. Lưu các thay đổi và thoát khỏi trình soạn thảo.
Lưu ý:
Cấu hình máy chủ ảo Nginx cho MediaWiki đã được thêm vào và chúng ta đã sẵn sàng cài đặt MediaWiki từ trình duyệt web.
Bạn sẽ được chuyển hướng đến kết nối HTTPS. Trên trang web, nhấp vào liên kết 'Thiết lập wiki'.
Sau đó nhấp vào 'Tiếp tục'.
Bây giờ hãy nhấp vào 'Tiếp tục'.
Để nguyên tất cả các trường với giá trị mặc định, rồi nhấp vào 'Tiếp tục'.
Và bạn sẽ đến trang bên dưới.
Nhấp vào 'Tiếp tục' một lần nữa.
Và Cài đặt MediaWiki đã hoàn tất. Chúng tôi sẽ được nhắc tải xuống tệp mới 'LocalSettings.php' - hãy tải xuống tệp đó.
Tiếp theo, chúng ta cần tải tệp 'LocalSetting.php' mới tải xuống lên thư mục MediaWiki '/var/www/mediawiki' trên máy chủ. Ngoài ra, đừng quên thay đổi quyền sở hữu tệp thành 'www-data' (cả người dùng và nhóm).
Quay lại trang cài đặt MediaWiki của trình duyệt web và nhấp vào liên kết 'enter your wiki'. Bạn sẽ thấy rằng MediaWiki đã được cài đặt với máy chủ web Nginx trên máy chủ CentOS 7.
Đi đến thư mục '/var/www/mediawiki/skins' và sao chép giao diện mặc định có tên 'Vector' vào thư mục đó.
Thay đổi chủ sở hữu của thư mục giao diện Vector thành người dùng và nhóm 'nginx'.
Bây giờ hãy chỉnh sửa tệp 'LocalSettings.php' bằng trình soạn thảo vim.
Và dán mã PHP sau vào cuối tệp.
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. Đảm bảo bạn thấy MediaWiki với giao diện 'Vector' như bên dưới.
Quá trình cài đặt và cấu hình MediaWiki với máy chủ web Nginx trên CentOS 7 đã hoàn tất thành công.
Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách cài đặt MediaWiki từng bước với máy chủ web Nginx trên CentOS 7. Chúng tôi cũng 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 tạo và cấu hình SSL Letsencrypt miễn phí mới để bảo mật MediaWiki.
Những gì chúng tôi sẽ làm
- Cài đặt Nginx trên CentOS 7
- Cài đặt và cấu hình PHP-FPM
- Cài đặt và cấu hình cơ sở dữ liệu MariaDB
- Tải xuống và cấu hình MediaWiki
- Tạo SSL Letsencrypt mới trên CentOS 7
- Cấu hình máy chủ ảo Nginx để cài đặt MediaWiki
- Cài đặt MediaWiki trên nền web
- Cấu hình giao diện mặc định của MediaWiki
Điều kiện tiên quyết
- Máy chủ CentOS 7
- Quyền root
Bước 1 - Cài đặt Nginx trên CentOS 7
Đối với hướng dẫn này, chúng tôi sẽ sử dụng máy chủ web Nginx để cài đặt MediaWiki. Trên CentOS 7, gói Nginx không tồn tại. Vì vậy, chúng ta cần cài đặt nó từ kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) của bên thứ ba.Cập nhật tất cả các gói và cài đặt kho lưu trữ EPEL trong hệ thống CentOS 7 bằng lệnh yum bên dưới.
Mã:
yum -y update
yum -y install epel-release
Mã:
yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Bước 2 - Cài đặt và cấu hình PHP-FPM
Trong hướng dẫn này, chúng ta sẽ sử dụng PHP 7.0. Và ở đây, trong bước này, chúng ta sẽ cài đặt PHP 7.0 (bao gồm cả tiện ích mở rộng) và cấu hình PHP-FPM để cài đặt MediaWiki.Chúng ta sẽ sử dụng các gói PHP 7.0 từ kho lưu trữ của bên thứ ba 'webtatic'. Thêm kho lưu trữ 'webtatic' mới để cài đặt PHP 7.0 bằng lệnh bên dưới.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu
Tiếp theo, chúng ta sẽ cấu hình dịch vụ PHP-FPM. Chúng tôi sẽ chỉnh sửa tệp php.ini để cấu hình thông tin đường dẫn CGI, sau đó chỉnh sửa cấu hình 'www.conf' để cấu hình dịch vụ PHP-FPM. Sau đó, chúng ta sẽ cấu hình PHP-FPM để thực thi trong tệp sock (với người dùng và nhóm 'nginx').
Chỉnh sửa tệp 'php.ini' bằng vimeditor.
Mã:
vim /etc/php.ini
Mã:
cgi.fix_pathinfo=0
Bây giờ hãy chỉnh sửa tệp cấu hình PHP-FPM 'www.conf'.
Mã:
vim /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Mã:
listen = /run/php-fpm/php-fpm.sock
Mã:
listen.owner = nginx
listen.group =nginx
listen.mode = 0660
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Tiếp theo, tạo một thư mục mới cho cấu hình sessions-path.
Chạy các lệnh bên dưới để tạo thư mục sessions.
Mã:
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Mã:
netstat -pl | grep php
Bước 3 - Cài đặt và cấu hình cơ sở dữ liệu MariaDB
MediaWiki hỗ trợ cơ sở dữ liệu MySQL/MariaDB và SQLite. Tuy nhiên, trong hướng dẫn này, chúng ta sẽ sử dụng cơ sở dữ liệu MariaDB.Để bắt đầu, hãy cài đặt MariaDB bằng lệnh yum bên dưới.
Mã:
yum -y install mariadb mariadb-server
Mã:
systemctl start mariadb
systemctl enable mariadb
Mã:
mysql_secure_installation
Mã:
Đặt mật khẩu root? [Y/n] Y
NHẬP MẬT KHẨU ROOT Ở ĐÂY
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu mới cho MediaWiki. Cụ thể, chúng ta sẽ tạo một cơ sở dữ liệu mới có tên là 'mediawikidb', với người dùng/chủ sở hữu mới là 'mediawiki' và mật khẩu là 'mypassword'.
Kết nối với shell mysql bằng lệnh mysql.
Mã:
mysql -u root -p
NHẬP MẬT KHẨU GỐC CỦA BẠN
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;
Bước 4 - Tải xuống và cấu hình MediaWiki
Trong hướng dẫn này, chúng ta sẽ sử dụng phiên bản mới nhất (1.30) của MediaWiki và chúng tôi sẽ tải xuống toàn bộ mã nguồn MediaWiki từ kho lưu trữ. Vì vậy, chúng ta cần git và một số gói được cài đặt trên hệ thống.Cài đặt git và các gói khác bằng lệnh yum bên dưới.
Mã:
yum -y install git zip unzip composer
Mã:
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki
Mã:
cd /var/www/mediawiki
composer install --no-dev
Bây giờ hãy thay đổi quyền sở hữu của thư mục mediawiki thành 'nginx' (cả người dùng và group).
Mã:
chown -R nginx:nginx /var/www/mediawiki
Bước 5 - Tạo SSL Letsencrypt trên CentOS 7
Vì lý do bảo mật, MediaWiki sẽ chỉ chạy trên kết nối HTTPS. Và tất cả các yêu cầu đến HTTP sẽ được chuyển hướng đến HTTPS bởi máy chủ Web Nginx.Để chạy MediaWiki dưới kết nối bảo mật HTTPS, chúng ta cần chứng chỉ SSL. Chúng tôi sẽ sử dụng chứng chỉ SSL miễn phí từ Letsencrypt.
Cài đặt công cụ dòng lệnh lets encrypt bằng lệnh yum bên dưới.
Mã:
yum -y install letsencrypt
Mã:
systemctl stop nginx
Sau đây là cách bạn thêm các dịch vụ HTTP và HTTPS mới vào Firewalld.
Mã:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Tạo chứng chỉ SSL miễn phí mới lets encrypt bằng lệnh letsencrypt bên dưới.
Mã:
letsencrypt certonly
Tiếp theo, nhập địa chỉ email của bạn để nhận thông báo gia hạn, sau đó nhập 'A' để đồng ý với Điều khoản dịch vụ (TOS) của Letsencrypt và cuối cùng nhập tên miền wiki của bạn.
Sau khi hoàn tất, bạn sẽ nhận được kết quả tương tự như kết quả hiển thị bên dưới.
Chứng chỉ SSL mới từ Letsencrypt đã được tạo và lưu trữ trong thư mục '/etc/letsencrypt/live'.
Bước 6 - Cấu hình máy chủ ảo Nginx cho MediaWiki
Trong bước này, chúng ta sẽ tạo cấu hình máy chủ ảo Nginx mới cho MediaWiki.Đi tới thư mục '/etc/nginx' và tạo tệp cấu hình mới 'mediawiki.conf' bằng vimeditor.
Mã:
cd /etc/nginx/
vim conf.d/mediawiki.conf
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
server {
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;
vị trí / {
try_files $uri $uri/ @rewrite;
}
vị trí @rewrite {
viết lại ^/(.*)$ /index.php?title=$1&$args;
}
vị trí ^~ /maintenance/ {
trả về 403;
}
# Cấu hình PHP-FPM Nginx
vị trí ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
bao gồm fastcgi_params;
}
vị trí ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
hết hạn tối đa;
log_not_found tắt;
}
vị trí = /_.gif {
hết hạn tối đa;
empty_gif;
}
vị trí ^~ ^/(bộ nhớ đệm|bao gồm|bảo trì|ngôn ngữ|được tuần tự hóa|kiểm tra|hình ảnh/đã xóa)/ {
từ chối tất cả;
}
vị trí ^~ ^/(bin|docs|phần mở rộng|bao gồm|bảo trì|mw-config|tài nguyên|được tuần tự hóa|kiểm tra)/ {
nội bộ;
}
# Bảo mật cho thư mục 'hình ảnh'
vị trí ~* ^/images/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}
# Bảo mật cho thư mục 'image'
location ^~ /images/ {
try_files $uri /index.php;
}
}
Lưu ý:
- Đổi tên miền thành tên miền của riêng bạn.
- Thay đổi đường dẫn của tệp Chứng chỉ SSL
Mã:
nginx -t
systemctl restart nginx
Cấu hình máy chủ ảo Nginx cho MediaWiki đã được thêm vào và chúng ta đã sẵn sàng cài đặt MediaWiki từ trình duyệt web.
Bước 7 - Cài đặt MediaWiki trên nền web
Mở trình duyệt web của bạn và nhập URL MediaWiki.Bạn sẽ được chuyển hướng đến kết nối HTTPS. Trên trang web, nhấp vào liên kết 'Thiết lập wiki'.
Cấu hình ngôn ngữ
Chọn ngôn ngữ 'en' tiếng Anh và nhấp vào 'Tiếp tục'.Kiểm tra môi trường
Đảm bảo rằng tất cả cấu hình máy chủ đã vượt qua các kiểm tra Môi trường.Sau đó nhấp vào 'Tiếp tục'.
Cấu hình cơ sở dữ liệu
Nhập tên cơ sở dữ liệu là 'mediawikidb' và tên người dùng 'mediawiki' với mật khẩu 'mypassword'.Bây giờ hãy nhấp vào 'Tiếp tục'.
Cài đặt cơ sở dữ liệu
Giữ nguyên mặc định và nhấp vào 'Tiếp tục'.Tạo Người dùng Quản trị Mới
Nhập tên người dùng quản trị, email, mật khẩu của riêng bạn, rồi nhấp vào 'Tiếp tục'.Cấu hình Bổ sung MediaWiki
Bây giờ chúng ta sẽ đến trang về 'Cấu hình Bổ sung MediaWiki', như hiển thị bên dưới.Để nguyên tất cả các trường với giá trị mặc định, rồi nhấp vào 'Tiếp tục'.
Cài đặt MediaWiki
Nhấp vào 'Tiếp tục' để cài đặt MediaWiki.Và bạn sẽ đến trang bên dưới.
Nhấp vào 'Tiếp tục' một lần nữa.
Và Cài đặt MediaWiki đã hoàn tất. Chúng tôi sẽ được nhắc tải xuống tệp mới 'LocalSettings.php' - hãy tải xuống tệp đó.
Tiếp theo, chúng ta cần tải tệp 'LocalSetting.php' mới tải xuống lên thư mục MediaWiki '/var/www/mediawiki' trên máy chủ. Ngoài ra, đừng quên thay đổi quyền sở hữu tệp thành 'www-data' (cả người dùng và nhóm).
Mã:
scp LocalSettings.php [emailprotected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki
Bước 8 - Tải xuống và cấu hình giao diện mặc định của MediaWiki
Ở 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 của trang MediaWiki.Đi đến thư mục '/var/www/mediawiki/skins' và sao chép giao diện mặc định có tên 'Vector' vào thư mục đó.
Mã:
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
Mã:
chown -R nginx:nginx /var/www/mediawiki/skins/
Mã:
vim /var/www/mediawiki/LocalSettings.php
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. Đảm bảo bạn thấy MediaWiki với giao diện 'Vector' như bên dưới.
Quá trình cài đặt và cấu hình MediaWiki với máy chủ web Nginx trên CentOS 7 đã hoàn tất thành công.