安装MediaWiki

环境信息

数据库用户:webuser PHP版本:7.4 MySQL版本:8.0.42


Nginx配置文件示例

server {
    listen 80;
    server_name wiki.mxdx.com;  # 改为你的域名
    root /var/www/html/wiki;
    index index.php index.html;

    # MediaWiki 重写规则
    location / {
        try_files $uri $uri/ @rewrite;
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?title=$1&$args;
    }

    # PHP 处理
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 禁止访问敏感文件
    location ~ /(\.|vendor|composer\.|COPYING|README|changelog) {
        deny all;
    }

    # 静态文件缓存
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 30d;
        add_header Cache-Control "public";
    }
}

1.下载 MediaWiki:

cd /root

# 以下链接国内访问速度可能较慢(二选一)
wget https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.5.tar.gz
wget https://raw.githubusercontent.com/Yzh0407/mediawiki/refs/heads/main/mediawiki-1.39.5.tar.gz

mkdir -p /var/www/html/wiki

tar -zxvf mediawiki-1.39.5.tar.gz -C /var/www/html/wiki

cd /var/www/html/wiki/mediawiki-1.39.5

mv ./* ../

rmdir mediawiki-1.39.5/

2.设置权限:

sudo chown -R www-data:www-data /var/www/html/wiki
sudo chmod -R 755 /var/www/html/wiki

3.创建数据库:

mysql -u root -p
CREATE DATABASE wiki;
EXIT;

4.访问 http://wiki.mxdx.com/,按向导进行配置。

如果出现报错,例如: Missing one or more required components of PHP,说明相应的PHP扩展没有安装,请使用命令安装(根据屏幕上显示的缺少组件进行安装)

sudo apt update

# mediawiki一般缺少这几个PHP扩展
sudo apt install php7.4-mbstring php7.4-xml php7.4-intl

若出现如下图中所示,就是成功运行,现在只是没有配置文件,我们点击蓝色下滑斜杠的Complete the installation

image

image

根据提示输入对应信息安装

image image

继续完成安装

此步会下载LocalSettings.php文件,我们只需要把该文件放入有index.php的根目录里(如:/var/www/html/wiki

image

image

新用户邮件注册验证

需要在网站根目录下找到之前放进去的LocalSettings.php文件,使用vim修改,在行末添加以下参数:

# Mail
$wgSMTP = array(                            // 配置SMTP邮件服务器
 'host'     => "mail.mxdx.com",             // SMTP服务器主机地址(例如:mail.mxdx.com)
 'IDHost'   => "mail.mxdx.com",             // 用于生成Message-ID的域名(通常与host相同)
 'port'     => 25,                          // SMTP服务端口号(25是默认SMTP端口)
 'auth'     => false,                       // 是否启用SMTP认证(false表示不认证,如果需要认证就填true)
 'username' => "mailuser@mail.mxdx.com",    // SMTP登录用户名(如果上面的auth是false就随便写,如果需要认证就按实际填)
 'password' => "12345678"                   // SMTP登录密码(如果上面的auth是false就随便写,如果需要认证就按实际填)
);

// 设置系统紧急联系人邮箱(用于接收错误报告、系统警报等)
$wgEmergencyContact = "mailuser@mail.mxdx.com";

// 设置系统自动邮件(如密码重置、验证邮件)的发件人邮箱地址
$wgPasswordSender = "mailuser@mail.mxdx.com";

// 设置系统自动邮件的发件人显示名称
$wgPasswordSenderName = 'mailuser';

// 启用用户讨论页变动时的邮件通知功能(当用户收到留言时会发送邮件)
$wgEnotifUserTalk = true;

// 禁用监视列表变动时的邮件通知功能(用户不会收到监视页面更新的邮件)
$wgEnotifWatchlist = false;

// 开启电子邮件认证系统(要求用户验证邮箱的真实性)
$wgEmailAuthentication = true;

// 强制要求新用户必须验证邮箱才能完成注册
$wgRequireEmailConfirmation = true;

// 设置邮箱验证链接的有效期(此处设为7天,单位:秒)
$wgUserEmailConfirmationTokenExpiry = 7 * 24 * 3600;

// 开启整个邮件系统功能(必须设为true才能发送任何邮件)
$wgEnableEmail = true;

// 允许用户之间互相发送邮件(通过用户页面的"发送邮件"功能)
$wgEnableUserEmail = true;

// 强制要求用户必须验证邮箱后才能编辑页面(重要安全设置)
$wgEmailConfirmToEdit = true;

// 允许某些操作要求用户必须提供邮箱(增强账户安全性)
$wgAllowRequiringEmailForUsers = true;

// 自定义验证邮件的主题(可使用{{SITENAME}}变量)
$wgEmailAuthenticationTitle = "请验证您在{{SITENAME}}的邮箱";

// 权限控制:未登录用户不能编辑
$wgGroupPermissions['*']['edit'] = false;

// 权限控制:新注册用户(未验证邮箱)不能编辑
$wgGroupPermissions['user']['edit'] = false;

// 权限控制:已验证邮箱用户可正常编辑
$wgGroupPermissions['emailconfirmed']['edit'] = true;

修改后保存,不需要重载,因为php是实时加载。

进行用户注册测试

image image

提示收到相应邮件 image

点开邮件点击确认链接 image

image

image

注册成功! 电子邮件确认成功!

梦葉樱 all right reserved,powered by Gitbook该文件最后修改时间: 2025-07-21 12:54:03

results matching ""

    No results matching ""