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

Установка InvoicePlane на Debian 11 с Apache и Let's Encrypt

• 5 min read • Инструкции • Обновлено 24 Nov 2025
Установка InvoicePlane на Debian 11 с Apache и SSL
Установка InvoicePlane на Debian 11 с Apache и SSL

Кратко: пошаговый гид по установке самохостинга InvoicePlane на Debian 11 с Apache, MariaDB и автоматической выдачей SSL через Let’s Encrypt. Включены настройки PHP, создание базы данных, виртуальный хост Apache, права файлов и рекомендации по безопасности.

Важное: все команды выполняйте от пользователя с правами root или через sudo. Замените example-домены и пароли на реальные значения перед применением.

Логотип и стартовый экран InvoicePlane

О чём эта инструкция

Этот материал описывает установку InvoicePlane — бесплатного open-source приложения для выставления счётов, работы с клиентами и оплатами — на сервер Debian 11 с веб-сервером Apache. Покрываются подготовка сервера, установка зависимостей, создание базы данных, развертывание кода, настройка виртуального хоста, получение сертификата Let’s Encrypt и базовые рекомендации по безопасности и сопровождению.

Предварительные условия

  • Сервер с Debian 11 и доступом root или sudo.
  • Доменное имя, указывающее на IP сервера (например invoice.example.com).
  • Рабочее подключение к интернету для загрузки пакетов и сертификатов.

Установка Apache, PHP и MariaDB

Сначала установите Apache, MariaDB, PHP и необходимые PHP-расширения:

apt-get install apache2 mariadb-server php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql wget unzip php-cli php-zip php-curl -y

После установки отредактируйте PHP-конфигурацию для Apache:

nano /etc/php/7.4/apache2/php.ini

Измените и/или добавьте следующие параметры, чтобы обеспечить стабильную работу установки и импорт больших файлов:

memory_limit = 256M
upload_max_filesize = 128M
max_execution_time = 360
date.timezone = UTC

Сохраните изменения и перезапустите Apache:

systemctl restart apache2

Создание базы данных для InvoicePlane

Надёжно настройте MariaDB и создайте базу данных и пользователя для InvoicePlane.

Запустите скрипт безопасной настройки MariaDB:

mysql_secure_installation

Ответьте на вопросы по безопасности (установите пароль root, удалите анонимных пользователей, запретите удалённый вход root и т.д.).

Подключитесь к MariaDB:

mysql -u root -p

Внутри MySQL создайте базу и пользователя (замените пароль на надёжный):

MariaDB [(none)]> CREATE DATABASE invplanedb;  
MariaDB [(none)]> CREATE USER 'invplane'@'localhost' IDENTIFIED BY 'password';

Предоставьте привилегии и обновите таблицы привилегий:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON invplanedb.* TO 'invplane'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT

Установка InvoicePlane

Скачайте официальный релиз InvoicePlane и распакуйте его в корневую папку веб-сервера:

wget -c -O v1.5.11.zip https://invoiceplane.com/download/v1.5.11

Создайте каталог приложения и распакуйте архив:

mkdir /var/www/html/invoiceplane  
unzip v1.5.11.zip -d /var/www/html/invoiceplane

Перейдите в папку приложения и создайте рабочую конфигурацию из примера:

cd /var/www/html/invoiceplane  
cp ipconfig.php.example ipconfig.php  
cp htaccess .htaccess

Откройте ipconfig.php и укажите URL сайта и параметры базы данных (вставьте ваши значения):

nano ipconfig.php

Пример блоков в ipconfig.php:

IP_URL=http://invoice.example.com
DB_HOSTNAME=localhost
DB_USERNAME=invplane
DB_PASSWORD=password
DB_DATABASE=invplanedb
DB_PORT=3306

Назначьте корректные владельца и права для каталога приложения:

chown -R www-data:www-data /var/www/html/invoiceplane/  
chmod -R 755 /var/www/html/invoiceplane/

Важно: права 755 и владелец www-data — безопасность и совместимость с Apache.

Настройка Apache для InvoicePlane

Создайте виртуальный хост Apache для вашего домена:

nano /etc/apache2/sites-available/invoiceplane.conf

Добавьте конфигурацию виртуального хоста:


     ServerAdmin [email protected]
     DocumentRoot /var/www/html/invoiceplane
     ServerName invoice.example.com

     
          Options +FollowSymlinks
          AllowOverride All
          Require all granted
     

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

Активируйте сайт и модуль перезаписи URL, затем перезапустите Apache:

a2ensite invoiceplane.conf  
a2enmod rewrite
systemctl restart apache2

Проверьте статус службы:

systemctl status apache2

Пример ожидаемого состояния — служба active (running).

Доступ к веб-интерфейсу InvoicePlane

Откройте браузер и перейдите по URL, указанному в IP_URL (например http://invoice.example.com). Вы увидите страницу установки InvoicePlane.

Экран установщика InvoicePlane

Экран установщика InvoicePlane

Нажмите кнопку «Setup» для начала установки.

Выбор языка

Выберите язык и нажмите «Continue». Инсталлятор проверит предварительные требования:

Проверка требований

Если все в порядке — продолжите к вводу данных базы данных:

Детали базы данных

Инсталлятор создаст таблицы и учетную запись администратора:

Установка таблиц базы

Создание учётной записи администратора

Контактные данные

После заполнения данных установщик завершит процесс:

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

Нажмите «Login», введите логин и пароль администратора и вы попадёте в панель управления:

Страница входа

Панель управления InvoicePlane

Защита сайта с помощью Let’s Encrypt SSL

Установите Certbot для автоматического получения сертификата через плагин для Apache:

apt-get install python3-certbot-apache -y

Запустите Certbot и следуйте подсказкам для получения сертификата для вашего домена:

certbot --apache -d invoice.example.com

В процессе потребуется указать email и принять условия обслуживания. После успешной выдачи сертификата Certbot предложит опцию перенаправления HTTP на HTTPS — выберите перенаправление для новых сайтов.

Пример вывода Certbot и важные пути сохранения сертификатов находятся в стандартном выводе (полный путь и параметры отображаются в колонке Certbot после выполнения команды).

Безопасность и усиление (Security hardening)

Рекомендации для повышенной безопасности production-развертывания:

  • Обновляйте систему и пакеты: apt update && apt upgrade регулярно.
  • Ограничьте доступ к SSH: используйте ключи, запретите root-парольный вход и смените порт при необходимости.
  • Настройте файрволл (ufw или iptables): откройте только 80/443 и SSH.
  • Резервное копирование: регулярно экспортируйте дамп БД и архивируйте каталог /var/www/html/invoiceplane.
  • Ограничьте доступ к phpinfo и к конфигурационным файлам через .htaccess или конфигурацию Apache.
  • Настройте автоматическое обновление SSL сертификатов: certbot renew и системный cron/systemd таймер.
  • Используйте строгие права: файлы не должны быть доступными для записи пользователям, отличным от www-data.

Чек-лист по ролям при развертывании

  • Системный администратор

    • Настроил бэкапы, firewall и обновления.
    • Проверил права файлов и владельцев.
    • Настроил мониторинг и алерты для Apache и MariaDB.
  • Девопс/инженер релизов

    • Подготовил CI/скрипты для выкатывания новых версий.
    • Тестировал миграции и откаты.
  • Администратор приложения

    • Настроил админ-учётную запись и политики паролей.
    • Настроил провайдеры платежей и шаблоны документов.

Метод развёртывания — краткая методология

  1. Подготовка сервера и бэкапа конфигураций.
  2. Установка стека (Apache, PHP, MariaDB).
  3. Развёртывание кода и назначение прав.
  4. Настройка виртуального хоста и тест HTTP.
  5. Получение SSL и принудительное HTTPS.
  6. Тестирование функционала (создание счёта, импорт/экспорт).
  7. Внедрение мониторинга и бэкапов.

Технические заметки и отладка

  • Проблемы с правами: если встречаете 500 ошибку — проверьте логи Apache (/var/log/apache2/error.log) и права в /var/www/html/invoiceplane.
  • Ошибки подключения к БД: проверьте ipconfig.php и выполните mysql -u invplane -p -h localhost invplanedb.
  • Модуль rewrite не работает: убедитесь, что AllowOverride All включён в конфиге и a2enmod rewrite выполнен.
  • Проблемы с файлами .htaccess: в некоторых случаях лучше перенести правила в конфигурацию виртуального хоста.

Критерии приёмки

  • Страница входа доступна по HTTPS без предупреждений.
  • Инсталлятор успешно прошёл все проверки и создал структуру БД.
  • Администратор может войти и создать тестовый счёт.
  • Резервная копия БД выполнена и восстановление протестировано.

Быстрый справочник и факты

  • Требования: Debian 11, Apache 2.4, PHP 7.4+, MariaDB 10.x.
  • Рекомендуемые PHP-настройки: memory_limit=256M, upload_max_filesize=128M, max_execution_time=360.
  • Владелец веб-файлов: www-data.

Глоссарий в одну строку

  • InvoicePlane — приложение для выставления счётов и управления клиентами.
  • Certbot — клиент для получения бесплатных SSL-сертификатов Let’s Encrypt.
  • VirtualHost — конфигурация Apache для привязки домена к каталогу сайта.

Частые ошибки и когда это не сработает

  • Если DNS не указывает на сервер — сайт и Certbot не будут работать.
  • Если порт 80 блокируется провайдером — Certbot не сможет пройти http-01 challenge; используйте DNS-валидацию.
  • На сильно ограничённых хостингах с нетипичным окружением (отсутствуют нужные модули PHP) возможны несовместимости.

Заключение

Поздравляем — вы установили InvoicePlane на Debian 11 с Apache и настроили HTTPS через Let’s Encrypt. Дальше: настройте шаблоны, интеграции с платёжными шлюзами и организуйте резервное копирование и мониторинг для надёжной эксплуатации.

Поделиться: 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 быстро