웹사이트 검색

Ubuntu 16.04에 인보이스 닌자를 설치하는 방법


이 페이지에서

  1. 1단계 - Nginx 설치
  2. 2단계 - MariaDB 서버 설치 및 구성
  3. 3단계 - PHP7.0-FPM 설치 및 구성
  4. 4단계 - Invoice Ninja 설치 및 구성
  5. 5단계 - SSL 및 가상 호스트 구성\n
  6. 6단계 - 설치 및 테스트 완료
  7. 참조

Invoice Ninja는 인보이스 발행, 결제, 시간 추적 등을 위한 웹 기반 오픈 소스 소프트웨어입니다. 몇 초 만에 온라인으로 인보이스를 생성하고 Stripe, PayPal, WePay 등과 같은 결제 게이트웨이와 상호 작용할 수 있습니다. Invoice Ninja는 PDF 형식의 실시간 송장 미리보기를 보여줄 수 있습니다. 템플릿에서 회사 로고를 직접 쉽게 변경할 수 있습니다. Invoice Ninja는 PHP를 기반으로 하고 Laravel 프레임워크로 빌드되며 Linux 및 Windows에 설치할 수 있습니다.

이 튜토리얼에서는 Ubuntu 16.04에 Invoice Ninja를 설치하는 방법을 보여줍니다. Nginx를 웹 서버로 사용하고 MariaDB를 데이터베이스 시스템으로 사용하겠습니다.

전제 조건

  • 우분투 16.04 서버.
  • 루트 권한.\n

1단계 - Nginx 설치

이 단계에서는 Nginx 웹 서버를 설치합니다. ssh 루트 계정으로 서버에 연결하고(또는 다른 사용자로 로그인하고 sudo -s를 사용하여 루트가 됨) 저장소를 업데이트합니다.

ssh 
apt-get update

아래의 apt 명령으로 Nginx를 설치합니다.

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가 시작되었으므로 이제 아래 명령을 사용하여 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 셸에 연결해 봅니다.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

모든 것이 올바르게 작동하면 MySQL 쉘이 표시됩니다.

이제 Invoice Ninja를 위한 새 데이터베이스와 새 사용자를 만들어야 합니다. 암호가 aqwe123인 새 사용자 ninja인 ninjadb라는 새 데이터베이스를 생성하겠습니다. 설치를 위해 다른 안전한 암호를 선택하십시오!

아래의 mysql 쿼리로 생성합니다. 새 데이터베이스를 만들고 새 사용자와 암호를 만들고 암호를 사용하여 새 사용자에게 데이터베이스를 부여합니다.

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

MariaDB가 설치되었고 Invoice Ninja를 위한 새 데이터베이스와 사용자가 생성되었습니다.

3단계 - PHP7.0-FPM 설치 및 구성

Invoice Ninja는 PHP를 기반으로 하므로 시스템에 PHP를 설치해야 합니다. 이 Invoice Ninja 설치에는 PHP7.0-FPM을 사용합니다.

아래 명령을 사용하여 Invoice Ninja에 필요한 PHP7.0-FPM 및 기타 PHP 확장을 설치합니다.

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

저장 및 종료.

cli 디렉토리에서 php.ini 파일을 편집합니다.

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 디렉토리로 이동하고 wget 명령으로 Invoice Ninja 소스 코드를 다운로드합니다.

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

Invoice Ninja zip 파일을 추출하고 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 패키지 설치 비활성화\n
  • -o : 오토로더 덤프 중 오토로더 최적화\n

의존성 설치가 완료되면 .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

응용 프로그램 키가 표시됩니다.

vim으로 app.php 파일을 편집합니다.

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 및 가상 호스트 구성

이 단계에서는 OpenSSL 명령으로 SSL 인증서 파일을 생성하고 Invoice Ninja에 대한 새 가상 호스트 구성을 생성합니다. 라이브 서버에 있는 경우 OpenSSL로 자체 서명된 SSL 인증서를 생성하는 대신 Lets Encrypt의 무료 SSL을 사용할 수 있습니다.

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;
    }
}

저장 및 종료.

ninja 가상 호스트를 활성화하고 Nginx 구성을 테스트하여 오류가 없는지 확인하십시오.

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

이제 nginx 웹 서버를 다시 시작하십시오.

systemctl restart nginx

Invoice Ninja 가상 호스트 구성이 완료되었습니다.

6단계 - 설치 및 테스트 완료

웹 브라우저를 열고 Invoice Ninja URL(ninja.co)을 입력합니다. https 연결 및 설정 페이지로 리디렉션됩니다.

애플리케이션 설정, 데이터베이스 연결, 이메일 설정, 사용자 세부 정보를 입력하고 Invoice Ninja TOS를 확인하십시오.

제출을 클릭하면 Invoice Ninja의 로그인 페이지로 리디렉션됩니다.

이메일과 비밀번호를 입력하고 LOGIN을 누릅니다.

인보이스 닌자 대시보드가 표시됩니다.

인보이스 닌자 설정 페이지.

Ubuntu 16.04에 Nginx 및 MariaDB와 함께 설치된 인보이스 닌자.

참조

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