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

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


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

  1. Шаг 1. Установите Nginx
  2. Шаг 2. Установка и настройка сервера MariaDB
  3. Шаг 3. Установка и настройка PHP7.0-FPM
  4. Шаг 4. Установите и настройте Invoice Ninja
  5. Шаг 5. Настройка SSL и виртуального хоста
  6. Шаг 6. Завершение установки и тестирование
  7. Справочник

Invoice Ninja — это веб-приложение с открытым исходным кодом для выставления счетов, платежей, отслеживания рабочего времени и многого другого. Вы можете создавать счета онлайн за считанные секунды, взаимодействовать с платежными шлюзами, такими как Stripe, PayPal, WePay и другими. Invoice Ninja может показать вам предварительный просмотр счета в формате PDF. Вы можете легко изменить логотип компании в шаблонах самостоятельно. Invoice Ninja основан на PHP, построен на Laravel Framework и может быть установлен на Linux и Windows.

В этом уроке я покажу вам, как установить Invoice Ninja на Ubuntu 16.04. Я буду использовать Nginx в качестве веб-сервера и MariaDB в качестве системы базы данных.

Предпосылка

  • Сервер Ubuntu 16.04.
  • Привилегии root.

Шаг 1 — Установите Nginx

На этом этапе мы установим веб-сервер Nginx. Подключитесь к своему серверу с помощью своей учетной записи root ssh (или войдите в систему с другим пользователем и используйте sudo -s, чтобы стать root) и обновите репозиторий.

ssh 
apt-get update

Установите Nginx с помощью команды apt ниже:

apt-get install -y nginx

Когда установка nginx будет завершена, запустите Nginx и добавьте его для запуска во время загрузки.

systemctl start nginx
systemctl enable nginx

Убедитесь, что nginx запущен. Проверьте порт, используемый nginx, порт веб-сервера по умолчанию — 80.

netstat -plntu

Шаг 2 — Установите и настройте сервер MariaDB

После установки Nginx нам нужно установить в систему пакет mariadb-server. Он доступен в репозитории Ubuntu. Установите mariadb-server и его зависимости с помощью приведенной ниже команды.

apt-get install -y mariadb-server

Когда установка будет завершена, запустите службу mariadb и включите ее запуск во время загрузки с помощью этих команд systemctl.

systemctl restart mysql
systemctl enable mysql

MariaDB запущен, теперь вы можете установить пароль root для mariadb с помощью команды ниже.

mysql_secure_installation

Установите новый корневой пароль MariaDB.

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 от имени пользователя root.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Вы увидите оболочку MySQL, когда все заработает правильно.

Теперь нам нужно создать новую базу данных и нового пользователя для Invoice Ninja. Я создам новую базу данных с именем ninjadb, нового пользователя ninja с паролем aqwe123. Пожалуйста, выберите другой и безопасный пароль для вашей установки!

Создайте их с помощью запроса mysql ниже. Создайте новую базу данных, создайте нового пользователя и пароль, предоставьте базу данных новому пользователю с паролем.

create database ninjadb;
create user identified by 'aqwe123';
flush privileges;

Установили MariaDB и создали новую базу данных и пользователя для Invoice Ninja.

Шаг 3 — Установите и настройте PHP7.0-FPM

Invoice Ninja основан на PHP, поэтому нам нужно установить PHP в систему. Мы будем использовать PHP7.0-FPM для этой установки Invoice Ninja.

Установите PHP7.0-FPM и другие расширения PHP, необходимые для Invoice Ninja, с помощью приведенной ниже команды.

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

После установки перейдите в каталог конфигурации PHP и отредактируйте файл php.ini.

cd /etc/php/7.0/
vim fpm/php.ini

Раскомментируйте строку CGI ниже и измените значение на 0.

cgi.fix_pathinfo=0

Сохранить и выйти.

Отредактируйте файл php.ini в каталоге cli.

vim cli/php.ini

Раскомментируйте строку CGI ниже и измените значение на 0.

cgi.fix_pathinfo=0

Сохранить и выйти.

Затем запустите PHP7.0-FPM и включите его во время загрузки.

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

По умолчанию PHP7.0-FPM работает с файлом сокета, проверьте его с помощью приведенной ниже команды, и вы увидите файл сокета PHP, как показано на снимке экрана.

netstat -pl

PHP7.0-FPM и все расширения, необходимые для Invoice Ninja, установлены.

Шаг 4 — Установите и настройте Invoice Ninja

На этом этапе мы загрузим и настроим Invoice Ninja. Во-первых, установите unzip в вашей системе.

apt-get install -y unzip

Перейдите в каталог /var/www и загрузите исходный код Invoice Ninja с помощью команды wget.

cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip

Извлеките ZIP-файл Invoice Ninja и перейдите в каталог ninja.

unzip ninja-v3.1.0.zip
cd ninja/

Для проекта Laravel нам нужно установить менеджер зависимостей композитора для PHP. Он доступен в репозитории Ubuntu, поэтому мы можем установить его с помощью команды apt.

apt-get install -y composer

Затем установите зависимости Invoice Ninja с помощью команды композитора ниже.

composer install --no-dev -o

  • --no-dev : отключает установку пакетов require-dev.
  • -o : оптимизировать автозагрузчик во время дампа автозагрузчика

Когда установка зависимостей будет завершена, скопируйте файл .env и отредактируйте его с помощью vim.

cp .env.example .env
vim .env

Измените значение настроек базы данных ниже.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Сохранить и выйти.

Затем отредактируйте конфигурацию базы данных в каталоге config.

vim config/database.php

Мы используем базу данных MariaDB/MySQL, перейдите к строке MySQL 55.

'database'  => env('DB_DATABASE', 'ninjadb'),
'username'  => env('DB_USERNAME', 'ninja'),
'password'  => env('DB_PASSWORD', 'aqwe123'),

Замените пароль на тот, который вы установили для пользователя ниндзя!

Сохранить и выйти.

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

php artisan migrate

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

Затем заполните базу данных всеми записями.

php artisan db:seed

Введите yes и нажмите Enter для подтверждения.

Создайте новый ключ приложения для проекта Laravel Invoice Ninja.

php artisan key:generate

Вы увидите ключ приложения.

Отредактируйте файл app.php с помощью vim.

vim config/app.php

Перейдите к строке APP_KEY 85 и вставьте сгенерированный нами ключ.

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

Сохранить и выйти.

Наконец, измените владельца каталога /var/www/ninja на пользователя и группу www-data.

cd /var/www/
chown -R www-data:www-data ninja/

Invoice Ninja настроен и готов к установке.

Шаг 5. Настройте SSL и виртуальный хост

На этом этапе мы создадим файл SSL-сертификата с помощью команды OpenSSL и создадим новую конфигурацию виртуального хоста для Invoice Ninja. Если вы работаете на действующем сервере, вы можете использовать бесплатный SSL от Lets Encrypt вместо создания самозаверяющего SSL-сертификата с помощью OpenSSL.

Создайте новый каталог сертификатов для файлов SSL.

mkdir -p /etc/nginx/cert/

Запустите команду openssl ниже, чтобы сгенерировать файлы сертификатов.

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

Измените разрешение файлов сертификатов на 600.

chmod 600 /etc/nginx/cert/*

Затем перейдите в каталог Nginx и создайте новый файл конфигурации виртуального хоста с именем ninja.

cd /etc/nginx/
vim sites-available/ninja

Вставьте конфигурацию виртуального хоста ниже.

server {
    # Your Domain Name - hakase-labs.co
    listen      80;
    server_name ninja.co www.ninja.co;

    # Rewrite redirect to https
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    # Your Domain Name - hakase-labs.co
    listen      443 default;
    server_name ninja.co www.ninja.co;

    # Enable SSL for Invoice Ninja
    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;

    # Invoice Ninja web root files
    root /var/www/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:/run/php/php7.0-fpm.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;
    }
}

Сохранить и выйти.

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

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

Теперь перезапустите веб-сервер nginx.

systemctl restart nginx

Настройка виртуального хоста Invoice Ninja завершена.

Шаг 6 - Завершение установки и тестирования

Откройте веб-браузер и введите URL-адрес Invoice Ninja: ninja.co. Вы будете перенаправлены на страницу подключения и настройки https.

Введите «Настройки приложения», «Подключение к базе данных», «Настройки электронной почты», «Сведения о пользователе» и проверьте TOS Invoice Ninja.

Нажмите «Отправить», и вы будете перенаправлены на страницу входа в Invoice Ninja.

Введите адрес электронной почты и пароль, затем нажмите ВХОД.

Вы увидите панель инструментов Invoice Ninja.

Страница настроек счета-фактуры Ninja.

Invoice Ninja, установленный с помощью Nginx и MariaDB в Ubuntu 16.04.

Ссылка

  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx