如何使用Apache / Nginx在Ubuntu 20.04上安装MediaWiki

本教程将向您展示 如何在Ubuntu 20.04上安装MediaWiki。 MediaWiki是支持Wikipedia的后端软件。 它是免费的开源软件,并且是当今使用最广泛的Wiki软件。 MediaWiki的知名用户包括Wikipedia.org和wikia.com。

您可以使用MediaWiki创建自己的私有或公共Wiki网站。 MediaWiki具有为Wikipedia和其他Wiki网站创建的许多有用的扩展。

先决条件

MediaWiki是用PHP编写的程序。 要遵循本教程,首先您需要在Ubuntu 20.04服务器上安装LAMP或LEMP堆栈。

如果你比较喜欢 阿帕奇 Web服务器,然后设置LAMP堆栈。

  • 如何在Ubuntu 20.04 Server / Desktop上安装LAMP Stack

如果你比较喜欢 Nginx的 Web服务器,然后设置LEMP堆栈。

  • 如何在Ubuntu 20.04 LTS上安装LEMP Stack(Nginx,MariaDB,PHP7.4)

您还需要一个域名。 我从NameCheap注册了我的域名,因为价格低廉,并且终身免费提供Whois隐私保护。

安装LAMP或LEMP堆栈后,请阅读以下说明以安装MediaWiki。

步骤1:下载MediaWiki

下载MediaWiki的最新稳定版本:

wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.1.tar.gz

将档案解压缩到 /var/www/

sudo mkdir -p /var/www/

sudo tar xvf mediawiki-1.35.1.tar.gz -C /var/www/

重命名目录。

sudo mv /var/www/mediawiki-1.35.1 /var/www/mediawiki

然后,我们需要安装MediaWiki所需的一些PHP扩展。

sudo apt install php7.4-mbstring php7.4-xml php7.4-fpm php7.4-json php7.4-mysql php7.4-curl php7.4-intl php7.4-gd php7.4-mbstring texlive imagemagick

如果使用Apache Web服务器,则需要重新启动Apache。

sudo systemctl restart apache2

接下来,我们需要通过Composer(PHP依赖性管理器)安装外部依赖性。

sudo apt install composer

cd /var/www/mediawiki/

sudo composer install --no-dev

请注意,MediaWiki当前不支持PHP8.0。 如果您已在Ubuntu服务器上安装了PHP8.0,则应运行 sudo update-alternatives --config php 命令将PHP7.4设置为默认版本。

安装所有依赖项后,运行以下命令来设置Web服务器用户(www-data)作为此目录的所有者。

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

步骤2:建立资料库

使用以下命令登录MariaDB服务器。

sudo mysql -u root

为MediaWiki创建一个数据库。 本教程为数据库命名 mediawiki,但您可以使用任何喜欢的名称。

CREATE DATABASE mediawiki;

然后在MariaDB提示符下运行以下命令以创建数据库用户并向该用户授予特权。 代替 mediawikiwikiuserpassword 分别使用您的首选数据库名称,数据库用户名和用户密码。

GRANT ALL PRIVILEGES ON mediawiki.* TO 'wikiuser'@'localhost' IDENTIFIED BY 'password';

接下来,刷新MariaDB特权并退出。

flush privileges;

exit;

步骤3:为MediaWiki创建Apache虚拟主机或Nginx配置文件

阿帕奇

如果使用Apache Web服务器,请为MediaWiki创建虚拟主机。

sudo nano /etc/apache2/sites-available/mediawiki.conf

复制以下文本并将其粘贴到文件中。 代替 wiki.your-domain.com 与您的实际域名。 不要忘记为此域名创建DNS A记录。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www//mediawiki/
    ServerName wiki.your-domain.com

    <Directory /var/www/html/mediawiki/>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/mediawiki_error
    CustomLog /var/log/apache2/mediawiki_access common
</VirtualHost>

保存并关闭文件。 然后启用此虚拟主机。

sudo a2ensite mediawiki.conf

重新加载Apache以使上述更改生效。

sudo systemctl reload apache2

Nginx的

如果您使用Nginx Web服务器,请在下面的MediaWiki中创建一个服务器阻止文件 /etc/nginx/conf.d/ 目录。

sudo nano /etc/nginx/conf.d/mediawiki.conf

复制以下文本并将其粘贴到文件中。 代替 wiki.your-domain.com 与您的实际域名。 不要忘记为此域名创建DNS A记录。

server {
        listen 80;
        listen [::]:80;
        server_name wiki.your-domain.com;

        root /var/www/mediawiki;
        index index.php;
   
        error_log /var/log/nginx/mediawiki.error;
        access_log /var/log/nginx/mediawiki.access;

        location / {
                try_files $uri $uri/ /index.php;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /.ht {
          deny all;
         }

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

保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,请重新加载Nginx Web服务器。

sudo systemctl reload nginx

步骤4:启用HTTPS

为了加密HTTP流量,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令在Ubuntu 20.04服务器上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot

如果您使用 阿帕奇,安装Certbot Apache插件。

sudo apt install python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d wiki.your-domain.com

如果您使用 Nginx的,那么您还需要安装Certbot Nginx插件。

sudo apt install python3-certbot-nginx

接下来,运行以下命令以获取并安装TLS证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d wiki.your-domain.com

在哪里

  • --nginx:使用nginx插件。
  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应中。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 将有效的OCSP响应装订到服务器在TLS期间提供的证书。

现在应该获得证书并自动安装。

步骤5:运行基于Web的安装脚本

https://wiki.you-domain.com 在您的Web浏览器中启动基于Web的安装脚本。 点击 完成安装 链接以启动安装向导。

mediawiki安装向导

接下来,选择用于MediaWiki安装和Wiki本身的语言。

在Ubuntu 20.04上安装MediaWiki

然后,安装向导将检查服务器的环境,例如PHP扩展。

mediawiki环境检查

转到下一步。 您将需要配置数据库设置。 选择 MariaDB, MySQL, or compatible 为了 Database type。 进入 localhost 数据库主机,然后输入数据库名称 mediawiki 以及在步骤2中创建的数据库用户名和密码。

MediaWiki Ubuntu 20.04

在下一步中,您可以选择使用相同的数据库帐户进行Web访问。

MediaWiki Ubuntu服务器20.04

然后输入您的Wiki名称并创建一个管理员帐户。

mediawiki Ubuntu 20.04 Apache

在里面 Options 页面上,您可以选择将Wiki设置为 打开维基,需要创建帐户,仅授权编辑者和私有Wiki。 然后,您可以选择一个许可证。

维基百科Ubuntu 20.04 Nginx

点击 Continue 开始安装Mediawiki。

mediawiki如何安装

一个 LocalSettings.php 文件将在安装过程中生成。 您需要下载此文件并将其放入 /var/www/mediawiki/ Ubuntu 20.04服务器的目录。 完成后,您将可以从以下位置访问新安装的MediaWiki: http://wiki.your-domain.com

mediawiki矢量皮肤

要创建一个术语页面,只需转到

wiki.your-domain.com/index.php/your-term

或者

wiki.your-domain.com/index.php?title=your-term

如何设置SMTP发送电子邮件

如果您的MediaWiki实例将被多个人使用,那么MediaWiki服务器可以发送交易电子邮件,例如密码重置电子邮件,通知电子邮件等,这一点很重要。

编辑 LocalSettings.php 文件。

sudo nano /var/www/mediawiki/LocalSettings.php

在此文件的末尾添加以下行。

$wgSMTP = [
    'host'     => 'tls://mail.your-domain.com', // could also be an IP address. Where the SMTP server is located. If using SSL or TLS, add the prefix "ssl://" or "tls://".
    'port'     =>  587,                         // Port to use when connecting to the SMTP server
    'auth'     =>  true,                        // Should we use SMTP authentication (true or false)
    'username' =>  '[email protected]',      // Username to use for SMTP authentication (if being used)
    'password' =>  'user_password'              // Password to use for SMTP authentication (if being used)
];

保存并关闭文件。

有关如何设置电子邮件服务器的信息,请查看以下教程。 笔记 我强烈建议在全新的干净操作系统上运行iRedMail邮件服务器。 在具有其他Web应用程序的OS上安装iRedMail可能会失败,并且可能会破坏现有应用程序。

  • 如何使用iRedMail在Ubuntu 20.04上轻松设置功能齐全的邮件服务器

包起来

本教程介绍了如何在Ubuntu 20.04上安装MediaWiki。 希望这对您有所帮助。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar