在 Ubuntu 上部署 MediaWiki 开源维基平台

MediaWiki 是一个功能强大的开源维基软件,全球众多组织使用它来创建协作文档网站。本文将指导你如何在 Ubuntu 服务器上安装 MediaWiki,使用 Nginx 作为 Web 服务器,PostgreSQL 作为数据库管理系统。

简介

MediaWiki 是一个灵活且强大的维基平台,它支撑着包括维基百科在内的许多知名网站。通过本文,你将学习如何在 Ubuntu 22.04 系统上部署 MediaWiki,并通过 Nginx 提供服务。我们将使用 PostgreSQL 作为后端数据库,并使用 Let's Encrypt 来保护你的网站。通过本教程,你将获得一个完全功能的 MediaWiki 安装,能够满足你的文档协作需求。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1. 更新系统

首先,更新你的软件包列表并升级现有的软件包:

bash 复制代码
sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

Nginx 是一个高性能的 Web 服务器,它将为你的 MediaWiki 站点提供服务。

bash 复制代码
sudo apt install nginx -y

3. 安装和配置 PostgreSQL

PostgreSQL 是一个强大的开源关系数据库系统。

bash 复制代码
sudo apt install postgresql postgresql-contrib -y

配置 PostgreSQL:

切换到 PostgreSQL 用户:

bash 复制代码
sudo -i -u postgres

为 MediaWiki 创建一个新的 PostgreSQL 用户:

bash 复制代码
createuser --interactive --pwprompt
# 输入角色名称:mediawikiuser
# 输入新角色密码:(选择一个强密码)
# 再次输入密码:(选择一个强密码)
# 新角色是否为超级用户?(y/n)n
# 新角色是否允许创建数据库?(y/n)y
# 新角色是否允许创建更多新角色?(y/n)n

为 MediaWiki 创建一个新的 PostgreSQL 数据库:

bash 复制代码
createdb -O mediawikiuser mediawikidb

退出 PostgreSQL 提示符:

bash 复制代码
exit

4. 安装 PHP 及其扩展

MediaWiki 是用 PHP 编写的,因此你需要 PHP 及其扩展。

bash 复制代码
sudo apt install php-fpm php-pgsql php-intl php-gd php-xml php-mbstring -y

5. 下载和安装 MediaWiki

下载最新版本的 MediaWiki。访问官方网站获取最新版本:

bash 复制代码
cd /var/www
sudo wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz

解压缩下载的归档文件:

bash 复制代码
sudo tar -xvzf mediawiki-1.41.1.tar.gz
sudo mv mediawiki-1.41.1 mediawiki

设置正确的权限:

bash 复制代码
sudo chown -R www-data:www-data /var/www/mediawiki
sudo chmod -R 755 /var/www/mediawiki

6. 配置 Nginx

为 MediaWiki 创建一个新的 Nginx 配置文件:

bash 复制代码
sudo nano /etc/nginx/sites-available/mediawiki.your_domain

注意:mediawiki.your_domain 替换为你的域名。

添加以下配置:

复制代码
server {
    listen 80;
    server_name mediawiki.your_domain;
    root /var/www/mediawiki;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \\.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
    location ~* \\.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        try_files $uri /index.php;
    }
}

注意:mediawiki.your_domain 替换为你的域名。

启用新站点并重启 Nginx:

bash 复制代码
sudo ln -s /etc/nginx/sites-available/mediawiki.your_domain /etc/nginx/sites-enabled/
sudo systemctl restart nginx

7. 安装 SSL 证书

为了增加安全性,考虑为你的 MediaWiki 实例配置 HTTPS。你需要为你的域名配置 SSL 证书。你可以使用 Certbot 从 Let's Encrypt 获取免费的 SSL 证书。

bash 复制代码
sudo apt install certbot python3-certbot-nginx

然后运行以下命令获取并安装 SSL 证书:

bash 复制代码
sudo certbot --nginx -d mediawiki.your_domain

注意:mediawiki.your_domain 替换为你的域名。

按照提示配置 HTTPS 与 Certbot。

8. 通过 Web 浏览器完成安装

打开你的 Web 浏览器并导航到 https://mediawiki.your_domain

按照屏幕上的指示配置你的 MediaWiki 安装:

  • 选择你的语言并点击"继续"。
  • 确保环境有必要的 PHP 扩展并点击"继续"。
  • 输入数据库设置:
    • 数据库类型:PostgreSQL
    • 数据库主机:localhost
    • 数据库名称:mediawikidb
    • 数据库用户名:mediawikiuser
    • 数据库密码:(你之前创建的密码)
    • 点击"继续"并完成设置,按照剩余步骤操作。

安装完成后,下载 LocalSettings.php 文件并上传到你的 MediaWiki 目录:

bash 复制代码
sudo mv /path/to/LocalSettings.php /var/www/mediawiki/
sudo chown www-data:www-data /var/www/mediawiki/LocalSettings.php

相关链接

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
浅念-3 小时前
Linux 开发环境与工具链
linux·运维·服务器·数据结构·c++·经验分享
似水এ᭄往昔5 小时前
【Linux】gdb的使用
linux·运维·服务器
优雅的造轮狮5 小时前
WSL2 Docker Desktop配置优化及迁移D盘指南
运维·docker·容器
tian_jiangnan5 小时前
grafana白皮书
linux·服务器·grafana
枫桥骤雨5 小时前
我的龙虾日记
ubuntu·openclaw
大师影视解说5 小时前
基于Web端的AI电影解说自动化生产工具实测:4步完成从文案到成片的全流程
运维·人工智能·自动化·影视解说·电影解说工具·网页版电影解说·ai电影解说
mizuhokaga6 小时前
Linux内网集群基于Docker 安装 Chat2DB
linux·运维·docker
科士威传动6 小时前
微型导轨从精密制造到智能集成的跨越
大数据·运维·科技·机器人·自动化·制造
OasisPioneer6 小时前
现代 C++ 全栈教程 - Modern-CPP-Full-Stack-Tutorial
开发语言·c++·开源·github
biubiubiu07066 小时前
Vibe Coding
运维