当前位置: 首页 > article >正文

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

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

简介

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

image.png

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

准备工作

服务器准备

必要前提:

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

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

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

创建雨云服务器

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

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1. 更新系统

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

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

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

sudo apt install nginx -y

3. 安装和配置 PostgreSQL

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

sudo apt install postgresql postgresql-contrib -y

配置 PostgreSQL:

切换到 PostgreSQL 用户:

sudo -i -u postgres

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

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

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

createdb -O mediawikiuser mediawikidb

退出 PostgreSQL 提示符:

exit

4. 安装 PHP 及其扩展

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

sudo apt install php-fpm php-pgsql php-intl php-gd php-xml php-mbstring -y

5. 下载和安装 MediaWiki

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

cd /var/www
sudo wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz

解压缩下载的归档文件:

sudo tar -xvzf mediawiki-1.41.1.tar.gz
sudo mv mediawiki-1.41.1 mediawiki

设置正确的权限:

sudo chown -R www-data:www-data /var/www/mediawiki
sudo chmod -R 755 /var/www/mediawiki

6. 配置 Nginx

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

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:

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 证书。

sudo apt install certbot python3-certbot-nginx

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

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 目录:

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


http://www.kler.cn/a/413758.html

相关文章:

  • 【NLP高频面题 - 分布式训练】ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?
  • PySide6 QSS(Qt Style Sheets) Reference: PySide6 QSS参考指南
  • Unix和Linux之异同
  • 2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略(详细解题思路)
  • js中this的指向问题
  • Pytorch使用手册-Build the Neural Network(专题五)
  • Jetpack业务架构(ViewModel)
  • Linux系统之iotop命令的基本使用
  • 【EI会议征稿通知 | 往届均已见刊检索】第四届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2025)
  • 分类预测 | Matlab实现GA-XGBoost分类预测
  • 使用Eureka实现服务注册与发现的具体案例详解
  • go语言怎么实现bash cmd里的mv功能?
  • 【GPT】力量训练是什么,必要吗,有可以替代的方式吗
  • 11.25 Scala案例
  • web3.js + Ganache 模拟以太坊账户间转账
  • Ubuntu 硬盘分区并挂载
  • 【项目日记】仿mudou的高并发服务器 --- 实现基础高并发服务器基础模块
  • 【LeetCode面试150】——56合并区间
  • RabbitMQ5:Fanout交换机、Direct交换机、Topic交换机
  • YOLOv11融合PIDNet中的PagFM模块及相关改进思路
  • Samba服务器常见问题处理
  • Jmeter后置处理器
  • 代码美学2:MATLAB制作渐变色
  • DVWA靶场通过——文件上传漏洞
  • 预测未来 | MATLAB实现Transformer时间序列预测未来
  • 【方案库】从单张照片快速重建3D场景:Flash3D详解