Установка InvoicePlane на Fedora 29

Что такое InvoicePlane
InvoicePlane — бесплатное и открытое приложение для выставления счетов. Код доступен на GitHub. Эта инструкция показывает установку InvoicePlane на чистую систему Fedora 29 с Nginx, MariaDB и PHP-FPM.
В одном предложении: InvoicePlane — веб-приложение для управления счетами и клиентами.
Important: перед началом сделайте резервную копию важных данных и убедитесь, что система обновлена.
Основные варианты использования (SEO: основное намерение и варианты)
- Установка InvoicePlane на Fedora 29
- Развертывание InvoicePlane с Nginx и PHP-FPM
- Конфигурация InvoicePlane с MariaDB
- Как настроить InvoicePlane шаг за шагом
- Безопасное развёртывание InvoicePlane
Требования
- Веб-сервер: Apache или NGINX (в этом руководстве используется Nginx).
- MariaDB или MySQL: версия 5.5 и выше (или эквивалент MariaDB).
- PHP 7.0 или выше с расширениями:
- php-gd
- php-hash
- php-json
- php-mbstring
- php-mcrypt
- php-mysqli / php-mysqlnd
- php-openssl
- php-recode
- php-xmlrpc
- php-zlib
Предварительные условия
- Сервер с Fedora 29.
- Неразовый пользователь с sudo-привилегиями.
TL;DR установки (короткая последовательность)
- Обновите систему: sudo dnf upgrade -y
- Установите PHP и расширения: sudo dnf install -y php-cli php-fpm …
- Установите MariaDB, и выполните sudo mysql_secure_installation
- Установите Nginx и настройте виртуальный хост
- Разверните архив InvoicePlane в /var/www/invoiceplane и выполните веб-установщик
- Отключите setup в ipconfig.php после установки
Начальные шаги
Проверьте версию Fedora:
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)Установите часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите пакеты ОС:
sudo dnf upgrade -yУстановите полезные утилиты:
sudo dnf install -y vim wget curl git socat unzip bash-completionШаг 1 — Установка PHP и расширений
InvoicePlane требует PHP 7.0 или новее.
Установка PHP и необходимых расширений:
sudo dnf install -y php-cli php-fpm php-common php-gd php-json php-mbstring php-mcrypt php-mysqlnd php-xmlrpc php-recodeПроверка загруженных модулей PHP:
php -m
ctype
curl
exif
fileinfo
. . .
. . .Проверка версии PHP:
php --version
# PHP 7.2.16 (cli) (built: Mar 5 2019 11:05:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend TechnologiesЗапустите и включите сервис PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceNotes: В Fedora сокет php-fpm может находиться по пути /var/run/php-fpm/www.sock или unix:/run/php-fpm/www.sock — проверьте /etc/php-fpm.d/www.conf.
Шаг 2 — Установка MariaDB
Установите MariaDB:
sudo dnf install -y mariadb-serverПроверка версии MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.3.12-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Отвечайте на вопросы по умолчанию (рекомендуется отвечать Y для удаления анонимных пользователей, запрета удалённого входа 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 и создайте базу и пользователя:
mysql -u root -p
# Enter password
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quitЗамените dbname, username и password на свои значения.
Шаг 3 — Установка NGINX
Установите Nginx:
sudo dnf install -y nginxПроверка версии Nginx:
nginx -v
# nginx version: nginx/1.14.2Запуск и включение сервиса Nginx:
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$ {
include default.d/php.conf;
fastcgi_index index.php;
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass /var/run/php-fpm/www.sock;
}
}Проверьте конфигурацию и перезагрузите nginx:
sudo nginx -t
sudo systemctl reload nginx.serviceNotes: при использовании socket с префиксом unix: укажите fastcgi_pass unix:/run/php-fpm/www.sock; убедитесь, что путь совпадает с /etc/php-fpm.d/www.conf.
Шаг 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 (или на пользователя веб-сервера, если используется apache):
sudo chown -R nginx:nginx /var/www/invoiceplaneВ /etc/php-fpm.d/www.conf установите user и group в nginx (по умолчанию apache):
sudo vim /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После завершения установки войдите в систему под созданными email и паролем.
Для закрытия возможности повторной установки поменяйте в ipconfig.php:
DISABLE_SETUP=false -> DISABLE_SETUP=trueШаг 5 — Завершение настройки через веб-интерфейс
Откройте http://example.com — вы будете перенаправлены в веб-установщик.

Нажмите Setup и выберите язык:

Проверьте соответствие требований:

Заполните данные базы данных и протестируйте подключение:

Если всё успешно, продолжите установку:

Создайте пользователя администратора:

По завершении увидите страницу успешной установки:

Войдите в систему через страницу логина:

Проверки и отладка после установки
- Проверьте логи Nginx (/var/log/nginx/error.log) и PHP-FPM (/var/log/php-fpm/error.log) при ошибках 500.
- Проверьте права на каталог /var/www/invoiceplane/storage и /var/www/invoiceplane/uploads.
- Убедитесь, что SELinux не блокирует доступ (если включён — проверьте audit.log и используйте setsebool или chcon при необходимости).
Безопасность и рекомендации
- Отключите setup (DISABLE_SETUP=true) после установки.
- Запустите сайт через HTTPS: используйте сертификат Let’s Encrypt и настройте перенаправление с 80 на 443.
- Ограничьте доступ по IP к административным разделам при возможности.
- Регулярно обновляйте пакеты системы и PHP-расширения.
- Храните резервные копии базы данных и каталога /var/www/invoiceplane.
Критерии приёмки:
- Веб-интерфейс доступен по HTTPS.
- Авторизация админа успешна.
- База данных создана и заполнена начальными таблицами.
- Никаких ошибок в логах при загрузке главной страницы.
Альтернативные подходы
- Использовать Apache вместо Nginx (нужна другая конфигурация виртуального хоста и PHP-FPM проксирование).
- Развернуть в контейнере Docker: готовые образы и docker-compose ускоряют воспроизводимость и изоляцию.
- Использовать managed-хостинг или VPS с предустановленным стеком LEMP/LAMP.
Когда это может не сработать
- Если PHP-модули не установлены (приложение выдаст ошибки при проверке требований).
- Если SELinux блокирует доступ к файлам (нужна дополнительная настройка меток).
- Если сокет php-fpm и путь в конфигурации Nginx не совпадают — будет ошибка обработки PHP.
- Неправильные права на файлы приведут к ошибкам записи (логи, загрузки, кеш).
Быстрая методология развертывания (SOP)
- Подготовка системы: обновление, установка утилит.
- Установка и запуск MariaDB, создание БД и пользователя.
- Установка PHP и необходимых расширений, настройка php-fpm.
- Установка Nginx, создание виртуального хоста и проверка конфигурации.
- Развёртывание InvoicePlane, настройка ipconfig.php, права доступа.
- Веб-установка и отключение setup.
- Тестирование, резервное копирование, настройка HTTPS.
Мини-чеклисты по ролям
Системный администратор:
- Обновить систему и установить нужные пакеты.
- Настроить firewall (firewalld) и открыть порты 80/443.
- Настроить и проверить резервное копирование БД.
Dev/Ops инженер:
- Проверить совместимость версий PHP и расширений.
- Автоматизировать деплой через Ansible/Playbook или Docker.
Специалист по безопасности:
- Настроить HTTPS и HSTS.
- Настроить SELinux и политики доступа.
- Проводить регулярные аудит-сканы и бэкапы.
Полезные шаблоны и сниппеты
Nginx: базовая конфигурация приведена выше. Убедитесь, что fastcgi_pass соответствует вашему php-fpm socket.
Пример systemd для автозапуска (обычно не нужен):
# systemctl enable nginx php-fpm mariadbMermaid: базовый поток установки
flowchart TD
A[Обновление системы] --> B[Установка PHP и расширений]
B --> C[Установка MariaDB]
C --> D[Установка Nginx]
D --> E[Развёртывание InvoicePlane]
E --> F[Веб-установщик и отключение setup]Миграция и совместимость
- Для Fedora 30+ и современных версий PHP проверьте совместимость с InvoicePlane v1.5.x — некоторые плагины или темы могут требовать адаптации.
- При миграции с MySQL на MariaDB обычно проблем нет, однако всегда делайте бэкап перед миграцией.
Конфиденциальность и GDPR
- InvoicePlane хранит данные клиентов и счета — убедитесь в соответствии с локальным законодательством по хранению и защите персональных данных.
- Организуйте резервное копирование и шифрование резервов.
Факты и ключевые цифры
- Минимальные требования: PHP ≥ 7.0, MariaDB/MySQL ≥ 5.5.
- Типичная структура развёртывания: Nginx + PHP-FPM + MariaDB.
- Папка установки: /var/www/invoiceplane.
Ресурсы
Краткое резюме
InvoicePlane можно быстро развернуть на Fedora 29 при соблюдении требований к PHP и базе данных. Главное — корректно настроить PHP-FPM/Nginx, права доступа и отключить setup после установки. Обеспечьте HTTPS и регулярные бэкапы.
Important: для рабочей среды рекомендуется использовать HTTPS, включить резервное копирование и контролировать доступ к админ-панели.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента