Как да инсталирате Invoice Ninja на Ubuntu 16.04

Въведение

Invoice Ninja е безплатно уеб-базирано приложение с отворен код, което може да се използва за фактуриране, плащания, проследяване на времето и много други. Това е най-доброто решение за фактуриране и фактуриране на клиенти. Можете лесно да създавате и изпращате фактури онлайн за секунди. Invoice Ninja ви позволява да създавате персонализирани фактури и да показвате фактури на живо като PDF файл.

В този урок ще обясня как да инсталирате Invoice Ninja на сървър на Ubuntu 16.04.

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

  • Сървърна инстанция на Ubuntu 16.04 с инсталирана 2GB RAM.
  • Потребител на sudo с root привилегии.
  • Ще трябва да знаете основния IP на вашия сървърен екземпляр. В този урок ще използвам 192.168.0.227.

Стъпка 1: Актуализирайте системата

Преди да инсталирате каквито и да е пакети на сървър на Ubuntu, се препоръчва да актуализирате системата. Влезте във вашия сървър чрез SSH като вашия sudo потребител и изпълнете следната команда:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

Стъпка 2: Инсталирайте стека LEMP

Преди да започнете, ще трябва да конфигурирате стек LEMP (Nginx, MariaDB и PHP) на вашия сървър.

Първо, инсталирайте Nginx и MariaDB със следната команда:

sudo apt-get install nginx mariadb-server -y

След като инсталацията приключи, стартирайте услугите Nginx и MariaDB и им позволете да стартират при зареждане:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

След това ще ви трябват PHP 7 и PHP-FPM за инсталацията на Invoice Ninja.

Можете да инсталирате PHP-FPM и другите необходими PHP разширения със следната команда:

sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt

След като инсталацията приключи, ще трябва да промените php.iniконфигурационния файл:

sudo nano /etc/php/7.0/fpm/php.ini

Променете следния ред:

cgi.fix_pathinfo=0

Запазете и затворете файла.

Стъпка 3: Конфигуриране на база данни

По подразбиране инсталацията на MariaDB не е защитена. Ще трябва да го подсигурите. Можете да направите това, като стартирате mysql_secure_installation script.

sudo mysql_secure_installation

Отговорете на всички въпроси, както е показано по-долу:

Set root password? [Y/n] Y
New password:
Re-enter new password:
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

Когато всичко е готово, свържете се с помощта на обвивката MySQL със следната команда:

mysql -u root -p

Въведете вашата root парола и натиснете "enter", ще видите обвивката на MySQL (MariaDB).

Създайте нова база данни и нов потребител за Invoice Ninja.

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Стъпка 4: Конфигурирайте PHP-FPM

Конфигурирайте PHP-FPM пула за потребителя на Nginx:

sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf

Добавете следните редове:

[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

Запазете и затворете файла, когато приключите, след което рестартирайте PHP-FPM, за да приложите тези промени.

systemctl restart php7.0-fpm

Стъпка 5: Изтеглете и конфигурирайте Invoice Ninja

Можете да изтеглите най-новата стабилна версия на Invoice Ninja от хранилището на GitHub със следната команда:

cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja

Ще трябва също да инсталирате Composer, мениджър на зависимости за PHP. Можете да го инсталирате със следната команда:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

След това инсталирайте всички зависимости на Invoice Ninja, като използвате composerкомандата, както е показано по-долу:

cd /var/www/html/ninja
sudo composer install --no-dev -o

След като инсталацията приключи, преименувайте .envфайла и направете някои промени.

sudo mv .env.example .env
sudo nano .env

Променете редовете, както е показано по-долу:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

Запазете файла, когато сте готови, след което изпълнете следната команда, за да подготвите базата данни:

sudo php artisan migrate

Ще бъдете подканени да изпълните командата, въведете "да" и натиснете "enter".

След това заредете базата данни със записи, както е показано по-долу:

sudo php artisan db:seed

Въведете "да" и натиснете "enter".

След това променете собствеността на /var/www/html/ninjaдиректорията:

sudo chown -R www-data:www-data /var/www/html/ninja/

Стъпка 6: Конфигурирайте Nginx за Invoice Ninja

След това ще трябва да създадете SSL сертификат и да създадете нова конфигурация на виртуален хост за Invoice Ninja.

Първо, създайте директория за SSL:

sudo mkdir -p /etc/nginx/cert/

След това генерирайте SSL сертификат със следната команда:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Дайте подходящи разрешения на файла със сертификата.

sudo chmod 600 /etc/nginx/cert/*

Създайте нов конфигурационен файл за виртуален хост вътре в /etc/nginx/директорията.

sudo nano /etc/nginx/conf.d/ninja.conf

Добавете следните редове:

server {
    listen  80;
    server_name 192.168.0.227;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen  443 default;
    server_name 192.168.0.227;
    ssl on;
    ssl_certificate     /etc/nginx/cert/ninja.crt;
    ssl_certificate_key /etc/nginx/cert/ninja.key;
    ssl_session_timeout 5m;
    ssl_ciphers  'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    root /var/www/html/ninja/public;
    index index.html index.htm index.php;
    charset utf-8;
    location / {
    try_files $uri $uri/ /index.php?$query_string;
       }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    # Access and Error Log for Invoice Ninja
    access_log  /var/log/nginx/ininja.access.log;
    error_log   /var/log/nginx/ininja.error.log;

    sendfile off;

    # Handle PHP Applications
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm-www-data.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors off;
    fastcgi_buffer_size 16k;
    fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
       deny all;
       }
    }

Запазете и затворете файла. След това активирайте виртуалния хост със следната команда.

sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/

Накрая рестартирайте уеб сървъра на Nginx.

sudo systemctl restart nginx

Стъпка 7: Достъп до фактура Ninja

Преди да получите достъп до уеб интерфейса на Invoice Ninja, ще трябва да разрешите HTTP и HTTPS услуги през защитната стена на UFW. Изпълнете следните команди, за да отворите тези портове:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Накрая отворете уеб браузъра си и отворете URL адреса https://192.168.0.227. След това можете да изпълните необходимите стъпки, за да завършите инсталацията.

Честито! Успешно инсталирахме Invoice Ninja с Nginx и MariaDB на сървър на Ubuntu 16.04.


Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече