Поиск по сайту:

Как установить InvoicePlane с Apache и бесплатным SSL-сертификатом Lets Encrypt на Debian 11


На этой странице

  1. Предпосылки
  2. Установите Apache, PHP и MariaDB.
  3. Создание базы данных для InvoicePlane
  4. Установить InvoicePlane
  5. Настройка Apache для InvoicePlane
  6. Доступ к веб-интерфейсу InvoicePlane
  7. Защитите InvoicePlane с помощью Lets Encrypt SSL
  8. Заключение

InvoicePlane — это бесплатное приложение с открытым исходным кодом для управления вашими котировками, счетами, клиентами и платежами. Он используется многими организациями и фрилансерами для управления своими платежами и счетами. Он предлагает пользовательские шаблоны, темы и другие инструменты, которые помогут вам расширить функциональность InvoicePlane. Он также поддерживает несколько языков и несколько платежных систем, таких как Paypal, Stripe или даже биткойн через Coinbase.

В этом руководстве мы покажем вам, как установить InvoicePlane с Apache на Debian 11.

Предпосылки

  • Сервер под управлением Debian 11.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На сервере настроен пароль root.

Установите 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 и измените настройки по умолчанию:

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

Ответьте на все вопросы, как показано ниже:

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

После подключения создайте базу данных и пользователя для InvoicePlane с помощью следующей команды:

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

Затем предоставьте все привилегии InvoicePlane с помощью следующей команды:

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

Затем выполните команду FLUSH PRIVILEGES, чтобы таблица привилегий была перезагружена MariaDB:

MariaDB [(none)]> FLUSH PRIVILEGES;

Наконец, выйдите из оболочки MariaDB:

MariaDB [(none)]> EXIT

Установить ИнвойсПлане

Сначала загрузите последнюю версию InvoicePlane с помощью следующей команды:

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

После завершения загрузки создайте каталог для InvoicePlane и извлеките загруженный файл в каталог InvoicePlane:

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

Затем перейдите в каталог InvoicePlane и переименуйте файл конфигурации и файл .htaccess:

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

Затем отредактируйте файл ipconfig.php с помощью следующей команды:

nano ipconfig.php

Определите URL своего веб-сайта и настройки базы данных, как показано ниже:

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

Затем установите правильные права доступа и права собственности на каталог InvoicePlane:

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

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

Далее вам нужно будет создать файл конфигурации виртуального хоста Apache для InvoicePlane. Вы можете создать его с помощью следующей команды:

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

Добавьте следующие строки:

<VirtualHost *:80>
     ServerAdmin 
     DocumentRoot /var/www/html/invoiceplane
     ServerName invoice.example.com


     <Directory /var/www/html/invoiceplane/>
          Options +FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

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

</VirtualHost>

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

a2ensite invoiceplane.conf
a2enmod rewrite

Затем перезапустите службу Apache, чтобы применить изменения конфигурации:

systemctl restart apache2

Чтобы проверить статус Apache, выполните следующую команду:

systemctl status apache2

Вы получите следующий вывод:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-01-21 08:42:34 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 15965 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 15970 (apache2)
      Tasks: 6 (limit: 2341)
     Memory: 15.1M
        CPU: 82ms
     CGroup: /system.slice/apache2.service
             ??15970 /usr/sbin/apache2 -k start
             ??15971 /usr/sbin/apache2 -k start
             ??15972 /usr/sbin/apache2 -k start
             ??15973 /usr/sbin/apache2 -k start
             ??15974 /usr/sbin/apache2 -k start
             ??15975 /usr/sbin/apache2 -k start

Jan 21 08:42:34 debian11 systemd[1]: Starting The Apache HTTP Server...

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

Теперь откройте веб-браузер и войдите в веб-интерфейс InvoicePlane, используя URL-адрес http://invoice.example.com. Вы должны увидеть следующую страницу:

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

Выберите свой язык и нажмите кнопку «Продолжить». Вы должны увидеть страницу предварительных условий:

Нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Укажите информацию об учетной записи администратора, адрес и нажмите кнопку «Продолжить». После установки InvoicePlane вы должны увидеть следующую страницу:

Нажмите кнопку «Войти». Вы должны увидеть следующую страницу:

Укажите имя пользователя и пароль администратора, затем нажмите кнопку «Войти». Вы должны увидеть панель управления InvoicePlane на следующей странице:

Безопасный InvoicePlane с Lets Encrypt SSL

Всегда полезно защитить свой сайт с помощью Lets Encrypt SSL. Вам нужно будет установить клиент Certbot для установки и управления SSL. Вы можете установить его с помощью следующей команды:

apt-get install python3-certbot-apache -y

После установки Certbot выполните следующую команду, чтобы защитить свой сайт с помощью Lets Encrypt SSL:

certbot --apache -d invoice.example.com

Вам будет предложено указать адрес электронной почты и принять условия обслуживания, как показано ниже:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for invoice.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/invoice-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/invoice-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/invoice-le-ssl.conf

Затем выберите, следует ли перенаправлять HTTP-трафик на HTTPS, как показано ниже:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Введите 2 и нажмите Enter, чтобы установить Lets Encrypt SSL для вашего сайта:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/invoice.conf to ssl vhost in /etc/apache2/sites-available/invoice-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://invoice.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=invoice.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/invoice.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/invoice.example.com/privkey.pem
   Your cert will expire on 2022-04-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Заключение

Поздравляем! вы успешно установили InvoicePlane с Apache и Lets Encrypt SSL на Debian 11. Теперь вы можете внедрить InvoicePlane в своей компании и начать управлять своими платежами и счетами из веб-браузера.