NO IMAGE

一.Bacula介紹
Bacula是一款開源的跨平臺網路備份工具,提供基於企業級的CS的備份解決方案。可以對資料進行備份、恢復、以及完整性校驗。一個完整的bacula備份系統,由下面5個部分組成
Director Daemon:負責監聽所有的備份、恢復、驗證、存檔事務,以及定製備份和恢復檔案計劃等,並將整個系統執行狀況記錄在一個資料庫檔案中。其配置檔案為bacula-dir.conf。
Storage Daemon(SD):主要負責將資料備份到儲存介質上,而在資料恢復時,負責將資料從儲存介質中傳送出去。其配置檔案為bacula-sd.conf。
File Daemon(FD):安裝在需要備份資料的機器上的守護程序,在備份資料時,它負責把檔案傳出,在恢復資料時負責接收資料並執行恢復操作。配置檔案為bacula-fd.conf。
Console:管理控制檯。可以通過這個控制檯連線到Director Daemon進行管理備份與恢復操作。
Monitor:程序監控端。
二.前置條件
基於ubuntu16.04安裝

三.安裝部署
獲取bacula安裝包 bacula-9.0.4.tar.gz
解壓安裝:

tar xvf bacula-9.0.4.tar.gz
cd bacula-9.0.4.tar.gz
獲取qt4 並將qt4原始碼目錄移至bacula主目錄下
cp -r depkgs-qt /root/bacula/

安裝編譯依賴檔案:

apt install libx11-dev mysql mysql-server libmysql  -dev libattr1 libattr1-dev libacl1 libacl1-dev  libauthen-pam-perl apt-show-versions lua-dbi-mysql lua-dbi-mysql-dev libdbd libdbd-dev

繼續編譯:

cd depkgs;
./configure-qt4 qt-everywhere-
./build-qt4 qt-everywhere
source qt4-path

安裝完qt,接下來安裝編譯bacula

 CFLAGS="-g -Wall";export CFLAGS;./configure --sbindir=/opt/bacula/bin --sysconfdir=/opt/bacula/bin --mandir=/opt/bacula/bin --enable-smartalloc  --enable-bat --with-pid-dir=/opt/bacula/bin/working --with-subsys-dir=/opt/bacula/bin/working --with-mysql  --with-working-dir=/opt/bacula/bin/working
make && make install

安裝完bacula,接著安裝webmin和bacula-web。
安裝web-min
到對應網址下載:[https://sourceforge.net/projects/webadmin/files/webmin/]

dpkg -i webmin-*

開啟瀏覽器:輸入 IP:10000即可訪問。

安裝bacula-web

Install Apache and PHP

With MySQL support
$ sudo apt-get install nginx apache2-utils php5-fpm php5-mysql php5-gd composer
With postgreSQL support
$ sudo apt-get install apache2 libapache2-mod-php5 php5-pgsql
With SQLite support
$ sudo apt-get install apache2 libapache2-mod-php5 php5-sqlite

配置php

vi /etc/php5/fpm/php.ini
cgi.fix_pathinfo=0
date.timezone = America/New_York

重啟php5-fpm:/etc/init.d/php-fpm restart

配置nginx

htpasswd -c /etc/nginx/htpasswd.users admin
修改/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
**server_name server_domain_name_or_IP**;替換成對應IP地址
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(. \.php)(/. )$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

重啟nginx : /etc/init.d/nginx restart

下載bacula-web

 cd /work
curl -O http://www.bacula-web.org/files/bacula-web.org/downloads/bacula-web-latest.tgz
mkdir bacula-web
cd bacula-web
tar xvf ../bacula-web-*.tgz

配置bacula-web後臺

cd application/config/
cp config.php.sample config.php
vi config.php
$config[0]['label'] = 'Backup Server';
$config[0]['host'] = 'localhost';
$config[0]['login'] = 'root';
$config[0]['password'] = 'bacula-db-pass';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'mysql';
$config[0]['db_port'] = '3306';

配置nginx && bacula-web

cd /usr/share/nginx/html
rm -f index.html
mv /work/bacula-web/* ./
chown -R www-data: *

至此,bacula-web安裝配置完成。
bacula-web安裝完成後,使用web登入過程中可能會遇到以下問題:

問題1:

require_once(): Failed opening required 'vendor/autoload.php' 
解決辦法:cd /usr/share/nginx/html/
apt install composer
composer install

問題2:

connect() to unix:/var/run/php5-fpm.sock failed
解決辦法:apt install php5-fpm
/etc/init.d/php5 restart