Решение проблемы с $PHP_AUTOCONF в FreeBSD
При установке из портов вылезла ошибка:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script
Сначала смотрим какие версии последние в системе:
# ls -la /usr/local/bin | grep autoconf
# ls -la /usr/local/bin | grep autoheader
Затем устанавливаем значение переменных в соответствии с последними версиями:
# setenv PHP_AUTOCONF autoconf-2.68
# setenv PHP_AUTOHEADER autoheader-2.68
Колисниченко Д. Н. FreeBSD. От новичка к профессионалу.
Вышла новая книга по FreeBSD от Дениса Колисниченко. От его прошлой книги я был не в восторге, но новую книгу решил купить, так как других книг по этой теме пока всё равно нет. Даже если удастся использовать 5-10% информации из книги, то это будет уже прекрасно.
Вчера книга пришла и я принялся её изучать. Открыв книгу наугад я был разочарован, так как увидел элементарные вещи по установке и настройки системы. Но полистав вторую половину книги я увидел более интересные вещи. В частности заинтересовали главы по администрированию сети и конфигурации программ.
После краткого знакомства с книгой впечатление скорее положительное. Материал, на мой взгляд, изложен более наглядно чем в прошлой книге. Заказать книгу можно по этой ссылке.
Backup данных на FreeBSD по расписанию
Опишу небольшой скрипт для резервного копирования данных и общий ход его применения. Для начала создадим файл, в котором будет хранится скрипт:
# touch backup
Делаем его исполняемым:
# chmod 700 backup
Добавляем в файл команды. Так как скрипт будет запускаться по crontab, в котором нет переменной окружения $PATH, то прописываем полные пути к нужным файлам.
#!/bin/sh
FILE="/etc /usr/local/etc /usr/home /var/db/mysql"
NAME=`/bin/date '+%Y%m%d'`
tar -cPzf /mnt/backup/${NAME}.tar.gz ${FILE}
Теперь пояснения к скрипту. В переменной FILE задаются пути к папкам подлежащим копированию. Переменная NAME задает вид имени будущего архива. В данном случае имя будет состоять из года, месяца и дня в который осуществляется копирование. Примерный вид — 20101128.tar.gz.
В последней строчке команде tar указывается с помощью ключей, что файлы нужно не только объединить, но и сжать. Затем указывается путь КУДА записывать архив /mnt/backup/${NAME}.tar.gz и ОТКУДА копировать ${FILE}.
Остается последний штрих — внести выполнение данного скрипта в расписание. Для этого вызываем команду crontab -e и вписываем следующую строчку:
#backup
20 4 * * 7 /usr/home/scripts/backup
В данном примере скрипт будет запускаться каждую субботу в 4 часа 20 минут.
Установка ionCube PHP на FreeBSD 6
Иногда требуется установить ionCube PHP для работы некоторых PHP скриптов. Делается это просто.
Сначала нужно определить версию своей ОС. К примеру так:
# uname -a
Допустим у нас FreeBSD 6. Тогда качаем нужный архив:
# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_fre_6_x86.tar.gz
Затем распковывываем его:
# tar xvzf ioncube_loaders_fre_6_x86.tar.gz -C /usr/local/
Определяем кокая версия PHP стоит на сервере:
# php -v
Допустим у нас стоит PHP 5.2.4, тогда вписываем в начало файла /usr/local/etc/php.ini строчки:
zend_extension = «/usr/local/ioncube/ioncube_loader_fre_5.2.so»
zend_extension_ts = «/usr/local/ioncube/ioncube_loader_fre_5.2_ts.so»
Перезапускаем апач и проверяем установку командой php -m
должно появится что-то вроде этого:
…
xmlwriter
Zend Optimizer
zlib
[Zend Modules]
Zend Extension Manager
Zend Optimizer
the ionCube PHP Loader
Последняя строчка означает, что всё прошло успешно.
Если апач не запускается, то можно попробовать добавить строчки не в файл /usr/local/etc/php.ini, а в файл /usr/local/etc/php/extensions.ini
Книга Д.Н. Колисниченко FreeBSD 8
Вышла новая книга по FreeBSD 8 от известного автора Колисниченко. Какого-то особого акцента на 8 ветке я не заметил. Информация представленная в книге вполне подойдет и для 6-7-ых веток. Несомненным плюсом книги служат рекомендации по русификации консоли и работе с кириллицей в других местах.
В целом книга мне показалась через чур лаконичной. Особенно по сравнению с книгой Брайана Таймэна»FreeBSD 6. Полное руководство». Огорчило очень поверхностное описание брандмауэра. Тем не менее книга будет полезна тем кто только осваивает FreeBSD, а вот профессионалам она может оказаться бесполезной.
Заказать книгу можно по этой ссылке — Д. Н. Колисниченко
FreeBSD 8. Руководство администратора.
Установка и использование SVN
Задача: установить SVN для разворачивания проектов на Ruby on Rails
Система: FreeBSD 6.3
Subversion version 1.6.2
Вначале понадобится переустановить Apache с поддержкой BDB. Лучше всего сделать так:
cd /usr/ports/www/apache22/
make deinstall clean
make config (выбираем BDB)
make install clean
Устанавливаем саму систему:
cd /usr/ports/devel/subversion
make install clean
Отмечаем пункты MOD_DAV_SVN и BDB.
В /usr/local/etc/apache22/httpd.conf должны появится следующие строчки:
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
Создаем репозиторий
Каталог для репозитория
mkdir -p /home/svn/repos
Каталог для вашего проекта
svnadmin create /home/svn/repos/_project_/
_project_ — заменить на имя вашего проекта (каталога).
Импортируем проект в репозиторий
cd /home/_project_/
svn import ./ file:///home/svn/repos/_project_ —message ‘Initial repository layout’
Установим права веб-сервера
chown -R www:www /home/svn/
Добавить в /usr/local/etc/apache22/httpd.conf
<location /svn>
DAV svn
# разрешает выдавать перечень всех доступных хранилищ в папке SVNParentPath
SVNListParentPath on
SVNParentPath /home/svn/repos
SVNPathAuthz off
# включения базовой аутентификации, т.е. имя_пользователя/пароль
AuthType Basic
AuthName «Subversion repository»
AuthUserFile /home/svn/svn-auth-file
# предписывает, что только пользователям, предоставившим правильные имя_пользователя/пароль,
# будет разрешён доступ к URL
Require valid-user
</location>
Теперь, создадим пользователей для доступа к вашему проекту
htpasswd -cmb /home/svn/svn-auth-file _user_ _password_
и добавляем пользователей, так как ключ “-c” указывает на создание файла
htpasswd -mb /home/svn/svn-auth-file _user_ _password_
Где _user_ и _password_ — имя и пароль соответственно.
Разворачиваем проект в нужной папке:
svn checkout http://_domain_/svn/_project_
Действия в Windows
Выше описанные действия носят общий характер. Теперь посмотрим как нужно действовать при разворачивании реального проекта.
Скачиваем клиент TortoiseSVN — http://tortoisesvn.net/downloads. После установки в контекстном меню появится специальный пункт для работы с SVN.
При первом размещении репозитория действия такие:
1. Создаем репозиторий на сервере FreeBSD
Каталог для репозитория
mkdir -p /home/svn/repos
Каталог для вашего проекта
svnadmin create /home/svn/repos/_project_/
_project_ — заменить на имя вашего проекта (каталога).
Установим права веб-сервера
chown -R www:www /home/svn/
2. Импортируем проект в репозиторий
На windows машине щелкаем ПКМ на папке нужного проекта, выбираем пункт «Import» и вводим URL созданного репозитория и пароль доступа.
3. Извлекаем проект из репозитория в нужный каталог на сервере:
Заходим в папку, где будет размещен проект и извлекаем его
svn checkout http://_domain_/svn/_project_
4. Извлекаем проект на windows машину командой из контекстного меню checkout. Это нужно для нормальной работы с репозиторием. Теперь все изменения нужно вносить только в этой папке.
5. Когда произошли дополнения в проекте на windows машине делаем команду commit и все изменения уходят в репозиторий на сервер. На сервере заходим в каталог проекта и делаем команду svn up. Теперь изменения скачались из репозитория в папку проекта на сервере.