如何在Ubuntu16.04上安装phpIPAM
介绍
随着您的基础架构的增长,您使用的 IP 地址数量也可能会增加很多,以至于您将不再能够仅仅依靠您的内存来管理它们。 那时,您将需要一个工具来帮助您跟踪事物。
虽然电子表格和纯文本文件是您可以快速实施的低技术解决方案,但在处理大型 IP 地址池或尝试跟踪每个地址周围的多个数据点时,它们也可能过于繁琐。
phpIPAM 是一款用于 IP 地址管理的专用工具,它提供自动 ping 扫描、状态报告(让您查看哪些主机已启动、哪些主机已关闭)、电子邮件通知,从而超越了低技术选项更改您正在监视的主机,以及使管理基础架构更加容易的其他功能。
在本指南中,您将在 Ubuntu 16.04 上运行的 Linux、Apache、MySQL 和 PHP (LAMP) 堆栈上安装和配置 phpIPAM。
先决条件
在开始之前,您需要:
- 按照Ubuntu 16.04初始服务器设置教程设置一台Ubuntu 16.04服务器,包括sudo非root用户和防火墙。
- 完全注册的域名。 本教程始终使用
example.com
。 您可以在 Namecheap 上购买一个域名,在 Freenom 上免费获得一个域名,或者使用您选择的域名注册商。 - 为您的服务器设置了以下 DNS 记录。 您可以关注 this hostname tutorial 了解如何添加它们的详细信息。 带有 example.com 的 A 记录指向您的服务器的公共 IP 地址。 www.example.com 的 A 记录指向您服务器的公共 IP 地址。
- 按照此 Linux、Apache、MySQL、PHP 安装指南 设置的 LAMP 堆栈。
- 按照此 Apache 虚拟主机指南 为您的域配置的 Apache 虚拟主机。
- A Let's Encrypt 为按照 本教程安装的域的 SSL 证书,以使用 TLS/SSL 证书 保护您的 Apache 安装。
第 1 步 — 配置 Apache
默认情况下,phpIPAM 在其 URL 结构中依赖 查询字符串 将数据从应用程序的一部分传递到另一部分。 查询字符串附加到带有 ?
的 URL 并包含一个或多个由 &
分隔的字段值对。
虽然安装不是绝对必需的,但 phpIPAM 通过 Apache 的 mod_rewrite
模块支持 URL-rewriting,它将查询字符串转换为更易读和更人性化的 URL。
如果您尚未在 中启用 mod_rewrite
,通过将所有 HTTP 请求重定向到 HTTPS,使用 TLS/SSL 证书 先决条件保护您的 Apache 安装,请立即使用 Apache 的 a2enmod
实用程序启用 mod_rewrite
以便您可以在步骤 2 中打开 URL 重写。
sudo a2enmod rewrite
此命令在 /etc/apache2/mods-enabled/rewrite/
中创建到 /etc/apache2/mods-available/rewrite.load
的符号链接,这将在 Apache 下一次启动时启用该模块。
如果 mod_rewrite
已经启用,输出将显示:
Output of sudo a2enmod rewriteModule rewrite already enabled
否则,输出将告诉您符号链接已创建,您需要重新启动 Apache 以激活更改。
Output of sudo a2enmod rewriteEnabling module rewrite. To activate the new configuration, you need to run: service apache2 restart
即使 Apache 现在将在您下次启动 Web 服务器时启用 mod_rewrite
,您仍然需要修改 phpIPAM 虚拟主机配置以使 mod_rewrite
可用于 phpIPAM。 所以,暂时不要重启 Apache。
相反,在先决条件中打开您为 phpIPAM 创建的 Apache 配置文件。
sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
将以下行粘贴到 DocumentRoot
部分下方的配置文件中。
phpipam.conf
... <Directory /var/www/example.com/public_html Options FollowSymLinks AllowOverride all Require all granted </Directory> ...
Directory
是服务器上将应用指令的位置。 这应该是您计划安装 phpIPAM 的目录。 如果您遵循先决条件中的 Apache 虚拟主机指南 ,则为/var/www/example.com/public_html
。Options FollowSymLinks
告诉 Apache 遵循这个目录中的符号链接。 这是默认设置。AllowOverride all
表示此目录中的.htaccess
文件中的任何指令都应覆盖任何相应的全局指令。Require all granted
告诉 Apache 允许来自所有主机的传入请求。
保存并关闭文件以继续。
现在,在重新启动 Apache 之前测试配置更改。
sudo apache2ctl configtest
如果输出显示 Syntax OK
,您就可以继续前进了。 否则,请查看前面的说明并按照屏幕上的消息了解更多信息。
最后,重新启动 Apache 以启用 mod_rewrite
并激活新配置。
sudo systemctl restart apache2
因为您还没有安装 phpIPAM,所以在 https://example.com
上没有什么可看的。 所以,让我们现在下载并安装 phpIPAM。
第 2 步 — 安装 phpIPAM
官方安装说明建议了两种安装phpIPAM的方法:从项目的SourceForge存储库下载tarball或从GitHub存储库克隆项目。 为了使以后的更新更容易,让我们使用后一种方法。
默认情况下,如果该目录为空,Git 只会克隆到现有目录。 因此,使用 ls
命令查看您在步骤 1 中为 Apache 配置的目录的内容。
ls /var/www/example.com/public_html
如果目录不为空,现在使用基本的Linux导航和文件管理命令将其清除。 mv
将内容移动到不同的位置,rm
将它们完全删除。
现在,将 Git 项目克隆到目录中。
git clone https://github.com/phpipam/phpipam.git /var/www/example.com/public_html
输出确认您要克隆到的位置,然后提供该过程的实时报告,包括 Git 预期复制的对象的计数以及它实际复制的数量。
Output of git cloneCloning into /var/www/example.com/public_html ... remote: Counting objects: 14234, done. remote: Compressing objects: 100% (50/50), done. remote: Total 14234 (delta 27), reused 40 (delta 17), pack-reused 14161 Receiving objects: 100% (14234/14234), 11.38 MiB | 21.30 MiB/s, done. Resolving deltas: 100% (10066/10066), done. Checking connectivity... done.
您现在在服务器上拥有完整的 phpIPAM 应用程序,但您仍然缺少一些 phpIPAM 运行所需的 PHP 模块。 用 apt-get
安装它们。
这些附加包为 PHP 提供了 GNU 多精度模块 用于处理任意长度的整数,多字节字符串模块 用于处理不能用 256 个字符表示的语言,[ X237X]PEAR 框架 用于可重用的 PHP 组件,GD 模块 用于图像处理。
sudo apt-get install php7.0-gmp php7.0-mbstring php-pear php7.0-gd
重新启动 Apache 以使其可以使用新模块。
sudo systemctl restart apache2
有了服务器上的应用程序文件和附加模块,您就可以配置 phpIPAM。
第 3 步 — 配置 phpIPAM
phpIPAM 在名为 config.php
的文件中查找其主要配置设置。 虽然默认情况下此文件不存在,但该应用程序确实带有一个示例配置文件可供使用。
切换到安装目录并复制示例配置文件以供以后遇到问题时参考。
cd /var/www/example.com/public_html cp config.dist.php config.php
打开新文件进行编辑。
nano config.php
查找标有 * database connection details
的部分。 这些设置告诉 phpIPAM 如何连接到保存所有数据的 MySQL 数据库。
因为您已将 MySQL 与 phpIPAM 安装在同一台机器上,所以您可以将 $db['host']
值设置为 localhost
。 而且因为 MySQL 默认监听端口 3306
,所以你不需要更改 $db['port']
的值。
目前还没有为 phpIPAM 设置 MySQL 数据库,但在第 4 步中,phpIPAM 的基于 Web 的安装实用程序将使用您在此文件中输入的值创建一个数据库和数据库用户。 因此,将 $db['user']
值设置为您希望 phpIPAM 连接到 MySQL 的用户名,将 $db['pass']
值设置为您希望 phpIPAM 在连接到 MySQL 时使用的密码,然后设置$db['name']
为您要赋予 MySQL 数据库的名称。
phpIPAM 的 config.php
<?php /** * database connection details ******************************/ $db['host'] = 'localhost'; $db['user'] = 'database_user'; $db['pass'] = 'database_password'; $db['name'] = 'database_name'; $db['port'] = 3306; ...
警告: 如果您在先决条件中安装 MySQL 时运行了 mysql_secure_installation
脚本,请务必在此处创建满足当前策略要求的密码。 不这样做将导致在步骤 4 中创建数据库时出错。
除了之前的设置,此文件中还有许多其他选项可供您使用。 例如,您可以使用 SSL 证书配置与数据库的安全连接,可以为各种数据库事件激活电子邮件通知,还可以启用调试模式以生成更详细的日志。 但是,对于基本安装,您可以将这些设置的其余部分设置为默认值。
完成编辑后,保存并关闭文件。
现在您已经为 phpIPAM 创建了主配置文件,是时候连接到 Web 界面并完成安装了。
第 4 步 — 创建数据库和数据库用户
安装过程的最后一步包括为 phpIPAM 创建 MySQL 数据库和用户,并为 phpIPAM 的 Web 界面设置管理员用户帐户。 所有这些都可以通过 phpIPAM 的基于 Web 的安装向导来完成。
将浏览器导航到 https://example.com/install
。 您将看到 phpIPAM 安装主页欢迎您使用向导并要求您选择要执行的安装类型。 如果您无法打开此屏幕,请确认您的防火墙没有阻止对端口 80
的访问,然后重新执行之前的步骤来解决问题。
这个屏幕上有三个选项——新的phpipam安装、迁移phpipam安装和工作安装——每个都有其用途的简短描述。 当您设置新的 phpIPAM 安装时,按下标记为 New phpipam installation 的按钮。
在下一个屏幕上,向导描述了安装过程的其余部分,将您指向 官方安装文档 以获取更多详细信息,并要求您决定要执行哪种类型的数据库安装。
同样,您有三个选择:
- 自动数据库安装:向导将使用您在步骤3中输入的信息
config.php
创建一个MySQL数据库和用户。 - MySQL 导入说明:您将使用 MySQL 自己的 mysqlimport 实用程序 从您提供的明文文件创建数据库。
- 手动数据库安装:向导将为您提供手动创建新 phpIPAM 数据库所需的默认 SQL 命令。
为简单起见,单击自动数据库安装按钮选择全自动选项。
向导现在将要求您提供连接到 MySQL 所需的信息。 这包括它应该连接的用户的登录凭据、数据库的位置和数据库的名称。
由于您需要向导来创建新的数据库和用户,因此您必须输入具有足够权限的用户的登录凭据。 您的 MySQL root 用户是一个不错的选择。
默认情况下,数据库的位置设置为 localhost,其名称设置为 phpipam。 如果您想更改其中任何一个,您需要编辑您在步骤 3 中创建的 config.php
文件,然后重新启动安装向导。
您可以通过单击 显示高级选项 按钮访问其他安装选项。 在这里,您将获得另外三个选择:
- 删除现有数据库 在运行安装程序之前,向导将尝试删除与 MySQL 数据库名称 字段中的值同名的数据库。 这是默认关闭的。
- 创建数据库 向导将尝试创建一个与 MySQL 数据库名称 字段中的值同名的数据库。 这是默认开启的。
- 创建权限 向导将尝试在新数据库上设置权限,将访问权限限制为仅在
config.php
中定义的 MySQL 用户。 这是默认开启的。
输入您希望向导连接的 MySQL 用户的用户名和密码,将高级选项设置为其默认值,然后按 Install phpipam database 按钮。
您将看到一条确认消息,告诉您向导已成功安装数据库。 如果不这样做,请查看向导的错误消息以获取更多帮助。
单击 继续 继续安装。
在此屏幕上,向导会提示您设置 Web 界面的管理员用户密码、显示在每个 phpIPAM Web 界面屏幕顶部的标题以及 phpIPAM 安装的 URL。
输入您要使用的管理员密码、phpIPAM 界面的描述性标题以及指向您的 phpIPAM 安装的完全限定域名,然后按 保存设置 按钮。
您现在应该会看到一条确认消息,告诉您设置已成功保存。 如果不这样做,请使用向导的错误消息来诊断问题。
单击 Proceed to login 按钮转到您的 phpIPAM 安装主页,并使用您在 Admin password 字段中输入的 admin 用户名和密码登录。
phpIPAM 安装和配置现已完成,因此您可以开始添加信息以更轻松地管理您监控的网络。
结论
在本文中,您安装并配置了开源 IP 地址管理 Web 应用程序 phpIPAM。 您现在可以监控您自己的基础设施和其他网络中的 IP 地址使用情况。
此外,您可以使用 phpIPAM 跟踪您的 VLAN 并将它们映射到您的子网,保留包括设备类型和位置等信息的网络设备清单,并配置电子邮件通知以提醒您网络上的变化。
要使 phpIPAM 以编程方式自动化并与您自己编写的应用程序集成,请参阅 关于 phipIPAM 内置 API 的官方文档。 要使用 API 更快地启动和运行,请浏览 官方介绍教程 。
最后,请务必针对您正在管理的公共基础设施或您自己的本地基础设施调查 自动扫描设置 。 作为系统管理员或 devops 工程师,主机扫描自动化可能会为您提供最大的好处。