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

Как установить Invoice Ninja на Ubuntu 20.04


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

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

Invoice Ninja — это бесплатное онлайн-приложение для выставления счетов с открытым исходным кодом для фрилансеров и предприятий, которое помогает вам принимать платежи, отслеживать расходы, создавать предложения и выполнять временные задачи. Это автономное приложение для выставления счетов, очень похожее на коммерческие приложения для выставления счетов, такие как Freshbooks. Это позволяет вам создать свой собственный счет-фактуру и отправить его онлайн в течение секунды.

Invoice Ninja очень полезен для малого и среднего бизнеса. Если вы ищете безопасное и простое в использовании программное обеспечение для выставления счетов, то Invoice Ninja — лучший вариант для вас.

В этом руководстве мы покажем вам, как установить Invoice Ninja с Apache и Lets Encrypt SSL на сервере Ubuntu 20.04.

Предпосылки

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

Начиная

Во-первых, рекомендуется обновить системные пакеты до последней версии. Выполните следующую команду, чтобы обновить все пакеты:

apt-get update -y

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

apt-get install software-properties-common apt-transport-https ca-certificates gnupg2 -y

После установки всех зависимостей можно переходить к следующему шагу.

Установить LAMP-сервер

Далее вам нужно будет установить Apache, MariaDB и PHP в вашу систему. Сначала установите пакеты Apache и MariaDB с помощью следующей команды:

apt-get install apache2 mariadb-server -y

После установки обоих пакетов вам потребуется установить PHP версии 7.2 и другие расширения в вашей системе.

По умолчанию Ubuntu 20.04 поставляется с PHP версии 7.4. Поэтому вам нужно будет добавить репозиторий Ondrej в вашу систему.

Вы можете добавить репозиторий PHP Ondrej с помощью следующей команды:

add-apt-repository ppa:ondrej/php

После добавления репозитория установите PHP и другие расширения с помощью следующей команды:

apt-get install php7.2 libapache2-mod-php7.2 php-imagick php7.2-fpm php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp unzip -y

После установки всех пакетов проверьте установленную версию PHP с помощью следующей команды:

php -v

Вы должны увидеть следующий вывод:

PHP 7.2.34-8+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Oct 31 2020 16:57:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.34-8+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Настроить базу данных MariaDB

Далее вам нужно будет создать базу данных и пользователя для Invoice Ninja. Сначала войдите в консоль MariaDB с помощью следующей команды:

mysql

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

MariaDB [(none)]> create database invoicedb;
MariaDB [(none)]> create user identified by 'password';

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

MariaDB [(none)]> grant all privileges on invoicedb.* to ;

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

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Инвойс Ниндзя

Сначала загрузите последнюю версию Invoice Ninja с официального сайта:

wget -O invoice-ninja.zip https://download.invoiceninja.com/

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

unzip invoice-ninja.zip -d /var/www/html/

Затем установите правильные разрешения и права собственности с помощью следующей команды:

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

Как только вы закончите, вы можете перейти к следующему шагу.

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

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

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

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

<VirtualHost *:80>
    ServerName invoice.example.com
    DocumentRoot /var/www/html/ninja/public
    <Directory /var/www/html/ninja/public>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

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

    Include /etc/apache2/conf-available/php7.2-fpm.conf
</VirtualHost>

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

a2ensite ninja.conf

Затем включите необходимые модули Apache с помощью следующей команды:

a2enmod mpm_event proxy_fcgi setenvif
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 Sun 2020-12-27 07:15:15 UTC; 11s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 25097 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 25113 (apache2)
      Tasks: 55 (limit: 2353)
     Memory: 5.3M
     CGroup: /system.slice/apache2.service
             ??25113 /usr/sbin/apache2 -k start
             ??25114 /usr/sbin/apache2 -k start
             ??25115 /usr/sbin/apache2 -k start

Dec 27 07:15:15 ubuntu systemd[1]: Starting The Apache HTTP Server..

На данный момент Apache настроен для обслуживания Invoice Ninja. Теперь вы можете перейти к следующему шагу.

Доступ к счету-фактуре Ninja

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

Укажите URL-адрес вашего веб-сайта, данные базы данных, имя пользователя администратора, пароль и нажмите кнопку «Отправить». Вы будете перенаправлены на экран входа в систему Invoice Ninja:

Введите имя пользователя и пароль администратора и нажмите кнопку ВХОД. Вы должны увидеть панель инструментов Invoice Ninja на следующем экране:

Безопасный счет-ниндзя с 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 2020-10-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

Теперь вы можете безопасно получить доступ к своему веб-сайту, используя URL-адрес https://invoice.example.com.

Заключение

Поздравляем! вы успешно установили и настроили Invoice Ninja с Lets Encrypt SSL на сервере Ubuntu 20.04. Теперь вы можете ознакомиться с дополнительными функциями Invoice Ninja и развернуть его в производственной среде. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.