Задача
Выполнить установку Dokuwiki на ОС FreeBSD. Получить рабочий прототип системы любым способом, даже жертвуя оптимальностью, производительностью, безопасностью.
Исходные данные
Вместо вступления
Понадобилась wiki для написания технических статей на разные темы с логическими связями между собой. Применение плоской структуры (файлы статей в каталогах на файловой системе) не устраивала по причине ограничения создаваемых зависимостей (одна). А вот материал, который можно связать между собой логически (http линками) не привязываясь к физическому нахождению самой статьи, соответствует ожиданиям от системы.
Требования, которые выдвигались:
· Open Source. · Простота в установке\настройке. · Работа на FreeBSD. · Работа в окружении Jail. · Работа только в защищённом сетевом периметре (специальных требований по безопасности нет). · Количество одновременный работающих клиентов – не более 10. · Отсутствие базы данных. . Тонкий клиент http (https – опционально). · Наличие поиска. . Работа в кодировке UTF-8. · Необходимость создания множественных логических ссылок на другие статьи. · Известность проекта. · Расширяемость функционала плагинами.
В конечном итоге была выбрана DokuWiki. Так как нет полного понимания как оптимально настроить компоненты системы, но вообще как их правильно настраивать, то все настройки, где это возможно, используются по умолчанию. Все конфигурационные файлы находятся в тех местах, где их создал инсталлятор.
Структура статьи блочная, для улучшенного понимания, редактирование текста, исправления ошибок и неточностей, а также для ввода новых блоков, когда во время введения нового функционала сценарий установки будет меняться. В заглавии компонент присутствует их общее название, но в примерах фигурируют версии применяемого ПО.
Есть отдельная глава «Общая сборка системы» в который приведены сценарии сборки системы в зависимости от применяемых версий установленного ПО.
Некоторых описанные подходы могут «смущать», но я считаю, что лучше людей сразу сориентировать в своих начальных познаниях, нежели «корчить» из себя знатока. Как бы там не было приведённая инсталляции системы работающая, а как говорил Ульянов (Ленин) - «Критерий истины заключается в практике».
Install: nginx 1.0.12_1,1 (без поддержки SSL)
cd /usr/ports/www/nginx
make config
Options for nginx 1.0.12_1,1:
[X] HTTP_MODULE Enable HTTP module
[X] HTTP_REWRITE_MODULE Enable http_rewrite module
[X] HTTP_STATUS_MODULE Enable http_stub_status module
[X] WWW Enable html sample files
make install clean
PS: Порты от которых зависит данное ПО был установлены с параметрами по умолчанию.
Install: php5 5.3.10_1
/usr/ports/lang/php5
make config
Options for php5 5.3.10_1:
[X] CLI Build CLI version
[X] CGI Build CGI version
make install clean
PS: Порты от которых зависит данное ПО был установлены с параметрами по умолчанию.
Install: php5-xml-5.3.10_1
cd /usr/ports/textproc/php5-xml
make install clean
Install: php5-session-5.3.10_1
cd /usr/ports/www/php5-session
make install clean
Install: spawn-fcgi-1.6.3
cd /usr/ports/www/spawn-fcgi
make install clean
PS: Порты от которых зависит данное ПО было установлено с параметрами по умолчанию.
Install: dokuwiki-2012-01-25.tgz "Angua"
-
Архив дистрибутива dokuwiki - dokuwiki-2012-01-25.tgz;
-
Рабочий каталог Dokuwiki - /usr/local/www;
-
Системный пользователь ОС от имени которого будет работ Web-сервер и которому необходимы полные права на каталоги\файлы дистрибутива - www;
Команды для распаковки и подготовки работы дистрибутива Dokuwiki:
set restoreDir=/usr/local/www
set workUser=www
tar -xzv -f dokuwiki-2012-01-25.tgz -C $restoreDir
mv $restoreDir/dokuwiki-2012-01-25 $restoreDir/dokuwiki
chown -R "$workUser":"$workUser" $restoreDir/dokuwiki
chmod -R 770 $restoreDir/dokuwiki
Использования стандартных настроек PHP. Так как по умолчанию конфигурационный файл php.ini не создаётся, его необходимо создать из шаблона.
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Реализовать автоматический старт spawn-fcgi во время загрузки ОС
Конфигурационный файл /etc/rc.conf
spawn_fcgi_enable="YES"
Ручной запуск spawn_fcgi
/usr/local/etc/rc.d/spawn-fcgi start
Пример отклика об спешном старте spawn_fcgi:
Starting spawn_fcgi.
spawn-fcgi: child spawned successfully: PID: 56535
Реализовать автоматический старт nginx во время загрузки ОС
Конфигурационный файл /etc/rc.conf
nginx_enable="YES"
"Холодный пуск" Dokuwiki с шаблоном первоначальной настройки
Конфигурационный файл /usr/local/etc/nginx/nginx.conf
# First start config dokuwiki
user www;
worker_processes 1;
events {
worker_connections 10;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen xxx.xxx.xxx.xxx:80; #ip:port на которых будет работать dokuwiki
server_name C.ru; # полное доменное имя хоста, указывается
# в адресной строке браузера
root /usr/local/www/dokuwiki;
index install.php;
try_files $uri $uri/ /install.php;
location ~ .php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index install.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
Ручной запуск nginx
/usr/local/etc/rc.d/nginx start
Пример отклика об спешном старте nginx:
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.
Первоначальное конфигурирование
Первоначальное конфигурирование сводится к заполнению полей:
Запуск Dokuwiki с основной настройкой
/usr/local/etc/rc.d/nginx stop; /usr/local/etc/rc.d/spawn-fcgi stop
# Work config Dokuwiki
user www;
worker_processes 1;
events {
worker_connections 10;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen xxx.xxx.xxx.xxx:80; #ip:port на которых будет работать dokuwiki
server_name C.ru; # полное доменное имя хоста, которое
# указывается в адресной строке браузера
root /usr/local/www/dokuwiki;
index index.php doku.php;
try_files $uri $uri/ /duku.php;
location ~ .php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index doku.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
/usr/local/etc/rc.d/spawn-fcgi start; /usr/local/etc/rc.d/nginx start
-
Install: nginx 1.0.12_1,1 (без поддержки SSL);
-
Install: php5 5.3.10_1;
-
Install: php5-xml-5.3.10_1;
-
Install: php5-session-5.3.10_1;
-
Install: php5-session-5.3.10_1;
-
Install: dokuwiki-2012-01-25.tgz «Angua»;
-
Config: php5 5.3.10_1;
-
Config: spawn-fcgi-1.6.3;
-
Config: nginx 1.0.12_1,1 (без поддержки SSL);
[Ссылки]
1. DokuWiki.org.
|