このチュートリアルでは、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 Design
、white-label
をクリックします 下部にあるリンクから購入してください。
結論
このチュートリアルが、Ubuntu20.04サーバーにInvoiceNinjaをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂