Установка DokuWiki · 6 min read · Dec 14, 2025

Как установить DokuWiki с Nginx и SSL Let's Encrypt на FreeBSD 12

DokuWiki — это простое в использовании и высоко универсальное программное обеспечение для вики с открытым исходным кодом, которое не требует базы данных. Пользователи любят его за чистый и читаемый синтаксис. Простота обслуживания, резервного копирования и интеграции делает его любимцем администраторов. Встроенные средства управления доступом и соединения аутентификации делают DokuWiki особенно полезным в корпоративном контексте, а большое количество плагинов, предоставленных его активным сообществом, позволяет использовать его в широком диапазоне случаев, выходящих за рамки традиционной вики. Этот учебник покажет вам, как установить DokuWiki на сервере FreeBSD 12.

Требования

Убедитесь, что ваш сервер соответствует следующим требованиям.

  • Программное обеспечение веб-сервера, поддерживающее PHP (Apache, NGINX, IIS, Lighttpd, LiteSpeed)
  • Версия PHP 5.6 или новее, более новые версии настоятельно рекомендуются.

Предварительные условия

  • Операционная система FreeBSD 12.
  • Непривилегированный пользователь с правами sudo.

Начальные шаги

Проверьте версию FreeBSD.

uname -ro  
# FreeBSD 12.1-RELEASE

Обновите пакеты вашей операционной системы (программное обеспечение). Это важный первый шаг, так как он гарантирует, что у вас есть последние обновления и исправления безопасности для стандартных пакетов программного обеспечения вашей операционной системы.

freebsd-update fetch install  
pkg update && pkg upgrade -y

Установите несколько необходимых пакетов, которые необходимы для базового администрирования операционной системы FreeBSD 12.

pkg install -y sudo vim unzip curl wget bash bash-completion socat git

Создайте новую учетную запись пользователя с вашим предпочтительным именем пользователя, мы используем johndoe.

adduser  
# Имя пользователя: johndoe  
# Полное имя: John Doe  
# Uid (оставьте пустым для по умолчанию):   
# Группа входа [johndoe]:   
# Группа входа — johndoe. Пригласить johndoe в другие группы? []: wheel  
# Класс входа [по умолчанию]:   
# Оболочка (sh csh tcsh nologin) [sh]: bash  
# Домашний каталог [/home/johndoe]:   
# Права доступа к домашнему каталогу (оставьте пустым для по умолчанию):   
# Использовать аутентификацию на основе пароля? [да]:   
# Использовать пустой пароль? (да/нет) [нет]:   
# Использовать случайный пароль? (да/нет) [нет]:   
# Введите пароль: your_secure_password  
# Введите пароль еще раз: your_secure_password  
# Заблокировать учетную запись после создания? [нет]:   
# ОК? (да/нет): да  
# Добавить другого пользователя? (да/нет): нет  
# До свидания!

Запустите команду visudo и раскомментируйте строку %wheel ALL=(ALL) ALL, чтобы разрешить членам группы wheel выполнять любые команды.

visudo  
  
# Уберите комментарий, удалив знак решетки (#)  
%wheel ALL=(ALL) ALL

Теперь переключитесь на вновь созданного пользователя с помощью команды su.

su - johndoe

ПРИМЕЧАНИЕ: Замените johndoe на ваше имя пользователя.

Настройте часовой пояс.

sudo tzsetup

Шаг 1 - Установите PHP и расширения PHP

Установите PHP, а также необходимые расширения PHP.

sudo pkg install -y php72 php72-mbstring php72-tokenizer php72-pdo php72-pdo_mysql php72-openssl php72-hash php72-json php72-phar php72-filter php72-zlib php72-dom php72-xml php72-xmlwriter php72-xmlreader php72-pecl-imagick php72-curl php72-session php72-ctype php72-iconv php72-gd php72-simplexml php72-zip php72-filter php72-tokenizer php72-calendar php72-fileinfo php72-intl php72-mysqli php72-phar php72-opcache php72-pdo_pgsql

Проверьте версию PHP.

php --version  
# PHP 7.2.17 (cli) (собран: Apr 13 2019 01:13:32) ( NTS )  
# Авторские права (c) 1997-2018 The PHP Group  
# Zend Engine v3.2.0, Авторские права (c) 1998-2018 Zend Technologies

Создайте символическую ссылку php.ini-production на php.ini.

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Включите и запустите PHP-FPM.

sudo sysrc php_fpm_enable=yes  
sudo service php-fpm start

Шаг 2 - Установите клиент acme.sh и получите сертификат Let’s Encrypt (необязательно)

Защита вашего сайта с помощью HTTPS не является обязательной, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат TLS от Let’s Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это простое программное обеспечение UNIX shell для получения сертификатов TLS от Let’s Encrypt с нулевыми зависимостями.

Скачайте и установите acme.sh:

sudo pkg install -y acme.sh

Проверьте версию acme.sh:

acme.sh --version  
# v2.8.5

Получите RSA и ECC/ECDSA сертификаты для вашего домена/имени хоста:

# RSA 2048  
sudo acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
sudo acme.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.

sudo mkdir -p /etc/letsecnrypt/example.com  
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите/скопируйте сертификаты в директорию /etc/letsencrypt.

# RSA  
sudo acme.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/ECDSA  
sudo acme.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. В этом учебнике мы будем использовать Nginx. Если вы предпочитаете Apache или другой веб-сервер, вы можете использовать его вместо Nginx.

Установите Nginx.

sudo pkg install -y nginx

Проверьте версию Nginx.

nginx -v  
# версия nginx: nginx/1.16.1

Включите и запустите службу Nginx.

sudo sysrc nginx_enable=yes  
sudo service nginx start

Запустите sudo vim /usr/local/etc/nginx/dokuwiki.conf и настройте виртуальный сервер Nginx для DokuWiki.

sudo vim /usr/local/etc/nginx/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 /usr/local/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 $uri/ /doku.php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param REDIRECT_STATUS 200;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Сохраните файл и выйдите из вашего редактора.

Включите файл dokuwiki.conf в основной файл nginx.conf, выполнив sudo vim /usr/local/etc/nginx/nginx.conf и добавив следующую строку в блок http {}.

include dokuwiki.conf;

Проверьте изменения конфигурации Nginx.

sudo nginx -t

Перезагрузите Nginx.

sudo service nginx reload

Шаг 4 - Установите DokuWiki

Создайте директорию корня документа:

sudo mkdir -p /usr/local/www/dokuwiki

Перейдите в корень документа:

cd /usr/local/www/dokuwiki

Скачайте последнюю стабильную версию DokuWiki со страницы загрузки DokuWiki:

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

Распакуйте архив DokuWiki:

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

Измените владельца директории /var/www/dokuwiki на www:

sudo chown -R www:www /usr/local/www/dokuwiki

Перезапустите PHP-FPM:

sudo service php-fpm restart

Откройте скрипт настройки DokuWiki, install.php, в вашем браузере и настройте DokuWiki. Скрипт установки проверяет наличие необходимых функций PHP и проверяет необходимые разрешения на файлы. Он также создает начальную учетную запись администратора и начальную политику ACL. Чтобы запустить установщик, откройте http://wiki.example.com/install.php в браузере и следуйте инструкциям.

Шаг 5 - Доступ к веб-интерфейсу DokuWiki

Откройте ваш веб-браузер и введите URL http://example.com/install.php. Вы будете перенаправлены на следующую страницу:

Установщик DokuWiki

Предоставьте всю необходимую информацию, такую как имя суперпользователя, электронная почта, пароль. Затем нажмите кнопку Сохранить. После успешного завершения установки вы должны увидеть следующую страницу:

Установите имя пользователя и пароль

Теперь нажмите на ваш новый DokuWiki. Вы должны увидеть следующую страницу:

DokuWiki успешно установлен

Теперь нажмите на кнопку войти. Вы будете перенаправлены на следующую страницу:

Вход

Теперь введите ваше имя пользователя администратора и пароль. Затем нажмите кнопку Войти. Вы должны увидеть панель управления DokuWiki на следующей странице:

Добро пожаловать в DokuWiki

После успешной конфигурации удалите файл install.php из корневого каталога DokuWiki:

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

Поздравляем! Вы успешно установили и настроили DokuWiki на сервере FreeBSD 12. Теперь вы можете легко создать свой собственный вики-сайт, используя DokuWiki.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.