Установка 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 на следующей странице:
После успешной конфигурации удалите файл install.php из корневого каталога DokuWiki:
sudo rm /var/www/dokuwiki/install.phpПоздравляем! Вы успешно установили и настроили DokuWiki на сервере FreeBSD 12. Теперь вы можете легко создать свой собственный вики-сайт, используя DokuWiki.
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.