Установка InvoicePlane на Debian 9 (Stretch)

Краткое описание
Этот пошаговый гид объясняет, как установить бесплатное приложение для выставления счетов InvoicePlane на Debian 9 (stretch). Приведены команды, конфигурация NGINX, создание базы данных и советы по безопасности и устранению неполадок.
Основные требования
- Веб-сервер: NGINX (в руководстве) или Apache.
- MariaDB / MySQL версии 5.5+.
- PHP 7.0, 7.1 или 7.2 с расширениями: php-gd, php-hash, php-json, php-mbstring, php-mcrypt, php-mysqli, php-openssl, php-recode, php-xmlrpc, php-zlib.
Важно: php-mcrypt в новых релизах может быть недоступен — для современных установок проверяйте совместимость InvoicePlane с текущими расширениями.
Предварительные требования
- Сервер с Debian 9.
- Неразовый пользователь с sudo-привилегиями.
Первые шаги
Проверьте версию Debian:
lsb_release -ds
# Debian GNU/Linux 9 (stretch)Настройте часовой пояс:
sudo dpkg-reconfigure tzdataОбновите пакеты:
sudo apt update && sudo apt upgrade -yУстановите утилиты:
sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-httpsШаг 1 — Установка PHP и расширений
InvoicePlane требует PHP 7.0+. Установите PHP и нужные расширения:
sudo apt install -y php-cli php-fpm php-common php-gd php-json php-mbstring php-mysql php-xmlrpc php-recodeПросмотреть загруженные модули PHP:
php -m
ctype
curl
exif
fileinfo
. . .
. . .Проверить версию PHP:
php --version
# PHP 7.0.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.0.9-1~deb10u1, Copyright (c) 1999-2018, by Zend TechnologiesЗапустите и включите php-fpm:
sudo systemctl start php7.0-fpm.service
sudo systemctl enable php7.0-fpm.serviceПримечание: если ваш пакет называется php7.1-fpm или php7.2-fpm — используйте соответствующее имя сервиса.
Шаг 2 — Установка MariaDB
Установите MariaDB:
sudo apt install -y mariadb-serverПроверьте версию:
mysql --versionЗапустите и включите сервис:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.serviceУкрепите безопасность и задайте пароль root:
sudo mysql_secure_installationОбычно отвечают так:
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
sudo apt install -y nginxПроверка версии:
nginx -v
# nginx version: nginx/1.10.3Запуск и включение:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceСоздайте файл конфигурации: /etc/nginx/sites-available/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 snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/invoiceplane.conf /etc/nginx/sites-enabled/Проверка конфигурации и перезагрузка:
sudo nginx -t
sudo systemctl reload nginx.serviceСовет: если вы используете php7.1 или php7.2 — укажите соответствующий сокет в fastcgi_pass.
Шаг 4 — Установка InvoicePlane
Скачайте стабильную версию и распакуйте:
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Скопируйте конфигурацию и задайте URL:
sudo cp ipconfig.php.example ipconfig.php
sudo vim ipconfig.php
# Пример
IP_URL=http://example.comИзмените владельца на www-data:
sudo chown -R www-data:www-data /var/www/InvoicePlaneУстановите часовой пояс в конфигурации PHP (php.ini):
# Откройте php.ini
sudo vim /etc/php.ini
# Установите
date.timezone = Region/CityРекомендуемая локаль — например, date.timezone = Europe/Moscow для Москвы.
Перезапустите PHP-FPM:
sudo systemctl restart php7.0-fpm.serviceЗапустите веб-инсталлятор в браузере:
http://example.com/index.php/setupПосле завершения установки войдите в панель, используя созданные учётные данные. Чтобы закрыть установщик, в ipconfig.php установите DISABLE_SETUP=true.
Шаг 5 — Завершение настройки через веб
Откройте http://example.com — вы будете перенаправлены в веб-установщик.

Нажмите кнопку Setup, выберите язык и следуйте инструкциям.


Введите данные базы данных, проверьте соединение и создайте администратора.





Важные замечания
Важно: после завершения установки отключите веб-установщик (DISABLE_SETUP=true) и настройте HTTPS.
Частые проблемы и способы их решения
- Ошибка 502 Bad Gateway: обычно означает, что NGINX не может связаться с PHP-FPM. Проверьте сокет в конфигурации (fastcgi_pass unix:/var/run/php/php7.0-fpm.sock) и запущен ли php-fpm.
- 500 Internal Server Error: проверьте логи NGINX и PHP-FPM (/var/log/nginx/error.log, /var/log/php7.0-fpm.log). Частая причина — неправильные права доступа.
- Невозможно подключиться к базе данных: проверьте правильность имени базы, пользователя и пароля, а также что MariaDB слушает локальные подключения.
- Отсутствующие PHP-расширения: проверьте
php -mи установите отсутствующие пакеты.
Альтернативный путь: Apache вместо NGINX
Если вы предпочитаете Apache, замените секцию установки NGINX установкой Apache, включите модуль php-fpm (или libapache2-mod-php) и настройте VirtualHost для /var/www/invoiceplane. Apache-конфигурация проще для тех, кто знаком с .htaccess.
Безопасность и жёсткие настройки
Рекомендуемые шаги:
- Включите HTTPS — используйте Let’s Encrypt и certbot.
- Отключите установщик (DISABLE_SETUP=true).
- Установите права: каталоги должны принадлежать www-data, разрешения 750/640.
- Отключите показ ошибок в продакшене (display_errors = Off).
- Настройте fail2ban для защиты SSH и веб-сервиса.
- Регулярные бэкапы базы и файлов — минимум ежедневные.
Контрольный список по ролям
Администратор системы:
- Обновить систему и пакеты.
- Настроить брандмауэр (ufw) и fail2ban.
- Включить HTTPS и автоматическое обновление сертификатов.
DevOps:
- Настроить systemd-тайминги и мониторинг сервисов.
- Настроить ротацию логов и резервные копии базы.
Бизнес-пользователь:
- Проверить создание и отправку счетов.
- Настроить шаблоны и валюту.
Решения для сложных случаев
- Если php-mcrypt недоступен, проверьте, поддерживает ли версия InvoicePlane альтернативные расширения или примените полифил.
- При миграции с другой ОС проверьте версии PHP/MariaDB и тестируйте миграцию на staging.
Диаграмма принятия решения
flowchart TD
A[Есть Debian 9?] -->|Нет| B[Установите Debian или выберите другую ОС]
A -->|Да| C[Установить веб-сервер]
C --> D{Выберите NGINX или Apache}
D -->|NGINX| E[Следовать инструкции NGINX]
D -->|Apache| F[Использовать альтернативную конфигурацию Apache]
E --> G[Настроить PHP-FPM и MariaDB]
G --> H[Установить InvoicePlane и пройти веб-установку]
H --> I[Отключить setup и усилить безопасность]Критерии приёмки
- Веб-инсталлятор доступен и завершает установку.
- Вход в панель администратора выполняется успешно.
- Созданные счета сохраняются в базе данных и доступны после перезапуска сервиса.
- HTTPS работает и установщик отключён.
Справочные материалы
Краткое резюме
InvoicePlane легко развернуть на Debian 9, если правильно установить NGINX (или Apache), PHP 7.x и MariaDB. Главное — проверить соответствие версий, установить требуемые расширения, настроить права доступа и защитить сервер HTTPS и бэкапами.
Короткое объявление: Установите InvoicePlane на Debian 9 за 30–60 минут при наличии базовых навыков системного администрирования. Проверьте права, PHP-FPM и базу данных, отключите инсталлятор и настройте HTTPS для продакшена.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента