Thank you for reading this post, don't forget to subscribe!
Оригинал статьи:
DokuWiki — простой, но достаточно мощный вики-движок, который может быть использован для создания любой документации. Автор проекта — Андреас Гор. В отличие от многих других движков, DokuWiki использует для хранения страниц текстовые файлы, таким образом единственным требованием является поддержка хостингом PHP.
Подготовка
Устанавливаем утилиты
$ sudo dnf -y install curl wget vim nano git unzip socat bash-completion
Подключаем репозиторий EPEL
$ sudo dnf -y install epel-release
Установка Nginx
Добавляем репозиторий
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ sudo nano /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true |
Устанавливаем Nginx
$ sudo dnf -y update
$
sudo dnf -y install nginx
Запускаем nginx и добавляем его в автозагрузку
$ sudo systemctl enable --now nginx
Отключаем дефолтный конфиг
$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disable
Настройка Firewall
Открываем порты 80 и 443
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --reload
Настройка SELinux
Устанавливаем утилиту для управления правилами SELinux
$ sudo dnf -y install policycoreutils-python-utils
Добавляем правило
$ sudo semanage permissive -a httpd_t
Установка PHP
Устанавливаем необходимые компоненты
$ sudo dnf -y install php php-cli php-fpm php-gd php-xml php-zip php-json
Настраиваем php-fpm
$ sudo nano /etc/php-fpm.d/www.conf
…
user = nginx
…
group = nginx
…
Меняем владельца каталога
$ sudo chown -R root:nginx /var/lib/php/session
Добавляем сервис в автозагрузку и запускаем его
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Настройка Nginx
Создадим директорию для ssl-сетификата
$ sudo mkdir /etc/nginx/ssl/
Сгенерируем самоподписанный сертификат и ключ
$ sudo openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:4096 -keyout /etc/nginx/ssl/private.key -out /etc/nginx/ssl/server.crt
Можно так же использовать покупной сертификат, либо бесплатный lets encrypt, но т.к. я разворачиваю DocuWiki в тестовой среде, использую самоподписанный
Создаем конфиг для DocuWiki
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
$ sudo nano /etc/nginx/conf.d/dokuwiki.conf server { listen [::]:443 ssl; listen 443 ssl; listen [::]:80; listen 80; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/private.key; server_name _; 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 unix:/run/php-fpm/www.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } |
Перезапускаем службы
sudo systemctl restart php-fpm nginx
Установка DocuWiki
Скачиваем дистрибутив
cd /tmp
выкачиваем через wget
https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
Создаем каталог, где будет лежать дистрибутив
$ sudo mkdir -p /var/www/dokuwiki
Распаковываем DocuWiki и переносим файлы в созданный каталог
$ tar xvf dokuwiki-stable.tgz
$ cd dokuwiki-2020-07-29
$ sudo mv * /var/www/docuwiki
Меняем владельца каталога и файлов
$ sudo chown -R nginx:nginx /var/www/docuwiki
Далее переходим в web-интерфейс по ip-адресу нашего сервера и завершаем установку DocuWiki