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

Вступление

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

В этом уроке я объясню, как установить Invoice Ninja на сервер Ubuntu 16.04.

Предпосылки

  • Экземпляр сервера Ubuntu 16.04 с 2 ГБ ОЗУ.
  • Пользователь 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

Вам будет предложено запустить команду, введите «да» и нажмите «ввод».

Затем заполните базу данных записями, как показано ниже:

sudo php artisan db:seed

Введите «да» и нажмите «ввод».

Далее, измените владельца /var/www/html/ninjaкаталога:

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

Шаг 6: Настройте Nginx для счета ниндзя

Затем вам нужно будет создать сертификат 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: Доступ к счет-фактуре ниндзя

Прежде чем получить доступ к веб-интерфейсу 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.



Leave a Comment

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

LiteCart является бесплатной платформой для покупок с открытым исходным кодом, написанной на PHP, jQuery и HTML 5. Это простой, легкий и простой в использовании софтвар для электронной коммерции.

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как установить Matomo Analytics на Fedora 28

Как установить Matomo Analytics на Fedora 28

Используете другую систему? Matomo (ранее Piwik) - это аналитическая платформа с открытым исходным кодом, открытая альтернатива Google Analytics. Источник Matomo размещен o

Как установить PHP 7.3 на веб-сервере Arch Linux

Как установить PHP 7.3 на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют

Настройте сервер TeamTalk в Linux

Настройте сервер TeamTalk в Linux

TeamTalk - это система конференц-связи, которая позволяет пользователям вести высококачественные аудио / видео-беседы, текстовый чат, передавать файлы и обмениваться экранами. Это я

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как получить доступ к Vultr VPS

Как получить доступ к Vultr VPS

Vultr предоставляет несколько различных способов доступа к вашему VPS для настройки, установки и использования. Учетные данные для доступа Учетные данные для доступа к вашему VPS по умолчанию

Как установить Ranger Terminal File Manager в Linux

Как установить Ranger Terminal File Manager в Linux

Ranger - это файловый менеджер на основе командной строки с привязками клавиш VI. Он предоставляет минималистичный и приятный интерфейс curses с видом на иерархию каталогов.

Как использовать HTTPS на веб-сервере Arch Linux

Как использовать HTTPS на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo Требуются команды t

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем GZIP. Его исходный код размещен на этом Githu

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Отключить или ограничить root-вход через SSH в Linux

Отключить или ограничить root-вход через SSH в Linux

Разрешение входа в систему через SSH обычно считается плохой практикой безопасности во всей индустрии технологий. Вместо этого вы можете выполнять чувствительные административные

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить DokuWiki на Ubuntu 16.04 LTS

Как установить DokuWiki на Ubuntu 16.04 LTS

Используете другую систему? DokuWiki - это вики-программа с открытым исходным кодом, написанная на PHP, для которой не требуется база данных. Хранит данные в текстовых файлах. DokuWik

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Введение Цель этого руководства - избавиться от общедоступных соединений SSH и общедоступных RDP. Поместив все это за очень удобный клиент HTML5

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

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

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

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше