Итак, нам зачем-то потребовалось установить и настроить систему для резервного копирования Bacula. Что ж, начинаем наш нелегкий путь.
БД для Bacula должна создаваться автоматически, но у меня не создалась. На этот случай есть скрипт инициализации БД, который нужно запустить с параметрами:
Ну и ввести пароль от mysql
У меня скрипт сработал, но пользователя не создал, поэтому вручную выполняем sql запрос
Вносим в конфигурационный файл директора bacula-dir.conf реквизиты доступа к БД
Изменяем секцию
Тут все хорошо, bacula установлена, остается только настроить. Поэтому переходим к установке webacula.
Ставим веб-сервер Apache2 и парочку необходимых пакетов
Активируем модуль php5 и mod_rewrite.
Качаем приложение webacula отсюда. Потом создаем рабочий каталог для webacula
Теперь ставим ZendFramework: качаем, распаковываем и складываем в папку /var/www/webacula/library/
Устанавливаем владельца папки webacula
Далее нужно устанавить расширение pdo и pdo_mysql
Для начала ставим pear:
Далее pdo и драйвер pdo_mysql:
Возможные ошибки (у меня были все)
configure: error: Cannot find MySQL header files under
ERROR: `/tmp/tmpRiQ5ax/PDO_MYSQL-1.0.2/configure' failed
Нужно установить пакет libmysqlclient15-dev
make: *** [pdo_dbh.lo] Error 1
ERROR: `make' failed
Нужно в /usr/include/php5/Zend/zend.h в район 320 строки добавить
А в /usr/include/php5/Zend/zend_API.h в район 50 строки
Далее настраиваем подключение webacula к БД bacula
Редактируем config.ini:
Webacula использует утилиту bconsole, соответственно www-data должен иметь возможность ee запуска.
Однако www-data не включен в группу sudo, поэтому в /etc/sudoers пишем
И добавляем www-data в группу bacula, которая создалась при установке
Устанавливаем права на файлы
После этого необходимо создать таблицы для webacula. Как я уже писал выше, с какой-то версии webacula пользуется не своей БД, а той же, что и bacula.
Сперва внесем реквизиты доступа к БД в файл /var/www/webacula/install/db.conf:
Скрипты для создания таблиц лежат в /var/www/webacula/install/MySql
Specified key was too long; max key length is 767 bytes
Происходит из-за того, что в UTF8 один символ занимает не байт, а 3 байта
Лечится это небольшой правкой скрипта
Разумеется, ничего не заработало и еще пришлось поправить /var/www/webacula/html/.htaccess
Строку RewriteBase /webacula заменить на
Вот после этого веб-интерфейс завелся и я не смог насладиться ничем, потому что конкретно задолбался. Поэтому настройку заданий резервирования оставляю на следующий раз.
apt-get update
apt-get install bacula
БД для Bacula должна создаваться автоматически, но у меня не создалась. На этот случай есть скрипт инициализации БД, который нужно запустить с параметрами:
/usr/share/bacula-director/make_mysql_tables -u root -p
Ну и ввести пароль от mysql
У меня скрипт сработал, но пользователя не создал, поэтому вручную выполняем sql запрос
GRANT ALL ON `bacula`.* TO bacula@localhost IDENTIFIED BY 'baculapass';
Вносим в конфигурационный файл директора bacula-dir.conf реквизиты доступа к БД
nano /etc/bacula/bacula-dir.conf
Изменяем секцию
Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword = "baculapass"
}
Тут все хорошо, bacula установлена, остается только настроить. Поэтому переходим к установке webacula.
Ставим веб-сервер Apache2 и парочку необходимых пакетов
apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php5-gd
Активируем модуль php5 и mod_rewrite.
a2enmod php5
a2enmod rewrite
Качаем приложение webacula отсюда. Потом создаем рабочий каталог для webacula
mkdir /var/www/webaculaи копируем в него файлы из скачанного архива.
Теперь ставим ZendFramework: качаем, распаковываем и складываем в папку /var/www/webacula/library/
wget https://packages.zendframework.com/releases/ZendFramework-1.12.3/ZendFramework-1.12.3.tar.gz
tar -vxf ZendFramework-1.12.3.tar.gz
mv ZendFramework-1.12.3/library/Zend/ /var/www/webacula/library/
Устанавливаем владельца папки webacula
chown -R www-data:www-data /var/www/webacula
Далее нужно устанавить расширение pdo и pdo_mysql
Для начала ставим pear:
apt-get install php-pear
Далее pdo и драйвер pdo_mysql:
pecl install pdo
pecl install pdo_mysql
Возможные ошибки (у меня были все)
configure: error: Cannot find MySQL header files under
ERROR: `/tmp/tmpRiQ5ax/PDO_MYSQL-1.0.2/configure' failed
Нужно установить пакет libmysqlclient15-dev
apt-get install libmysqlclient15-dev
make: *** [pdo_dbh.lo] Error 1
ERROR: `make' failed
Нужно в /usr/include/php5/Zend/zend.h в район 320 строки добавить
#define refcount refcount__gc
#define is_ref is_ref__gc
А в /usr/include/php5/Zend/zend_API.h в район 50 строки
#define object_pp object_ptr
Далее настраиваем подключение webacula к БД bacula
Редактируем config.ini:
nano /var/www/webacula/application/config.ini
[general]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = bacula
db.config.password = baculapass
db.config.dbname = baculaЗаодно настраиваем часовой пояс (смотрим тут)
def.timezone = "Asia/Yekaterinburg"И локаль
locale = "ru"
Webacula использует утилиту bconsole, соответственно www-data должен иметь возможность ee запуска.
bacula.sudo = "/usr/bin/sudo"
bacula.bconsole = "/usr/bin/bconsole"
bacula.bconsolecmd = "-n -c /etc/bacula/bconsole.conf"
Однако www-data не включен в группу sudo, поэтому в /etc/sudoers пишем
www-data ALL = NOPASSWD: /usr/bin/bconsole
И добавляем www-data в группу bacula, которая создалась при установке
sudo usermod -aG bacula www-data
Устанавливаем права на файлы
chown root:bacula /usr/sbin/bconsole
chmod u=rwx,g=rx,o= /usr/sbin/bconsole
chown root:bacula /etc/bacula/bconsole.conf
chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
После этого необходимо создать таблицы для webacula. Как я уже писал выше, с какой-то версии webacula пользуется не своей БД, а той же, что и bacula.
Сперва внесем реквизиты доступа к БД в файл /var/www/webacula/install/db.conf:
db_name="bacula"
db_user="bacula"
db_pwd="baculapass"
Скрипты для создания таблиц лежат в /var/www/webacula/install/MySql
./10_make_tables.sh
./20_acl_make_tables.sh
При выполнении второго скрипта при создании таблицы webacula_where_acl у меня возникла ошибка
Specified key was too long; max key length is 767 bytes
Происходит из-за того, что в UTF8 один символ занимает не байт, а 3 байта
Лечится это небольшой правкой скрипта
CREATE TABLE IF NOT EXISTS webacula_where_acl
(
id integer not null auto_increment,
name TEXT CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
order_acl integer,
role_id integer,
PRIMARY KEY (id),
INDEX (id, order_acl),
UNIQUE INDEX (name(256), role_id)
);
Теперь настраиваем apache2. Вот мой конфиг /etc/apache2/sites-enabled/webacula.local
<VirtualHost *:80>
ServerName webacula.local
ServerAdmin youremail@yourdomain.tld
#Во всех мануалах зачем то сделана Basic авторизация.
#Зачем, я не понял и делать не стал, но если кому очень нужно,
#то для virtualhost она делается в <Location>
# <Location />
# AuthType Basic
# AuthName "Webacula"
# AuthUserFile /etc/apache2/webacula.users
# Require valid-user
# </Location>
DocumentRoot /var/www/webacula/html
<Directory />
php_flag magic_quotes_gpc off
php_flag register_globals off
Options Indexes FollowSymLinks
AllowOverride All
Order deny,allow
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/webacula-error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/webacula-access.log combined
</VirtualHost>
После этого добавил в корпоративный DNS домен webacula.local и перезапустил веб-сервер
/etc/init.d/apache2 restart
Разумеется, ничего не заработало и еще пришлось поправить /var/www/webacula/html/.htaccess
Строку RewriteBase /webacula заменить на
RewriteBase /И в /var/www/webacula/html/index.php поменять версию с 12 на 14
define('BACULA_VERSION', 14); // Bacula Catalog version
Вот после этого веб-интерфейс завелся и я не смог насладиться ничем, потому что конкретно задолбался. Поэтому настройку заданий резервирования оставляю на следующий раз.
при выполнении pecl install pdo:
ОтветитьУдалитьsh: 1: make: not found
ERROR: `make' failed
при выполнении pecl install pdo_mysql:
configure: error: Cannot find php_pdo_driver.h.
ERROR: `/tmp/pear/temp/PDO_MYSQL/configure' failed
libmysqlclient15-dev установлен, правка zend.h и zend_API.h не помогает
А такой файл у вас есть? Должен лежать где-то в /usr/include/php5
УдалитьПоискать можно так: find /usr/include/php5 -type f -name "*pdo*" -print
Если файл есть, то вот тут посоны решили проблему http://php.ru/forum/viewtopic.php?t=9556
Проблемка как оказалось решается банально:
Удалитьsudo apt-get install build-essential
А вот с вебом не понятно.
при переходе по адресу машины - пишет It works!
при переходе по адресу http://host/webacula - выдает список каталогов.
Все сделал по мануалу. ошибок не было
Страничка "It works!" - стандартная страница Apache после установки, лежит в /var/www/ . Если вы ее видите, это значит, что apache смотрит не в ту дирректорию, в которую вам нужно.
УдалитьУ меня свой DNS в локалке, все сервисы я вешаю на доменные имена 2го уровня: например http://webacula.local или http://glpi.local Под это мой конфиг и собран.
Если же вам нужно, чтобы сервис был доступен по адресу машины, вам необходимо поменять DocumentRoot в apache2.conf на папку, где у вас лежит приложение (/var/www/webacula/html)
Если нужно, чтобы был доступен по ip/webacula - нужно описывать alias, как это сделано например тут http://ceekay80.blogspot.ru/2010/06/baculawebacula-ubuntu-server.html
Попробовал сделать алиасом:
УдалитьAlias "/webacula" "/var/www/webacula/html"
Так же выдает список каталогов директории webacula. При переходе ручками http://ip-адрес/webacula/html/ - открывается пустая страница..
Увы, я совсем профан в поднятии веба...
Ну, по идее должен быть стандартный конфиг апача. А все, что нужно сделать:
Удалить1. В папку /etc/apache2/conf.d/ положить файл /var/www/webacula/install/apache/webacula.conf
2. Поправить в этом файле пути. По умолчанию они /usr/share/webacula/html а нужно /var/www/webacula/html (все остальные по аналогии)
3. Проверить, чтобы в /etc/apache2/apache2.conf была строчка Include conf.d/ (обычно она в конце)
4. Перезапустить веб-сервер.
Вся движуха с VirtualHost, описанная у меня - не нужна. Папочка /etc/apache2/sites-enabled/ пустая должна быть
Спасибо, на этом этапе помогло. Мелкие ошибки решил сам, веб завелся. но... При попытке авторизоваться:
Удалить"Имя или пароль неверны"
Я правильно понимаю, что для доступа к вебу мы используем пользователя bacula его пароль? или есть какой-то нюанс?
Нет, имя пользователя "root" а пароль вы задается в файле
Удалить/var/www/webacula/install/db.conf
в секции
# CHANGE_THIS
webacula_root_pwd=""
Спасибо огромное! Все здорово!
УдалитьДобрался до момента создания баз webacula. db.conf поправил как в примере, но /var/www/webacula/install/MySql/10_make_tables.sh: 6: .: Can't open ../db.conf. Права 755, пользователь www-data. Что я делаю неправильно?
ОтветитьУдалитьОни (скрипт и конфигурационный файл) точно в одной папке лежат? Если да, то еще может быть дело в том, что в скрипте указаны относительные пути, можно попробовать запустить не /var/www/webacula/install/MySql/10_make_tables.sh
Удалитьа
cd /var/www/webacula/install/MySql/
./10_make_tables.sh
Да, проблема была в относительности путей. Благодарю.
Удалитьroot@backup1:/var/www/webacula/install/MySql# cd /var/www/webacula/install/MySql/
ОтветитьУдалитьroot@backup1:/var/www/webacula/install/MySql# ./10_make_tables.sh
-bash: ./10_make_tables.sh: Отказано в доступе
как быть7
Поставь права доступа на оба скрипта для www-data
Удалить