Установка InvoicePlane на CentOS 7
Коротко о том, что такое InvoicePlane
InvoicePlane — бесплатное и открытое приложение для выставления счётов. Код проекта доступен на GitHub. Это руководство описывает установку на чистую CentOS 7 с Nginx, PHP-FPM и MariaDB.
Важные термины
- PHP-FPM: менеджер процессов PHP для работы с веб-серверами.
- Nginx: веб-сервер и обратный прокси.
- MariaDB: совместимая с MySQL система управления базами данных.
Требования
- Веб-сервер: Nginx (в руководстве используется Nginx). Apache — альтернативный вариант.
- MariaDB или MySQL версии 5.5 и выше.
- PHP 7.0 или выше с установленными расширениями:
- php-gd
- php-hash
- php-json
- php-mbstring
- php-mcrypt
- php-mysqli
- php-openssl
- php-recode
- php-xmlrpc
- php-zlib
Необходимые условия перед началом
- Сервер с CentOS 7.
- Непользователь root с правами sudo.
Начальные шаги
Проверьте версию CentOS:
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)Настройте временную зону (пример: Europe/Moscow или нужный вам регион):
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите пакеты ОС:
sudo yum update -yУстановите базовые утилиты:
sudo yum install -y vim wget curl git bash-completion unzipШаг 1 — Установка PHP и расширений
InvoicePlane требует PHP 7.0+. В стандартных репозиториях CentOS 7 обычно старые версии PHP, поэтому используем сторонний репозиторий Webtatic для установки PHP 7.2.
Добавьте репозиторий Webtatic:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmУстановите PHP и нужные расширения:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-gd php72w-json php72w-mbstring php72w-mcrypt php72w-mysql php72w-xmlrpc php72w-recodeПроверьте версию PHP:
php --version
# PHP 7.2.12 (cli) (built: Nov 11 2018 14:54:16) ( NTS )Запустите и включите автозапуск PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceВажно: при смене пользователя в настройках PHP-FPM убедитесь, что совпадают права с пользователем веб-сервера (далее в разделе установки).
Шаг 2 — Установка MariaDB
Установите сервер баз данных MariaDB:
sudo yum install -y mariadb-serverПроверьте версию:
mysql --version
# mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1Запустите и включите автозапуск:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.serviceЗапустите скрипт безопасной настройки MariaDB и установите пароль root:
sudo mysql_secure_installationОбычно отвечайте утилите так, чтобы удалить анонимных пользователей, запретить удалённый вход для root и удалить тестовую базу:
Enter current password for root (enter for none):
Set root password? [Y/n]: Y
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: YВойдите в MariaDB и создайте базу и пользователя для InvoicePlane:
mysql -u root -p
# Введите пароль
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quitЗапомните имя базы, юзера и пароль — они нужны при веб-инсталляции.
Шаг 3 — Установка Nginx
Установите Nginx:
sudo yum install -y nginxПроверьте версию:
nginx -v
# nginx version: nginx/1.12.2Запустите и включите автозапуск:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceСоздайте конфигурацию для InvoicePlane: откройте /etc/nginx/conf.d/invoiceplane.conf и вставьте:
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/invoiceplane;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_index index.php;
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}Проверьте конфигурацию и перезагрузите Nginx:
sudo nginx -t
sudo systemctl reload nginx.serviceПримечание: при использовании unix-сокета fastcgi_pass может быть типа unix:/run/php-fpm/www.sock — проверьте настройки php-fpm и согласуйте путь.
Шаг 4 — Установка InvoicePlane
Скачайте последнюю стабильную версию и распакуйте в /var/www:
sudo mkdir -p /var/www
cd /var/www
sudo curl -O -J -L https://invoiceplane.com/download/v1.5.9
sudo unzip v1.5.9.zip
sudo rm v1.5.9.zip
sudo mv ip invoiceplaneПерейдите в каталог приложения:
cd /var/www/invoiceplaneСоздайте файл конфигурации на основе примера:
sudo cp ipconfig.php.example ipconfig.phpОткройте ipconfig.php и укажите URL вашего сайта:
sudo vim ipconfig.php
# Пример
IP_URL=http://example.comИзмените владельца каталога на пользователя веб-сервера nginx:
sudo chown -R nginx:nginx /var/www/invoiceplaneОтредактируйте файл /etc/php-fpm.d/www.conf и смените пользователя и группу на nginx (вместо apache):
# в /etc/php-fpm.d/www.conf
user = nginx
group = nginxУстановите временную зону в /etc/php.ini:
date.timezone = Region/CityПерезапустите PHP-FPM чтобы изменения вступили в силу:
sudo systemctl restart php-fpm.serviceЗапустите веб-инсталлятор в браузере:
http://example.com/index.php/setupСледуйте шагам мастера: укажите данные базы, создайте администратора и завершите установку. После успешной установки рекомендуется отключить веб-установщик, установив в ipconfig.php:
DISABLE_SETUP=trueШаг 5 — Завершение установки и первые шаги
Откройте в браузере http://example.com — вы попадёте на веб-инсталлятор. Пройдите пункты: выбор языка, проверка требований, настройка базы данных, создание пользователя, финализация. После окончания нажмите “Login” и войдите под созданным администратором.








Дополнительные рекомендации по эксплуатации и безопасности
- Отключите веб-инсталлятор: DISABLE_SETUP=true в ipconfig.php.
- Ограничьте доступ к панели администратора по IP или настройте двухфакторную аутентификацию сторонними средствами.
- Делайте регулярное резервное копирование базы данных и каталога приложений (например, cron + mysqldump).
- Обновляйте систему и пакеты PHP/MariaDB/Nginx, отслеживайте CVE для используемых компонентов.
- Настройте SSL/TLS (Let’s Encrypt) и перенаправление HTTP на HTTPS.
Когда эта инструкция может не подойти
- Вы используете CentOS Stream или другую версию RHEL — пакеты и репозитории могут отличаться.
- Вы предпочитаете Apache вместо Nginx — конфигурация виртуального хоста будет другой.
- Вам нужна кластерная или высокодоступная архитектура — здесь описана базовая одиночная инсталляция.
Альтернативные подходы
- Установка через Apache + mod_php или PHP-FPM под сокетом unix:/run/php-fpm/www.sock.
- Развертывание в контейнерах (Docker): полезно для изоляции и упрощённого обновления.
- Использование управляемого хостинга с поддержкой PHP 7.x и MySQL/MariaDB.
Быстрый чеклист по ролям
Администратор сервера:
- Обновить ОС, установить зависимости, настроить репозитории.
- Настроить брандмауэр и SSL.
Разработчик/DevOps:
- Автоматизировать развертывание (Ansible, Terraform).
- Настроить мониторинг и бэкапы.
Оператор/Бухгалтер:
- Настроить шаблоны счётов, налоговые настройки и валюты.
- Проверить корректность налоговых правил и шаблонов печати.
Критерии приёмки
- Веб-инсталлятор проходит проверку предварительных условий.
- Приложение загружается по HTTPS без ошибок.
- Администратор может войти и создать/просмотреть счёт.
- Резервное копирование и права доступа настроены.
Краткая методология развертывания (mini SOP)
- Подготовить сервер: обновление, базовые утилиты.
- Установить PHP и расширения, настроить PHP-FPM.
- Установить и обезопасить MariaDB, создать базу и пользователя.
- Установить Nginx и настроить виртуальный хост.
- Развернуть файлы InvoicePlane, настроить права и ipconfig.php.
- Пройти веб-инсталлятор, отключить setup, включить резервное копирование.
Безопасность и соответствие приватности
- Храните резервные копии в зашифрованном виде и ограничьте доступ.
- Если в системе обрабатываются персональные данные граждан ЕС, учтите требования GDPR: регистрация целей обработки, ограничение сроков хранения, права субъектов данных.
- Минимизируйте права доступа к базе данных: выделите отдельного пользователя с минимально необходимыми правами.
Короткий глоссарий
- SSL/TLS: протоколы шифрования для веба.
- FPM: FastCGI Process Manager для PHP.
- mysqldump: утилита для экспорта баз данных.
Шаблон бэкапа (пример)
- Полный дамп базы: ежесуточно mysqldump dbname > /backups/dbname-$(date +%F).sql
- Копирование каталога приложения: rsync -a /var/www/invoiceplane /backups/
- Хранение бэкапов: минимум 14 дней или по политике компании.
Короткое объявление (для рассылки или Slack, 100–200 слов)
InvoicePlane установлен на сервере CentOS 7 и готов к использованию. В приложении настроены база на MariaDB, PHP 7.2 (PHP-FPM) и Nginx. Для доступа используйте URL, указанный в ipconfig.php. Не забудьте заменить временные данные в конфигурации, отключить веб-установщик (DISABLE_SETUP=true) и настроить SSL. Рекомендовано настроить регулярное резервное копирование базы данных и каталогов, а также ограничить доступ к административной панели. По вопросам интеграции с существующей учётной системой обращайтесь к администратору.
Ссылки
Резюме
InvoicePlane успешно разворачивается на CentOS 7 при соблюдении требований к PHP, MariaDB и конфигурации Nginx. После установки важно завершить базовые шаги по безопасности: SSL, бэкапы, отключение setup и ограничения доступа.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента