phpipam - это веб-приложение для управления IP-адресами с открытым исходным кодом (IPAM). Его цель - обеспечить легкое, управление IP-адресами. Это приложение на базе php с серверной частью базы данных MySQL, использующее библиотеки jQuery, ajax и функции HTML5 /CSS3.
Официальный сайт: https://phpipam.net/
Установим СУБД:
sudo apt update
sudo apt install mariadb-server mariadb-client
Запустим и активируем автозапуск службы:
sudo systemctl enable mariadb
sudo systemctl start mariadb
Теперь, обезопасим СУБД и зададим root-пароль всетроенным скриптом:
sudo mysql_secure_installation
Закончив настройку создадим базу данных и пользователя в ней:
$ sudo mysql -u root -p
CREATE DATABASE phpipam;
GRANT ALL ON phpipam.* TO phpipam@localhost IDENTIFIED BY 'StrongDBPassword';
FLUSH PRIVILEGES;
QUIT;
Следующим шагом будет установка необходимых php-модулей:
sudo apt update
sudo apt -y install php php-{mysql,curl,gd,intl,pear,imap,memcache,pspell,tidy,xmlrpc,mbstring,gmp,json,xml,fpm}
Если на сервере отсутствует git - исправим это:
sudo apt -y install git
Теперь, скопируем само приложение и перейдем в его директорию:
sudo git clone --recursive https://github.com/phpipam/phpipam.git /var/www/html/phpipam
cd /var/www/html/phpipam
Зададим новое имя основному файлу конфигурации:
sudo cp config.dist.php config.php
Внесем изменения в соответствии с нашими учетными данными:
$ sudo nano config.php
/**
* database connection details
******************************/
$db['host'] = 'localhost';
$db['user'] = 'phpipam';
$db['pass'] = 'StrongDBPassword';
$db['name'] = 'phpipam';
$db['port'] = 3306;
Теперь, установим и настоим веб-сервер:
sudo apt -y install nginx
sudo nano /etc/nginx/conf.d/phpipam.conf
Добавим содержимое:
server {
listen 80;
# root directory
server_name ipam.example.com www.ipam.example.com;
index index.php;
root /var/www/html/phpipam;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
Добавим права и перезапустим веб сервер.
sudo chown -R www-data:www-data /var/www/html
sudo systemctl restart nginx
Если NGINX не стартует, возможно у Вас работает Apache2? =)
Так как мы уже создали БД и пользователя, на первой страничке phpIPAM выбираем вариант «mysql import» и импортируем схему:
sudo mysql -u root -p phpipam < /var/www/html/phpipam/db/SCHEMA.sql
Логин\Пароль по умолчанию:
Username: admin
Password: ipamadmin
Для запуска в Docker можно использовать несколько вариантов.
Все внутри контейнера:
# WARNING: Replace the example passwords with secure secrets.
# WARNING: 'my_secret_phpipam_pass' and 'my_secret_mysql_root_pass'
version: '3'
services:
phpipam-web:
image: phpipam/phpipam-www:latest
ports:
- "80:80"
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- IPAM_DATABASE_WEBHOST=%
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
- phpipam-ca:/usr/local/share/ca-certificates:ro
depends_on:
- phpipam-mariadb
phpipam-cron:
image: phpipam/phpipam-cron:latest
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- SCAN_INTERVAL=1h
restart: unless-stopped
volumes:
- phpipam-ca:/usr/local/share/ca-certificates:ro
depends_on:
- phpipam-mariadb
phpipam-mariadb:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
restart: unless-stopped
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
phpipam-logo:
phpipam-ca:
Конфигурация с внешней базой данных:
version: '3'
services:
phpipam-web:
image: phpipam/phpipam-www:latest
ports:
- "80:80"
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=my.database.server
- IPAM_DATABASE_USER=existing_username
- IPAM_DATABASE_PASS=existing_password
- IPAM_DATABASE_NAME=existing_db_name
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
- phpipam-ca:/usr/local/share/ca-certificates:ro
phpipam-cron:
image: phpipam/phpipam-cron:latest
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=my.database.server
- IPAM_DATABASE_USER=existing_username
- IPAM_DATABASE_PASS=existing_password
- IPAM_DATABASE_NAME=existing_db_name
- SCAN_INTERVAL=1h
restart: unless-stopped
volumes:
- phpipam-ca:/usr/local/share/ca-certificates:ro
volumes:
phpipam-logo:
phpipam-ca: