如何在Ubuntu14.04上安装Bacula-Web

来自菜鸟教程
跳转至:导航、​搜索

介绍

Bacula-Web 是一个 PHP Web 应用程序,它提供了一种简单的方法来查看已运行的 Bacula 备份作业的摘要和图表。 尽管它不允许您以任何方式控制 Bacula,但 Bacula-Web 提供了从控制台查看作业的图形替代方法。 Bacula-Web 对于刚接触 Bacula 的用户特别有用,因为它的报告可以很容易地理解 Bacula 的操作。

在本教程中,我们将向您展示如何在运行 Bacula 服务器软件的 Ubuntu 14.04 服务器上安装 Bacula-Web。

先决条件

要学习本教程,您必须在 Ubuntu 服务器上安装 Bacula 备份服务器软件。 可以在此处找到安装 Bacula 的说明:如何在 Ubuntu 14.04 上安装 Bacula 服务器。

本教程假设您的 Bacula 设置使用 MySQL 作为目录。 如果您使用不同的 RDBMS,例如 PostgreSQL,请务必对本教程进行适当的调整。 您将需要安装适当的 PHP 模块并对数据库连接信息示例进行调整。

让我们开始吧。

安装 Nginx 和 PHP

Bacula-Web 是一个 PHP 应用程序,因此我们需要安装 PHP 和一个 Web 服务器。 我们将使用 Nginx。 如果您想了解有关此特定软件设置的更多信息,请查看此 LEMP 教程

更新您的 apt-get 列表:

sudo apt-get update

然后,使用 apt-get 安装 Nginx、PHP-fpm 和其他一些软件包:

sudo apt-get install nginx apache2-utils php5-fpm php5-mysql php5-gd

现在我们准备好配置 PHP 和 Nginx。

配置 PHP-FPM

在您喜欢的文本编辑器中打开 PHP-FPM 配置文件。 我们将使用 vi:

sudo vi /etc/php5/fpm/php.ini

找到指定 cgi.fix_pathinfo 的行,取消注释,并将其值替换为 0。 完成后它应该看起来像这样。

cgi.fix_pathinfo=0

现在找到 date.timezone 设置,取消注释,并将其值替换为您的时区。 我们在纽约,所以我们将值设置为:

date.timezone = America/New_York

如果您需要支持的时区列表,请查看 PHP 文档

保存并退出。

PHP-FPM 配置正确,所以让我们重新启动它以使更改生效:

sudo service php5-fpm restart

配置 Nginx

现在是时候配置 Nginx 来服务 PHP 应用程序了。

首先,因为我们不希望未经授权的人访问 Bacula-Web,所以让我们创建一个 htpasswd 文件。 使用 htpasswd 创建一个管理员用户,称为“admin”(您应该使用另一个名称),它可以访问 Bacula-Web 界面:

sudo htpasswd -c /etc/nginx/htpasswd.users admin

在提示符处输入密码。 请记住此登录名,因为您将需要它来访问 Bacula-Web。

现在在文本编辑器中打开 Nginx 默认服务器块配置文件。 我们将使用 vi:

sudo vi /etc/nginx/sites-available/default

用以下代码块替换文件的内容。 请务必将 server_name 的突出显示值替换为您的服务器的域名或 IP 地址:

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;
    
    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 配置为服务 PHP 应用程序,并使用我们之前创建的 htpasswd 文件进行身份验证。

要使更改生效,请重新启动 Nginx。

sudo service nginx restart

现在我们准备好下载 Bacula-Web。

下载和配置 Bacula-Web

切换到您的主目录,并下载最新的 Bacula-Web 存档。 在撰写本文时,7.0.3 是最新版本:

cd ~
wget --content-disposition http://www.bacula-web.org/download.html?file=files/bacula-web.org/downloads/bacula-web-7.0.3.tgz

现在创建一个新目录,bacula-web,切换到它,然后提取 Bacula-Web 存档:

mkdir bacula-web
cd bacula-web
tar xvf ../bacula-web-*.tgz

在将文件复制到我们的 Web 服务器的文档根目录之前,我们应该首先对其进行配置。

像这样切换到配置目录:

cd application/config

Bacula-Web 提供了一个示例配置。 像这样复制它:

cp config.php.sample config.php

现在在文本编辑器中编辑配置文件。 我们将使用 vi:

vi config.php

找到 // MySQL bacula catalog,并取消注释连接详细信息。 此外,将 password 值替换为您的 Bacula 数据库密码(可以在“dbpassword”设置的 /etc/bacula/bacula-dir.conf 中找到):

// MySQL bacula catalog
$config[0]['label'] = 'Backup Server';
$config[0]['host'] = 'localhost';
$config[0]['login'] = 'bacula';
$config[0]['password'] = 'bacula-db-pass';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'mysql';
$config[0]['db_port'] = '3306';

保存并退出。

Bacula-Web 现在已配置。 最后一步是将应用程序文件放在适当的位置。

将 Bacula-Web 应用程序复制到文档根目录

我们将 Nginx 配置为使用 /usr/share/nginx/html 作为文档根目录。 更改为它,并使用以下命令删除默认的 index.html

cd /usr/share/nginx/html
sudo rm index.html

现在,将 Bacula-Web 文件移动到您当前的位置,即 Nginx 文档根目录:

sudo mv ~/bacula-web/* .

将文件的所有权更改为 www-data,即运行 Nginx 的守护程序用户:

sudo chown -R www-data: *

现在 Bacula-Web 已完全安装。

通过浏览器访问 Bacula-Web

Bacula-Web 现在可以在您的服务器的域名或公共 IP 地址上访问。

您可能想要测试所有配置是否正确。 幸运的是,提供了 Bacula-Web 测试页面。 通过在 Web 浏览器中打开此 URL 来访问它(用您的服务器信息替换突出显示的部分):

http://server_public_IP/test.php

您应该会看到一个表格,其中显示了 Bacula-Web 各个组件的状态。 除了您不需要的数据库模块之外,它们都应该具有绿色复选标记状态。 例如,我们使用 MySQL,所以我们不需要其他数据库模块:

如果一切看起来都不错,您就可以使用仪表板了。 您可以通过单击左上角的“Bacula-Web”文本或在 Web 浏览器中访问您的服务器来访问它:

http://server_public_IP/

它应该看起来像这样:

结论

现在您已准备好使用 Bacula-Web 轻松监控您的各种 Bacula 作业和状态。

玩得开心!