Как установить Detrix на FreeBSD

Игорь Какупшев

Настоящее руководство поможет успешно установить СЭД Detrix на операционную систему FreeBSD. В качестве примера, используется FreeBSD 9.0-RELEASE-p4 i386. По настоящему руководству проверена также установка Detrix на FreeBSD 8.2-RELEASE-p9 i386. И, по всей вероятности, не должно возникнуть проблем с установкой Detrix на другие версии FreeBSD, в том числе для архитектур, отличных от i386.

Инструкция по установке операционной системы FreeBSD на компьютер здесь не приводится. Предполагается, что она уже установлена и должным образом настроена (т. е. прописаны параметры сети, имя машины, настроено подключение к сети интернет и пр.). Все действия должны производиться от имени суперпользователя root. Порядок установки желательно не нарушать. В данном руководстве, в качестве примера используется ip-адрес 192.168.0.110/24 и имя хоста detrix.my.local (эти параметры указаны в /etc/rc.conf).

Суммарное время, затрачиваемое автором руководства на установку СЭД (начиная с установки операционной системы и заканчивая запуском Detrix) составляет около 2 часов на компьютер со следующими характеристиками:
процессор: Pentium4 3.0 Ghz (1 ядро)
RAM: 768 Mb (DDR 400)
HDD: 80 Gb (IDE)
Дата выпуска: март 2005 г.

Общие рекомендации:

- если нет надобности в протоколе TCP/IP 6-й версии, то в целях экономии трафика и времени его можно отключать в опциях всех собираемых портов;

- для удобства можно установить привычный файловый менеджер (напр., mc-light), текстовый редактор и пр.;

- в конфигурационных файлах настраиваемых сервисов рекомендуется в конце добавляться пустую строку, т. к. встречались случаи, когда не читались последние директивы конфигурационных файлов;

- для удаленного подключения к машине можно настроить SSH-сервер (инструкция здесь не приводится).

1. Первым делом необходимо скачать и распаковать дерево портов (приблизительный объем — 70Мб). Скорость процесса будет зависеть от скорости подключения к сети Интернет, мощности компьютера и скорости быстродействия дисковой подсистемы.

portsnap fetch

portsnap extract

2. Следующим шагом необходимо установить СУБД PostgreSQL версии 8.х (на текущий момент postgresql-server-8.4.13). Версия 9.х пока не подходит. Все опции установки нужно оставить такими, какие они есть по умолчанию (рекурсивно).

cd /usr/ports/databases/postgresql84-server/

make config-recursive

make install clean

3. После установки PostgreSQL установить web-server Apache. Работоспособность проверена на последней версии Apache-2.2 (на текущий момент — 2.2.22_6). В настройках установки Apache необходимо отметить PGSQL, убедиться, что отмечены HEADERS и REWRITE. Все остальные опции, в том числе в рекурсивных портах, нужно оставить такими, какие они есть по умолчанию.  Как было указано в рекомендациях в начале руководства, можно убирать IPV6 в опциях всех устанавливаемых портов, если его не планируется использовать.

cd /usr/ports/www/apache22

make config-recursive

make install clean

4. Далее необходимо установить интерпретатор PHP. Работоспособность Detrix проверена на версии 5.3.х (на текущий момент — 5.3.16). С версией 5.4.х работоспособность СЭД не проверялась. В опциях PHP  обязательно нужно отметить APACHE и CLI. Остальные опции, в том числе рекурсивные, нужно оставить такими, какие они есть по умолчанию. Как и ранее, опцию IPV6 можно отключать во всех портах, в том числе и в рекурсивных зависимостях.

cd /usr/ports/lang/php53

make config-recursive

make install clean

5. Поддержка PHP во FreeBSD построена по модульному принципу, поэтому базовая установка обладает очень ограниченной функциональностью. Дополнительная функциональность может быть легко добавлена при помощи порта php5-extensions, управляющего набором расширений PHP через меню. Но можно также работать с расширениями путем установки дополнительных портов. В данной статье установка расширений производится при помощи порта php53-extensions. Detrix успешно запустилась у автора руководства при следующих отмеченных опциях:

BCMATH, BZ2, CALENDAR, CTYPE, DBA, DOM, EXIF, FILEINFO, FILTER, FTP, GD, GETTEXT, HASH, ICONV, JSON, MBSTRING, MCRYPT, OPENSSL, PCNTL, PDO, PDO_PGSQL, PGSQL, PHAR, POSIX, SESSION, SHMOP, SIMPLEXML, SOAP, SOCKETS, SYSVMSG, SYSVSEM, SYSVSHM, TIDY, TOKENIZER, WDDX, XML, XMLREADER, XMLWRITER, XSL, ZIP, ZLIB

Остальные опции отключены. В опциях порта php53-gd (рекурсивная зависимость) можно убрать X11 support. Остальные настройки, в том числе, рекурсивные, нужно оставить такими, какие они есть по умолчанию.

cd /usr/ports/lang/php53-extensions/

make config-recursive

make install clean

На этом этапе установка портов окончена. Чтобы все установленные программы стали доступны в командной строке, необходимо выполнить команду rehash и, затем, переходить к следующему пункту — настройке установленных программ:

rehash

6. Первым делом, после установки вышеуказанных портов, нужно настроить web-сервер Apache (это является, пожалуй, самым сложным и ответственным этапом руководства).

Сначала нужно убедиться, что в файле /usr/local/etc/apache22/httpd.conf появилась следующая строка:

«LoadModule php5_module libexec/apache22/libphp5.so»

Если ее нет, то ее нужно самостоятельно добавить в раздел «Dynamic Shared Object (DSO) Support» после записей подгружаемых модулей, которые там уже перечислены.

Затем нужно поправить строку «ServerName www.example.com:80″, вписав реальное имя хоста, которое система выдает в ответ на команду hostname. В данном случае строка будет выглядеть так:

ServerName detrix.my.local:80

Для того чтобы web-сервер открывал файл index.php по умолчанию (а не index.html) нужно найти секцию <IfModule dir_module> и привести ее к следующему виду:

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

И, где-нибудь в конце httpd.conf, нужно также добавить две следующие строки:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

Все проделанное выше обеспечит корректную работу динамических PHP-страниц.

Для записи логов Apache будет удобно создать отдельный каталог (хотя это и не обязательно делать) в правильном месте с правильными правами (кстати, туда же будет удобно записывать логи виртуального хоста Detrix-а):

mkdir /var/log/apache22

chown www:www /var/log/apache22/

Конечно же, в конфигурационном файле Apache нужно отразить эти поправки — соответствующие директивы привести к виду:

ErrorLog "/var/log/apache22/httpd-error.log"
CustomLog "/var/log/apache22/httpd-access.log" combined

Теперь создаем каталог, где будут непосредственно размещаться файлы Detrix:

mkdir /var/www/detrix

Далее нужно создать файл виртуального хоста Detrix для веб-сервера:

touch /usr/local/etc/apache22/Includes/detrix.conf

Вот таким должно быть минимальное содержимое этого файла:

<VirtualHost 192.168.0.110:80>
ServerName detrix.my.local
DocumentRoot "/var/www/detrix"
<Directory /var/www/detrix/>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/apache22/detrix.access.log combined
ErrorLog /var/log/apache22/detrix.error.log
</VirtualHost>

Естественно, ip-адрес и имя сервера нужно привести в соответствие с настройками используемой системы. Для более тонкой настройки виртуального хоста рекомендуется изучить документацию к Apache и привести настройки detrix.conf к собственным нуждам.

Чтобы web-сервер Apache автоматически запускался после перезагрузки системы нужно добавить в файл /etc/rc.conf строку:

apache22_enable="YES"

Еще один момент, который важно учесть — это поправить содержимое файла /etc/hosts. Его придется (да и вообще не будет ошибкой) поправить, если не настроен DNS. Для его правильной настройки достаточно вписать пару строк (естественно, ip-адрес и имя хоста вписывается в соответствии с собственными настройками):

192.168.0.110           detrix.my.local detrix
192.168.0.110           detrix.my.local.

Теперь, нужно проверить конфигурационные файлы web-сервера Apache на предмет наличия либо отсутствия ошибок:

apachectl configtest

Если в ответ появится сообщение «Syntax OK», то все настройки были произведены правильно, нет опечаток и ошибок и, значит, пора производить первый запуск web-сервера:

/usr/local/etc/rc.d/apache22 start

Всё, теперь можно заходить с интернет-браузера на адрес http://192.168.0.110. Должна отобразиться страничка с надписью «Index of /». Если всё так и есть, значит, настройку web-сервера можно считать успешно оконченной.

7. Теперь нужно производить настройку PHP. Для этого нужно создать файл /usr/local/etc/php.ini, используя существующий файл-шаблон /usr/local/etc/php.ini-production:

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

В созданном файле php.ini нужно прописать путь к PEAR-у (в разделе «Paths and Directories»), увеличить значения по умолчанию для загрузки больших по размеру файлов и проследить еще, чтобы директива «short_open_tag = Off» была закомментирована:

include_path = ".:/var/www/detrix/PEAR"
post_max_size = 100M
upload_max_filesize = 100M
date.timezone = Asia/Almaty ;установите свой часовой пояс
; short_open_tag = Off

После сохранения изменений, необходим перезапуск Apache:

apachectl graceful

8. Настало время скачать архив дистрибутива Detrix и распаковать его. Если дистрибутив был скачан и сохранен, например, в каталоге /root, то нужно выполнить следующие команды:

cd /root/

unzip Detrix-1.1.1.zip

Далее нужно скопировать содержимое дистрибутива в каталог «/var/www/detrix». При этом, следует помнить, что команда «cp -R» в ОС FreeBSD не копирует dot-файлы, т. е. файлы, название которых начинается с символа точка «.», которые есть в дистрибутиве Detrix. Поэтому, копирование дистрибутива лучше проводить с помощью средства, гарантирующего копирование абсолютно всех файлов в целевой каталог, например с помощью файлового менеджера Midnight Commander. Следом, необходимо выставить правильные права на каталоги:

chown -R www:www /var/www/detrix

chmod -R 750 /var/www/detrix

chmod -R 770 /var/www/detrix/var

9. Заключительный этап — настройка базы данных и правка конфигурационного файла СЭД Detrix.

Для начала нужно обеспечить поддержку кодировки UTF-8 в системе FreeBSD. Для этого в файл /etc/login.conf нужно добавить новый логин-класс дописав в него следующие строи:

russian-utf8|Russian Users Accounts UTF-8:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:lc_all=ru_RU.UTF-8:\
:tc=default:

Для того чтобы внесенные изменения вступили в силу, необходимо перестроить системную базу данных логин-классов и затем задать для пользователя pgsql вновь созданный класс:

cap_mkdb /etc/login.conf

pw usermod pgsql -L russian-utf8

Для обеспечения автоматического запуска PostgreSQL с кодировкой UTF-8 в случае перезагрузки системы нужно добавить в файл /etc/rc.conf две строки:

postgresql_enable="YES"
postgresql_class="russian-utf8"

Перед первым запуском сервера PostgreSQL в ОС FreeBSD нужно произвести его первичную инициализацию командой:

/usr/local/etc/rc.d/postgresql initdb

После успешной инициализации можно запускать сервер PostgreSQL:

/usr/local/etc/rc.d/postgresql start

Осталось создать необходимые базы данных. Для этого необходимо изменить текущего пользователя с помощью следующей команды:

su pgsql

Далее нужно создать роль пользователя с именем detrix, задать для него пароль и привилегии, создать две базы данных и выйти из оболочки пользователя pgsql с помощью следующих команд:

createuser -P detrix

createdb -O detrix -E UTF8 detrix

createdb -O detrix -E UTF8 detrix-arc

exit

Заключительным шагом в настройке PostgreSQL является заполнение созданных баз данных необходимыми таблицами:

psql -h localhost -U detrix -d detrix < /var/www/detrix/DB/db-freebsd.sql

psql -h localhost -U detrix -d detrix-arc < /var/www/detrix/DB/dbarc-freebsd.sql

Последнее, что осталось сделать — это поправить конфигурационный файл Detrix /var/www/detrix/settings.xml, вписав в него созданный пароль в соответствующих строках:

<item name="sql_password" value="pass" />
<item name="arch_sql_password" value="pass"/>

На этом установку СЭД Detrix можно считать завершенной. Остается зайти через браузер на адрес сервера (в текущем примере http://192.168.0.110/) используя логин admin и пароль admin.

Примечания

Здесь рассмотрены проблемы, специфичные для случаев развертывания СЭД Detrix на ОС FreeBSD. Настоящие примечания являются обработанной копией рецептов и рекомендаций с технического форума, а также статьи по установке Detrix на Linux.

В операционной системе FreeBSD в конфигурационном файле /usr/local/etc/php.ini важно проследить, чтобы директива «short_open_tag» была со значением «On» (значение по умолчанию). Дело в том, что в файле-шаблоне «php.ini-production» на основе которого создается php.ini эта директива встречается дважды, причем второй раз она переопределяется в значение «Off». Если эту строку не закомментировать, то в файле detrix.error.log будут появляться сообщения об ошибке «PHP Parse error: syntax error, unexpected $end in /var/www/detrix/system/debug.php on line 114″.

В некоторых случаях отказа первого запуска Detrix, может помочь полное удаление содержимого /var/www/detrix и повторное копирование содержимого архива с исходниками Detrix. При этом следует помнить о правильном выставлении прав на каталог с Detrix и прописывании пароля в файле /var/www/detrix/settings.xml.

Автор настоящего руководства не даёт никаких гарантий, что не возникнут еще какие-либо проблемы в процессе установки и эксплуатации СЭД Detrix на FreeBSD (даже не смотря на то, что успешность инсталляции Detrix по настоящему руководству на машину со свежеустановленной FreeBSD 9.0 RELEASE i386 была проверена методом «копипастинга»).

Автор: Какупшев Игорь Владимирович

E-mail: bsdsrv@yandex.ru

Комментарии

  1. polatov:

    Помнится, были проблемы с производительностью на FreeBSD с веткой php-5.2.x

    • Про проблемы производительности php-5.2.x на FreeBSD ничего сказать не могу. Может быть когда-то они и были. Вообще, если они и были, то речь скорее всего шла о тех случаях, когда сервер обслуживал большое количество одновременных подключений (сотни, тысячи и более). А в случае с СЭД в локальной сети вряд ли это может стать актуальным.

      Так или иначе, в этом отношении с php-5.3.x на ОС FreeBSD все нормально. По крайней мере, мне об этом не известно. Специальных замеров производительности я не делал, но по субъективным ощущениям, работать комфортно.

      Разницу в производительности я также не почувствовал между случаем локальной установки на машину с Windows XP и случаем установки на эту же машину FreeBSD, обращение к которой происходило по локальной 100-мегабитной сети. При этом, никаких оптимизаций и ускорителей в обоих случаях я не применял.

  2. Сегодня специально пробовал «на ощупь» скорость работы локально установленного Detrix-а на Windows XP и сравнивал со скоростью работы с вариантом, когда Detrix установлен на машину с FreeBSD, доступной по локальной 100-мегабитной сети. Причем, железо на локальной машине с Windows XP гораздо мощнее и современнее, нежели железо на машине с FreeBSD. Создавал новые документы, редактировал существующие, просто открывал ранее заведенные документы и т. д. и т. п. Словом, постарался осуществлять самые разнообразные операции.

    В итоге, по субъективным ощущениям, скорость работы в случае с FreeBSD оказалась быстрее, примерно на 15-20% и выше….

Задать вопрос

Copyright © 2011-2013 Андрей Суров При копировании материалов сайта гиперссылка Detrix.kz обязательна