如何在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 作业和状态。
玩得开心!