如何使用Nginx安装DokuWiki并在CentOS 8上加密SSL

如何使用Nginx安装DokuWiki并在CentOS 8上加密SSL

DokuWiki是易于使用且用途广泛的开源Wiki软件,不需要数据库。它因其简单易读的语法而受到用户的喜爱。易于维护,备份和集成使其成为管理员的最爱。内置的访问控制和身份验证连接器使DokuWiki在企业环境中特别有用,并且来自活跃社区的许多插件提供了超越传统Wiki的广泛使用案例。本教程显示了如何在新的CentOS 8服务器上安装DokuWiki。

要求条件

确保您的服务器满足以下要求:

  • 支持PHP的Web服务器软件(Apache,NGINX,IIS,Lighttpd,LiteSpeed)
  • 强烈建议使用PHP 5.6或更高版本。

前提条件

  • 一个CentOS 8操作系统。
  • 非root用户 sudo 特权。

第一步

检查CentOS版本:

cat /etc/centos-release# CentOS Linux release 8.0.1905 (Core)

设置时区。

timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'

更新操作系统软件包(软件)。这是重要的第一步,以确保您具有操作系统默认软件包的最新更新和安全修复程序。

sudo dnf update -y

安装一些基本软件包,这些软件包是CentOS操作系统的基本管理所必需的。

sudo dnf install -y curl wget vim git unzip socat bash-completion epel-release

第1步-安装PHP和PHP扩展

安装PHP和所需的PHP扩展。

sudo dnf install -y php php-cli php-fpm php-gd php-xml php-zip

要查看编​​译成模块的PHP,可以执行以下操作:

php -mctypecurlexiffileinfo. . .. . .

检查PHP版本。

php --version# PHP 7.2.11-1-(cli) (built: Oct 26 2019 14:14:18) ( NTS )# Copyright (c) 1997-2018 The PHP Group# Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies# with Zend OPcache v7.3.11-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

启动并启用PHP-FPM服务。

sudo systemctl start php-fpm.servicesudo systemctl enable php-fpm.service

第2步-安装acme.sh客户端并获取Let’s Encrypt证书(可选)

您不需要使用HTTPS保护站点,但是建议您保护站点流量。要从Let’s Encrypt获得TLS证书,请使用acme.sh客户端。 Acme.sh是一个简单的UNIX shell软件,用于从Let’s Encrypt获得非依赖性TLS证书。

下载并安装acme.sh。

sudo su - rootgit clone https://github.com/Neilpang/acme.sh.gitcd acme.sh ./acme.sh --install --accountemail [email protected]source ~/.bashrccd ~

检查acme.sh版本。

acme.sh --version# v2.8.2

得到 RSAECC / ECDSA 域/主机名证书:

# RSA 2048acme.sh --issue --standalone -d example.com --keylength 2048# ECDSAacme.sh --issue --standalone -d example.com --keylength ec-256

如果您需要伪造的证书进行测试,则可以添加 --staging 以上命令的标志。

运行上述命令后,证书和密钥位于以下位置:

  • 对于 RSA/home/username/example.com 目录。
  • 对于 ECC / ECDSA/home/username/example.com_ecc 目录。

要列出颁发的证书,您可以:

acme.sh --list

创建一个目录来存储证书。使用方法 /etc/letsencrypt 目录。

mkdir -p /etc/letsecnrypt/example.comsudo mkdir -p /etc/letsencrypt/example.com_ecc

将证书安装/复制到/ etc / letsencrypt目录中。

# RSAacme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"# ECC/ECDSAacme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

所有证书每60天自动更新一次。

从root用户获得证书,然后返回普通的sudo用户。

exit

第3步-安装和配置Nginx

DokuWiki在支持PHP的Web服务器上运行。本教程使用Nginx。如果您喜欢Apache或其他Web服务器,则可以使用它代替Nginx。

从GICentOS信息库下载并安装NGINX。

sudo dnf install -y nginx

检查Nginx的版本。

sudo nginx -v# nginx version: nginx/1.14.2

配置Nginx。

sudo vim /etc/nginx/conf.d/dokuwiki.conf

复制并粘贴以下Nginx设置并保存:

server {    listen [::]:443 ssl;    listen 443 ssl;
    listen [::]:80;
    listen 80;
    # RSA    ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/example.com/private.key;    # ECC    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
    server_name wiki.example.com;
    root /var/www/dokuwiki;
    index index.html index.htm index.php doku.php;
    
    client_max_body_size 15M;
    client_body_buffer_size 128K;
    
    location / {
        try_files $uri $uri/ @dokuwiki;
    }
    
    location ^~ /conf/ { return 403; }
    location ^~ /data/ { return 403; }
    location ~ /.ht { deny all; }
    
    location @dokuwiki {
        rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
        rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
        rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
        rewrite ^/(.*) /doku.php?id=$1 last;
    }
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

检查ginNginx的配置。

sudo nginx -t

Nginx重新加载:

sudo systemctl reload nginx.service

步骤4-安装DokuWiki

创建一个文档根目录。

sudo mkdir -p /var/www/dokuwiki

转到文档根目录。

cd /var/www/dokuwiki

从DokuWiki下载页面下载DokuWiki的最新稳定版本。

sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

解压缩DokuWiki tarball。

sudo tar xvf dokuwiki-stable.tgzsudo rm dokuwiki-stable.tgzsudo mv dokuwiki-2018-04-22b/* . && mv dokuwiki-2018-04-22b/.* .sudo rmdir dokuwiki-2018-04-22b/

更改所有权 /var/www/dokuwiki 到目录 www-data:

sudo chown -R nginx:nginx /var/www/dokuwiki

sudo vim /etc/php-fpm.d/www.conf 用户和组 nginx。最初设置为用户和组 apache

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

重新启动 php7.3-fpm.service:

sudo systemctl restart php7.3-fpm.service

打开DokuWiki设置脚本, install.php在浏览器中设置DokuWiki。安装脚本将检查所需的PHP函数的可用性并检查所需的文件权限。还创建一个初始管理员帐户和一个初始ACL策略。打开以运行安装程序 http://wiki.example.com/install.php 按照浏览器中的说明进行操作。

第5步-访问DokuWiki Web界面

打开网络浏览器,然后输入URL http://example.com/install.php。您将被重定向到下一页。

提供所有必要的信息,例如超级用户名,电子邮件,密码等。然后点击 保存到 按钮如果安装成功完成,将显示以下页面。

设置用户名和密码

现在,点击 新的DokuWiki。显示以下页面。

DokuWiki已成功安装

在这里,单击登录按钮。您将被重定向到下一页。

登入

接下来,输入管理员的用户名和密码。然后点击 记录 按钮下一页将显示DokuWiki仪表板。

欢迎使用DokuWiki

如果配置成功, install.php 来自DokuWiki根目录的文件:

sudo rm /var/www/dokuwiki/install.php

恭喜你!您已在CentOS 8服务器上成功安装和配置了DokuWiki。现在,您可以使用DokuWiki轻松创建自己的Wiki网站。

Sidebar