Игорь Какупшев
Настоящее руководство поможет успешно установить СЭД 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
Помнится, были проблемы с производительностью на FreeBSD с веткой php-5.2.x
Про проблемы производительности php-5.2.x на FreeBSD ничего сказать не могу. Может быть когда-то они и были. Вообще, если они и были, то речь скорее всего шла о тех случаях, когда сервер обслуживал большое количество одновременных подключений (сотни, тысячи и более). А в случае с СЭД в локальной сети вряд ли это может стать актуальным.
Так или иначе, в этом отношении с php-5.3.x на ОС FreeBSD все нормально. По крайней мере, мне об этом не известно. Специальных замеров производительности я не делал, но по субъективным ощущениям, работать комфортно.
Разницу в производительности я также не почувствовал между случаем локальной установки на машину с Windows XP и случаем установки на эту же машину FreeBSD, обращение к которой происходило по локальной 100-мегабитной сети. При этом, никаких оптимизаций и ускорителей в обоих случаях я не применял.
Сегодня специально пробовал «на ощупь» скорость работы локально установленного Detrix-а на Windows XP и сравнивал со скоростью работы с вариантом, когда Detrix установлен на машину с FreeBSD, доступной по локальной 100-мегабитной сети. Причем, железо на локальной машине с Windows XP гораздо мощнее и современнее, нежели железо на машине с FreeBSD. Создавал новые документы, редактировал существующие, просто открывал ранее заведенные документы и т. д. и т. п. Словом, постарался осуществлять самые разнообразные операции.
В итоге, по субъективным ощущениям, скорость работы в случае с FreeBSD оказалась быстрее, примерно на 15-20% и выше….