Как установить 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

Изучение 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. Прочтите эту статью, чтобы узнать больше