如何在 CentOS 7 上使用 Nginx 安装 MediaWiki如何在 CentOS 7 上使用 Nginx 安装 MediaWiki如何在 CentOS 7 上使用 Nginx 安装 MediaWiki如何在 CentOS 7 上使用 Nginx 安装 MediaWiki
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 7 上使用 Nginx 安装 MediaWiki

在此页

  1. 我们将做什么
  2. 先决条件
  3. 第 1 步 - 在 CentOS 7 上安装 Nginx
  4. 第 2 步 - 安装和配置 PHP-FPM
  5. 第 3 步 - 安装和配置 MariaDB 数据库
  6. 第 4 步 - 下载并配置 MediaWiki
  7. 第 5 步 - 在 CentOS 7 上生成 SSL Letsencrypt
  8. 第 6 步 - 为 MediaWiki 配置 Nginx 虚拟主机
  9. 第 7 步 - 基于 Web 的 MediaWiki 安装
    1. 语言配置
    2. 环境检查
    3. 数据库配置
    4. 数据库设置
    5. 创建新的管理员用户
    6. MediaWiki 附加配置
    7. MediaWiki 安装

    MediaWiki 是一种流行的 wiki 软件,最初是为在维基百科上使用而开发的。它是一个用 PHP 编程语言编写的免费开源 wiki 软件。由 Magnus Manske 于 2002 年推出,该工具现在的版本为 1.30。 MediaWiki 已被许多大公司使用,包括 Nginx、Intel、Novell 等。

    在本教程中,我们将讨论如何在 CentOS 7 上使用 Nginx Web 服务器逐步安装 MediaWiki。我们还将指导您如何安装和配置用于 MediaWiki 安装的 LEMP 堆栈,包括为 MediaWiki 生成和配置新的免费 SSL Letsencrypt MediaWiki 安全。

    我们将要做什么

    1. 在 CentOS 7 上安装 Nginx
    2. 安装和配置 PHP-FPM
    3. 安装和配置 MariaDB 数据库
    4. 下载并配置 MediaWiki
    5. 在 CentOS 7 上生成新的 SSL Letsencrypt
    6. 为 MediaWiki 安装配置 Nginx 虚拟主机
    7. MediaWiki 基于 Web 的安装
    8. 配置 MediaWiki 默认皮肤

    先决条件

    • CentOS 7 服务器
    • 根权限

    第 1 步 - 在 CentOS 7 上安装 Nginx

    对于本教程,我们将使用 Nginx Web 服务器来安装 MediaWiki。在 CentOS 7 上,Nginx 包不存在。所以我们需要从第三方 EPEL (Extra Packages for Enterprise Linux) 仓库安装它。

    使用下面的 yum 命令更新所有软件包并在 CentOS 7 系统中安装 EPEL 存储库。

    yum -y update
    yum -y install epel-release

    接下来,安装 Nginx 网络服务器。

    yum -y install nginx

    Nginx 安装完成后,启动服务器并使其在系统启动时自动运行。

    systemctl start nginx
    systemctl enable nginx

    所以在CentOS 7服务器上已经安装了Nginx web服务器。使用 netstat 命令检查网络统计信息,在结果中,您应该获得 Nginx 服务正在使用的 HTTP 端口。

    netstat -plntu

    第 2 步 - 安装和配置 PHP-FPM

    在本教程中,我们将使用 PHP 7.0。在这里,在此步骤中,我们将安装 PHP 7.0(包括扩展)并为 MediaWiki 安装配置 PHP-FPM。

    我们将使用来自第三方存储库 webtatic 的 PHP 7.0 包。使用以下命令为 PHP 7.0 安装添加新的 webtatic 存储库。

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    现在我们可以使用下面的 yum 命令安装 PHP 7.0 和所有需要的扩展。

    yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

    至此,PHP 7.0 在 CentOS 7 上的安装就完成了。

    接下来,我们将配置 PHP-FPM 服务。我们将编辑用于配置 CGI 路径信息的 php.ini 文件,然后编辑 www.conf 配置以配置 PHP-FPM 服务。然后我们将配置 PHP-FPM 在 sock 文件下执行(使用 nginx 用户和组)。

    使用 vim 编辑器编辑 php.ini 文件。

    vim /etc/php.ini

    取消注释下面的行并将值更改为 0。

    cgi.fix_pathinfo=0

    保存更改,并退出编辑器。

    现在编辑 PHP-FPM 配置文件 www.conf。

    vim /etc/php-fpm.d/www.conf

    将用户和组行值更改为 nginx。

    user = nginx
    group = nginx

    现在更改变量的值监听 php-fpm.sock 文件,如下所示。

    listen = /run/php-fpm/php-fpm.sock

    我们需要配置 sock 文件的权限,以及 sock 文件目录的所有者。取消注释 listen.owner 和 listen.group 行,并将相应的值更改为 nginx。

    listen.owner = nginx
    listen.group =nginx
    listen.mode = 0660

    对于其他配置,取消注释下面的行。

    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp

    就是这样。保存并退出。

    接下来,为会话路径配置创建一个新目录。

    运行以下命令以创建会话目录。

    mkdir -p /var/lib/php/session/
    chown -R nginx:nginx /var/lib/php/session/

    完成后,启动 PHP-FPM 服务并使其在系统启动时自动运行。

    systemctl start php-fpm
    systemctl enable php-fpm

    使用下面的 netstat 命令检查 PHP-FPM。

    netstat -pl | grep php

    并确保你得到了 php-fpm.sock 文件。

    第 3 步 - 安装和配置 MariaDB 数据库

    MediaWiki 支持 MySQL/MariaDB 和 SQLite 数据库。然而,在本教程中,我们将使用 MariaDB 数据库。

    首先,使用下面的 yum 命令安装 MariaDB。

    yum -y install mariadb mariadb-server

    安装完成后,启动 mariadb 并使其在系统启动时启动。

    systemctl start mariadb
    systemctl enable mariadb

    现在我们需要为 MariaDB 数据库配置 root 密码。运行以下命令来配置 MariaDB root 密码。

    mysql_secure_installation

    键入 Y 并按 Enter。

    Set root password? [Y/n] Y
    TYPE ROOT PASSWORD HERE

    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y

    在CentOS 7系统上安装了MariaDB,并配置了root用户的密码。

    接下来,我们将为 MediaWiki 创建一个新的数据库。具体来说,我们将创建一个名为 mediawikidb 的新数据库,其中包含新用户/所有者 mediawiki 和密码 mypassword。

    使用 mysql 命令连接到 mysql shell。

    mysql -u root -p
    TYPE YOUR ROOT PASSWORD

    现在运行以下 mysql 查询为 MediaWiki 创建一个新数据库。

    create database mediawikidb;
    grant all privileges on mediawikidb.* to 'localhost' identified by 'mypassword';
    flush privileges;
    exit;

    已为 MediaWiki 安装创建新的数据库和用户。

    第 4 步 - 下载并配置 MediaWiki

    在本教程中,我们将使用最新版本 (1.30) 的 MediaWiki,我们将从存储库下载所有 MediaWiki 源代码。所以我们需要在系统上安装 git 和一些包。

    使用下面的 yum 命令安装 git 和其他包。

    yum -y install git zip unzip composer

    安装完成后,创建新目录 /var/www/mediawiki 并将 mediawiki 源代码克隆到该目录。

    mkdir -p /var/www/mediawiki
    git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

    接下来,进入 /var/www/mediawiki 目录并使用 composer 命令安装 MediaWiki 安装所需的一些 PHP 依赖项,如下所示。

    cd /var/www/mediawiki
    composer install --no-dev

    现在将 mediawiki 目录的所有权权限更改为 nginx(用户和组)。

    chown -R nginx:nginx /var/www/mediawiki

    MediaWiki 源代码确实已经下载到 /var/www/mediawiki 目录,并且所有依赖项都已安装。

    第 5 步 - 在 CentOS 7 上生成 SSL Letsencrypt

    出于安全原因,MediaWiki 将仅在 HTTPS 连接上运行。并且所有对 HTTP 的请求都会被 Nginx Web 服务器重定向到 HTTPS。

    要在 HTTPS 安全连接下运行 MediaWiki,我们需要 SSL 证书。所以我们将使用 Letsencrypt 提供的免费 SSL 证书。

    安装让加密命令行工具使用下面的 yum 命令。

    yum -y install letsencrypt

    安装完成后,使用 systemctl 命令停止 Nginx 服务。

    systemctl stop nginx

    接下来,我们将使用 letsencrypt 命令生成新的 SSL 证书。但在此之前,请确保 HTTP 和 HTTPS 服务已添加到 Firewalld。

    下面介绍如何向 Firewalld 添加新的 HTTP 和 HTTPS 服务。

    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-service=https --permanent
    firewall-cmd --reload

    生成新的免费 SSL 让我们使用下面的 letsencrypt 命令加密证书。

    letsencrypt certonly

    该命令将询问您有关 ACME 身份验证的信息。选择数字 1 来旋转临时 Web 服务器。

    接下来,输入您的续订通知电子邮件地址,然后输入 A 以同意 Letsencrypt 服务条款 (TOS),最后输入您的 wiki 域名。

    完成所有这些后,您将得到类似于下图所示的结果。

    来自 Letsencrypt 的新 SSL 证书已生成并存储在 /etc/letsencrypt/live 目录中。

    第 6 步 - 为 MediaWiki 配置 Nginx 虚拟主机

    在这一步中,我们将为 MediaWiki 创建新的 Nginx 虚拟主机配置。

    转到 /etc/nginx 目录并使用 vim 编辑器创建新的配置文件 mediawiki.conf。

    cd /etc/nginx/
    vim conf.d/mediawiki.conf

    下面粘贴配置。

    # HTTP Request will be Redirected to the HTTPS
    server {
        listen 80;
        listen [::]:80;
        server_name wiki.hakase-labs.co;
        return 301 https://$host$request_uri;
    }

    # HTTPS Configuration
    server {

        listen 443 ssl;
        listen [::]:443;
       
        server_name wiki.hakase-labs.co;
        root /var/www/mediawiki;

        index index.php;
        autoindex off;

        # SSL Certificate Configuration
        ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;

        client_max_body_size 5m;
        client_body_timeout 60;

        location / {
            try_files $uri $uri/ @rewrite;
        }

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

        location ^~ /maintenance/ {
            return 403;
        }

        # PHP-FPM Configuration Nginx
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            try_files $uri /index.php;
            expires max;
            log_not_found off;
        }

        location = /_.gif {
            expires max;
            empty_gif;
        }

        location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
            deny all;
        }

        location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
            internal;
        }

        # Security for 'image' directory
        location ~* ^/images/.*.(html|htm|shtml|php)$ {
            types { }
            default_type text/plain;
        }

        # Security for 'image' directory
        location ^~ /images/ {
            try_files $uri /index.php;
        }

    }

    就是这样。保存更改并退出编辑器。

    笔记:

    • 将域名更改为您自己的域。
    • 更改 SSL 证书文件的路径

    现在测试Nginx配置,确保没有错误,然后重启Nginx服务。

    nginx -t
    systemctl restart nginx

    已添加 MediaWiki 的 Nginx 虚拟主机配置,并准备好从 Web 浏览器安装 MediaWiki。

    第 7 步 - MediaWiki 基于 Web 的安装

    打开您的网络浏览器并输入 MediaWiki URL。

    http://wiki.hakase-labs.co/

    您将被重定向到 HTTPS 连接。在网页上,单击设置 wiki 链接。

    语言配置

    选择英语 en 语言并单击继续。

    环境检查

    确保所有服务器配置都已通过环境检查。

    然后单击继续。

    数据库配置

    输入数据库名称 mediawikidb,用户名 mediawiki 和密码 mypassword。

    现在点击继续。

    数据库设置

    将其保留为默认值并单击继续。

    创建新的管理员用户

    键入您自己的管理员用户、电子邮件、密码,然后单击继续。

    MediaWiki 附加配置

    现在我们进入有关 MediaWiki 附加配置的页面,如下所示。

    保留所有字段的默认值,然后单击继续。

    MediaWiki 安装

    单击继续以安装 MediaWiki。

    你会到达下面的页面。

    再次单击继续。

    MediaWiki 安装完成。系统将提示我们下载新文件 LocalSettings.php - 下载该文件。

    接下来,我们需要将刚刚下载的LocalSetting.php文件上传到服务器上的MediaWiki目录/var/www/mediawiki。另外,不要忘记将文件的所有权权限更改为 www-data(用户和组)。

    scp LocalSettings.php :/var/www/mediawiki/
    chown -R www-data:www-data /var/www/mediawiki

    返回您的网络浏览器 MediaWiki 安装页面,然后单击链接进入您的 wiki。您会看到 MediaWiki 已在 CentOS 7 服务器上安装了 Nginx 网络服务器。

    第 8 步 - 下载并配置 MediaWiki 默认皮肤

    至此,MediaWiki 的安装已经完成。在这一步中,我们将配置 MediaWiki 网站的默认皮肤/主题。

    转到 /var/www/mediawiki/skins 目录并将名为 Vector 的默认皮肤克隆到该目录。

    cd /var/www/mediawiki/skins/
    sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

    将 Vector 皮肤目录的所有者更改为 nginx 用户和组。

    chown -R nginx:nginx /var/www/mediawiki/skins/

    现在使用 vim 编辑器编辑 LocalSettings.php 文件。

    vim /var/www/mediawiki/LocalSettings.php

    并将以下 PHP 代码粘贴到文件末尾。

    wfLoadSkin( 'Vector' );

    就是这样。保存并退出。

    返回您的网络浏览器并刷新 MediaWiki 页面。确保您看到带有 Vector 皮肤的 MediaWiki,如下所示。

    在 CentOS 7 上使用 Nginx Web 服务器安装和配置 MediaWiki 已成功完成。

    参考

    • https://www.mediawiki.org/wiki/

©2015-2025 艾丽卡 support@alaica.com