GNU/Linux >> Linux の 問題 >  >> Ubuntu

Apache/Nginxを使用してUbuntu20.04サーバーにInvoiceNinjaをインストールする方法

このチュートリアルでは、ApacheまたはNginxWebサーバーを使用してUbuntu20.04にInvoiceNinjaをインストールする方法を示します。 InvoiceNinjaは、オープンソースの自己ホスト型請求書ソフトウェアであり、Freshbooksなどの商用オンライン請求書プラットフォームに代わる低コストのソフトウェアです。 InvoiceNinjaはホスト型の請求書サービスを提供しますが、ソフトウェアをセルフホストする場合は、以下の手順に従ってください。

InvoiceNinjaの機能

  • InvoiceNinjaを使用すると、独自のドメイン名とブランドを使用して、クライアントに請求書を送信できます。
  • 複数のビジネスの請求をすべて1つのアカウントで管理します。
  • 長期のクライアントに定期的な請求書を自動的に請求することで時間を節約します。
  • 美しい提案を簡単に作成して顧客に送信できます。
  • サードパーティのファイルを請求書に添付します。
  • プロジェクトタスクを作成して時間を追跡します。
  • 視覚的なプロジェクト管理ツールを使用して、クライアントの作業を整理および計画します。
  • クライアントがあなたとのすべての取引を一目で確認できるようにします。
  • Zapierの自動化により、請求先のアカウントと、Gmail、Googleスプレッドシート、QuickBooks Online、Slack、Pipeline、MailChimpなどの人気のアプリとの間でデータを転送できます。
  • 同じ請求書を何度も使用して、デポジットと部分的な支払いをリクエストします。
  • 事前に作成された自動リマインダーメールシーケンスを使用して、請求書の支払いが必要であることをクライアントに通知します。
  • クライアントが請求書を表示して支払うときに通知を受け取ります。
  • その他多数

前提条件

まず、512MB以上のRAMを搭載したLinuxサーバーが必要です。この特別なリンクをクリックすると、DigitalOceanで100ドルの無料クレジットを獲得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。 DigitalOceanまたはVultrでアカウントを取得したら、サーバーにUbuntu 20.04をインストールし、以下の手順に従います。

InvoiceNinjaにはPHPとMySQL/MariaDBが必要です。このチュートリアルに従うには、LAMPスタックまたはLEMPスタックをすでに設定している必要があります。まだ行っていない場合は、次のガイドのいずれかを使用してください。

  • Ubuntu 20.04にLAMP(Apache、MariaDB、PHP)スタックをインストールする方法
  • Ubuntu 20.04にLEMP(Nginx、MariaDB、PHP)スタックをインストールする方法

また、ドメイン名も必要です。これにより、クライアントはドメイン名を介して請求書を見ることができます。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。

それでは、InvoiceNinjaをインストールしましょう。

ステップ1:Ubuntu20.04サーバーにInvoiceNinjaInstallZipファイルをダウンロードする

SSH経由でUbuntu20.04サーバーにログインします。次に、次のコマンドを実行して、最新バージョンのInvoiceNinjazipファイルをサーバーにダウンロードします。

wget -O invoice-ninja.zip https://download.invoiceninja.com/

ダウンロードしたら、アーカイブを/var/www/に抽出します unzipのあるディレクトリ 。

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip invoice-ninja.zip -d /var/www/

-d オプションは、ターゲットディレクトリを指定します。 InvoiceNinjaWebファイルは/var/www/ninjaに抽出されます 。各ディレクトリをわかりやすくするために、名前をinvoice-ninjaに変更できます。 。

sudo mv /var/www/ninja /var/www/invoice-ninja

次に、このディレクトリの所有者をwww-dataに変更する必要があります Webサーバーがこのディレクトリに書き込めるようにします。

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

storageの権限も変更する必要があります ディレクトリ。

sudo chmod 755 /var/www/invoice-ninja/storage/ -R

ステップ2:MariaDBでデータベースとユーザーを作成する

次のコマンドを使用して、MariaDBデータベースサーバーにログインします。 MariaDBは現在unix_socketを使用しているため ユーザーログインを認証するプラグイン。MariaDBのrootパスワードを入力する必要はありません。 mysqlのプレフィックスを付ける必要があります sudoを使用したコマンド 。

sudo mysql

次に、請求書忍者のデータベースを作成します。このチュートリアルでは、データベースにinvoiceninjaという名前を付けます 。好きな名前を使用できます。

create database invoiceninja;

データベースユーザーを作成します。この場合も、このユーザーの好みの名前を使用できます。 your-passwordを置き換えます ご希望のパスワードを使用してください。

create user ninja@localhost identified by 'your-password';

このユーザーにinvoiceninjaに対するすべての権限を付与します データベース。

grant all privileges on invoiceninja.* to ninja@localhost;

特権をフラッシュして終了します。

flush privileges;

exit;

ステップ3:PHPモジュールをインストールする

InvoiceNinjaは現在PHP7.4をサポートしていないことに注意してください。最高の互換性を得るには、PHP7.3PPAを追加してPHP7.3をインストールすることをお勧めします。

sudo add-apt-repository ppa:ondrej/php

次に、次のコマンドを実行して、InvoiceNinjaが必要または推奨するPHPモジュールをインストールします。

sudo apt install php-imagick php7.3-fpm php7.3-mysql php7.3-common php7.3-gd php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Apache Webサーバーを使用する場合は、ApacheのPHPモジュールを無効にする必要があります。

sudo a2dismod php7.4

また、プリフォークMPMモジュールを無効にする必要があります。

sudo a2dismod mpm_prefork

mod_phpであるかどうかに関係なく、PHP-FPMを使用するには、次のコマンドを実行して3つのモジュールを有効にする必要があります。 サーバーにインストールされています。

sudo a2enmod mpm_event proxy_fcgi setenvif

次に、Apacheを再起動します。

sudo systemctl restart apache2

ステップ4:Webサーバーのセットアップ

ApacheまたはNginxWebサーバーを使用できます。

Apache

Apacheを使用する場合は、InvoiceNinjaの仮想ホストファイルを作成します。

sudo nano /etc/apache2/sites-available/invoice-ninja.conf

次のテキストをファイルに入れます。 invoice.yourdomain.comを置き換えます 請求書忍者のためのあなた自身のサブドメインで。 DNSマネージャーでドメイン名のAレコードを設定することを忘れないでください。 (webrootは/var/www/invoice-ninja/public/に設定されていることに注意してください 、/var/www/invoice-ninja/ではありません )

<VirtualHost *:80>
    ServerName invoice.yourdomain.com
    DocumentRoot /var/www/invoice-ninja/public

    <Directory /var/www/invoice-ninja/public>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log
    CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined

    Include /etc/apache2/conf-available/php7.3-fpm.conf
</VirtualHost>

ファイルを保存して閉じます。次に、この仮想ホストを有効にします。

sudo a2ensite invoice-ninja.conf

リライトモジュールを有効にする必要があります。

sudo a2enmod rewrite

変更を有効にするには、Apacheを再起動します。

sudo systemctl restart apache2

次に、invoice.yourdomain.comにアクセスします Invoice Ninjaセットアップウィザードページ(invoice.yourdomain.com/setup)にリダイレクトされます )。セットアップウィザードの代わりにデフォルトのApacheページが表示される場合は、デフォルトの仮想ホストを無効にする必要があります。

sudo a2dissite 000-default.conf

そして、Apacheを再起動します。

セットアップウィザードに情報を入力する前に、HTTPSを有効にする必要があります。これについては手順4で説明します。

Nginx

Nginxを使用する場合は、invoice-ninja.confを作成します /etc/nginx/conf.d/のファイル ディレクトリ。

sudo nano /etc/nginx/conf.d/invoice-ninja.conf

次のテキストをファイルに入れます。 invoice.yourdomain.comを置き換えます 請求書忍者のためのあなた自身のサブドメインで。 DNSマネージャーでドメイン名のAレコードを設定することを忘れないでください。 (webrootは/var/www/invoice-ninja/public/に設定されていることに注意してください 、/var/www/invoice-ninja/ではありません )

server {
    listen 80;
    listen [::]:80;
    server_name invoice.yourdomain.com;

    root /var/www/invoice-ninja/public/;
    index index.php index.html index.htm;
    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_log  /var/log/nginx/invoiceninja.access.log;
    error_log   /var/log/nginx/invoiceninja.error.log;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.3-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構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

次に、invoice.yourdomain.comにアクセスします Invoice Ninjaセットアップウィザードページ(invoice.yourdomain.com/setup)にリダイレクトされます )。セットアップウィザードに情報を入力する前に、HTTPSを有効にする必要があります。

ステップ5:HTTPSを有効にする

HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。

sudo apt install certbot

Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。

sudo apt install python3-certbot-nginx

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

Apacheを使用する場合は、CertbotApacheプラグインをインストールしてください。

sudo apt install python3-certbot-apache

そして、このコマンドを実行してTLS証明書を取得してインストールします。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

どこ

  • --nginx :nginxプラグインを使用してください。
  • --apache :Apacheプラグインを使用してください。
  • --agree-tos :利用規約に同意します。
  • --redirect :301リダイレクトでHTTPSを強制します。
  • --hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。
  • --staple-ocsp :OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。

これで、証明書が取得され、自動的にインストールされます。

ステップ6:セットアップウィザードを使用してインストールを終了する

次に、invoice.yourdomain.comにアクセスします データベース情報とSMTP設定を入力し、管理者ユーザーを作成します。

独自のメールサーバーを使用してクライアントにメールを送信する場合は、次の記事を確認して独自のメールサーバーを設定してください。 新しいクリーンなOSでiRedMailメールサーバーを実行することを強くお勧めします。他のWebアプリケーションがあるOSにiRedMailをインストールすると、失敗し、既存のアプリケーションが破損する可能性があります。

  • iRedMailを使用してUbuntu20.04でフル機能のメールサーバーを簡単にセットアップする方法

独自の電子メールサーバーを使用する場合、2つのドライバーから選択できます:SMTP およびSendmail

  • SMTPを選択します メールサーバーとInvoiceNinjaが2つの異なるホストで実行されている場合。
  • Sendmailを選択します メールサーバーとInvoiceNinjaが同じホストで実行されている場合。

SMTPを選択した場合 、以下のような設定を使用してください。

  • ホスト :mail.yourdomain.comポート :587暗号化 :TLS。そして、ユーザー名とパスワードを入力します。

Sendmailを選択した場合 、以下のような設定を使用してください。

  • ホスト :127.0.0.1ポート :25暗号化 : 無し。ユーザー名やパスワードを入力する必要はありません。

管理者ユーザーを作成したら、InvoiceNinjaにログインできます。

cronジョブの設定

定期的な請求書と電子メールのリマインダーを送信するには、Cronジョブを設定する必要があります。 rootユーザーのcrontabファイルを編集します。

sudo crontab -e

このファイルの最後に次の行を追加します。

#InvoiceNinja
0 8 * * * /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-invoices > /dev/null
0 8 * * * /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-reminders > /dev/null

ファイルを保存して閉じます。 2つのCronジョブは、毎日午前8時に実行されます。以下のように手動でジョブを実行することもできます。

sudo /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-invoices

請求書忍者ブランドの削除

デフォルトでは、請求書にはInvoice Ninjaブランドが付いています。ホワイトラベルライセンスを年間30ドルで購入して、請求書とクライアントポータルからInvoiceNinjaブランドを削除できます。 settingsに移動します ->Invoice Designwhite-labelをクリックします 下部にあるリンクから購入してください。

結論

このチュートリアルが、Ubuntu20.04サーバーにInvoiceNinjaをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂


Ubuntu
  1. Ubuntu20.04にNginxをインストールする方法

  2. Ubuntu16.04にNginxを使用してHTTPGitサーバーをインストールする方法

  3. Ubuntu20.04にNginxを使用してHTTPGitサーバーをインストールする方法

  1. Ubuntu16.04にApacheを使用してJenkinsAutomationServerをインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  1. Ubuntu18.04にApacheを使用してJenkinsAutomationServerをインストールする方法

  2. Ubuntu20.04にNginxを使用してJellyfinMediaServerをインストールする方法

  3. Apache/Nginxを使用してUbuntu20.04にFileRunをインストールする方法