Как установить Invoice Ninja на Ubuntu 16.04
На этой странице
- Шаг 1. Установите Nginx
- Шаг 2. Установка и настройка сервера MariaDB
- Шаг 3. Установка и настройка PHP7.0-FPM
- Шаг 4. Установите и настройте Invoice Ninja
- Шаг 5. Настройка SSL и виртуального хоста
- Шаг 6. Завершение установки и тестирование
- Справочник
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