Гид по технологиям

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

• 6 min read • DevOps • Обновлено 25 Nov 2025
Установка InvoicePlane на Fedora 29
Установка InvoicePlane на Fedora 29

Обложка: InvoicePlane — бесплатное приложение для выставления счетов

Что такое 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 установки (короткая последовательность)

  1. Обновите систему: sudo dnf upgrade -y
  2. Установите PHP и расширения: sudo dnf install -y php-cli php-fpm …
  3. Установите MariaDB, и выполните sudo mysql_secure_installation
  4. Установите Nginx и настройте виртуальный хост
  5. Разверните архив InvoicePlane в /var/www/invoiceplane и выполните веб-установщик
  6. Отключите 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.service

Notes: В 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.service

Notes: при использовании 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 — вы будете перенаправлены в веб-установщик.

Веб-установщик InvoicePlane

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

Выбор языка установщика

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

Проверка требований успешна

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

Настройка базы данных

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

База данных настроена

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

Создание пользователя

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

Установка завершена

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

Вход в InvoicePlane

Проверки и отладка после установки

  • Проверьте логи 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)

  1. Подготовка системы: обновление, установка утилит.
  2. Установка и запуск MariaDB, создание БД и пользователя.
  3. Установка PHP и необходимых расширений, настройка php-fpm.
  4. Установка Nginx, создание виртуального хоста и проверка конфигурации.
  5. Развёртывание InvoicePlane, настройка ipconfig.php, права доступа.
  6. Веб-установка и отключение setup.
  7. Тестирование, резервное копирование, настройка 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 mariadb

Mermaid: базовый поток установки

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, включить резервное копирование и контролировать доступ к админ-панели.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро