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

ops/2024/11/28 16:51:17/

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.ppmy.cn/ops/137409.html

相关文章

除了混合搜索,RAG 还需要哪些基础设施能力

Infinity 是一款专门为 RAG 设计的,在功能和性能上全面领先的数据库,针对向量,稀疏向量,还有文本类数据,分别提供高性能的向量搜索、稀疏向量搜索以及全文搜索,并且提供这些数据之上的高性能范围过滤&#…

Spring |(七)AOP概念及工作流程

文章目录 📚AOP简介📚AOP入门案例🐇环境准备🐇AOP实现步骤 📚AOP工作流程📚小结 学习来源:黑马程序员SSM框架教程_SpringSpringMVCMaven高级SpringBootMyBatisPlus企业实用开发技术 &#x1f4d…

深度学习与持续学习:人工智能的未来与研究方向

文章目录 1. 持续学习与深度学习1.1 深度学习的局限1.2 持续学习的定义 2. 目标与心智2.1 奖励假说2.2 心智的构成 3. 对研究方法的建议3.1 日常写作记录3.2 中立对待流行趋势 1. 持续学习与深度学习 1.1 深度学习的局限 深度学习注重“瞬时学习”,如ChatGPT虽在语…

Git 入门超简单指南

1. 什么是 Git? Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建。它的主要目的是帮助开发者有效地管理和跟踪项目的历史版本。通过使用 Git,你可以轻松地记录每一次代码的修改,回滚到以前的版本,以及…

javaweb-day02-JS(javascript)

1.JavaScript引入 (1)引入方式 2.JS语法 2.1 书写语法 2.2 变量 (1)var关键字定义的是全局变量; (2)可以重复声明; 2.3 数据类型&运算符 (1)数据类型…

钉钉授权登录

一.找开钉钉开发平台【钉钉开放平台 (dingtalk.com)】 二。点击菜单【应用开发】->左边【钉钉应用】->【创建应用】 三。创建应用-》保存成功后,点击自己【新建的应用】,进入详细页面 四。进入应用详细页面。左边【分享设置】 注意:进…

七牛云AIGC内容安全方案助力企业合规创新

随着人工智能生成内容(AIGC)技术的飞速发展,内容审核的难度也随之急剧上升。在传统审核场景中,涉及色情、政治、恐怖主义等内容的标准相对清晰明确,但在AIGC的应用场景中,这些界限变得模糊且难以界定。用户可能通过交互性引导AI生成违规内容,为审核工作带来了前所未有的不可预测…

VUE练习

使用new Vue()创建Vue实例&#xff0c;传入配置对象&#xff08;el data&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial…