GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にInvoiceNinjaをインストールする方法

Invoice Ninjaは、請求、支払い、時間追跡などを行うための無料のオープンソースWebベースのソフトウェアです。オンラインで数秒で請求書を作成し、ストライプ、PayPal、WePayなどの支払いゲートウェイと統合できます。請求書忍者は、ライブの請求書をPDFファイルとして表示したり、独自の会社のロゴを設定したり、カスタムの請求書テンプレートを使用したりできます。 Invoice NinjaはPHPに基づいており、Laravel Frameworkでビルドされ、Linux、Windows、Macにインストールできます。

このチュートリアルでは、CentOS7サーバーにInvoiceNinjaをインストールして構成する方法を説明します。 WebサーバーとしてNginxを使用し、データベースシステムとしてMariaDBを使用します。

前提条件

  • CentOS7サーバー
  • root権限
ステップ1-Nginxをインストールします

このステップでは、NginxWebサーバーをインストールします。 sshrotアカウントでサーバーに接続します。

ssh [email protected]

Nginxをインストールする前に、CentOSシステムにEpelリポジトリをインストールする必要があります。

yum -y install epel-release

これで、epelリポジトリから以下のyumコマンドを使用してNginxをインストールできます。

yum -y install nginx

インストールが完了したら、Nginxを起動し、起動時に起動できるようにします。

systemctl start nginx
systemctl enable nginx

Nginxが使用するポート(ポート80)をチェックして、Nginxが実行されていることを確認します。

netstat -plntu

注:

netstatコマンドが見つからない場合は、次のようなnet-toolsをインストールできます。

yum -y install net-tools
ステップ2-MariaDBサーバーをインストールして構成する

Nginxをインストールした後、システムにmariadb-serverをインストールする必要があります。 CentOSリポジトリで利用できます。以下のコマンドを使用して、mariadb-serverとMariaDBに必要なすべてのパッケージをインストールします。

yum install -y mariadb-server

mariadbサービスを開始し、systemctlコマンドを使用して起動時に開始できるようにします。

systemctl start mariadb
systemctl enable mariadb

MariaDBが起動し、「mysql_secure_installation」コマンドを使用して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シェルが表示されます。

次に、開いたMySQLシェルでInvoiceNinjaの新しいデータベースと新しいユーザーを作成する必要があります。 ' ninjadbという名前の新しいデータベースを作成します '、新規ユーザー'忍者 'パスワード付き'aqwe123 '。 yurのインストールには別の安全なパスワードを選択してください。

以下のMySQLクエリを使用してすべてを作成します。新しいデータベースを作成し、新しいユーザーとパスワードを作成し、パスワードを使用して新しいユーザーにデータベースアクセスを許可します。

create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;

MariaDBがインストールされ、InvoiceNinjaの新しいデータベースとユーザーが作成されました。

ステップ3-PHP7.0-FPMのインストールと構成

Invoice NinjaはPHPに基づいているため、システムにインストールする必要があります。 InvoiceNinjaのインストールにはPHP7.0-FPMを使用します。

CentOSのデフォルトリポジトリにはPHP7.0がないため、システムに新しいPHP7.0リポジトリを追加する必要があります。 webtaticリポジトリを使用します。

PHP7.0リポジトリをシステムに追加します。

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

これで、WebtaticリポジトリからInvoiceNinjaに必要なPHP7.0-FPMおよびその他のPHP拡張機能をインストールできます。

yum -y install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt php70w-curl php70w-gmp php70w-pdo

インストールが完了したら、vimでphp.ini構成ファイルを編集します。

vim /etc/php.ini

以下のcgi.fix_pathinfo行のコメントを外し、値を0に変更します。

cgi.fix_pathinfo=0

ファイルを保存してvimを終了します。

次に、PHP-FPM構成ファイルを編集します。

vim /etc/php-fpm.d/www.conf

8行目と10行目のユーザーとグループを「nginx」に変更します 'グループ。

user = nginx
group = nginx

ポートの代わりに、php-fpm用のソケットファイルを使用します。リッスン行を「/var/run/php/php-fpm.sock」に変更します '。

listen = /var/run/php/php-fpm.sock

ソケットファイルの構成、所有者、グループ、およびアクセス許可のコメントを解除します。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

366〜370行目のphp-fpm環境変数のコメントを解除します。

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

ファイルを保存してエディタを終了します。

次に、新しいPHPセッションディレクトリを作成し、所有者をnginxユーザーとグループに変更する必要があります。

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

ソケットファイル用の新しいディレクトリを作成し、nginxユーザーとグループへのアクセス許可を変更します。

mkdir -p /var/run/php/
chown -R nginx:nginx /var/run/php/

次に、PHP7.0-FPMを起動し、起動時に開始するように追加します。

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPMが開始されました。これで、以下のコマンドで確認でき、PHPソケットファイルが表示されます。

netstat -pl

PHP7.0-FPMおよびInvoiceNinjaに必要なすべての拡張機能がインストールされています。

ステップ4-請求書忍者のインストールと構成

このステップでは、InvoiceNinjaをダウンロードして構成します。まず、unzipをシステムにインストールします。

yum -y install unzip

InvoiceNinjawebrootファイル用の新しいディレクトリを作成します。

mkdir -p /var/www/
cd /var/www/

wgetコマンドで請求書忍者をダウンロードします。

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

請求書忍者zipファイルを抽出し、「忍者」に移動します 'ディレクトリ。

unzip ninja-v3.1.0.zip
cd ninja/

Laravelプロジェクトでは、PHP用の依存関係マネージャーであるcomposerをインストールする必要があります。

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

これで、composerコマンドを使用できます。

次に、以下のcomposerコマンドを使用してInvoiceNinjaの依存関係をインストールします。

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データベースを使用しています。55行目のMySQL設定に移動します。

'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キーを押して確認します。

アプリケーションキーを生成します。

php artisan key:generate

アプリケーションキーが表示されます。

app.phpファイルをvimで編集します。

vim config/app.php

APP_KEYの85行目に移動し、生成されたキーを貼り付けます(以下のキーは例です。代わりに、上記のコマンドから取得したキーを使用してください)。

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

保存して終了します。

最後に、「/ var / www/ninja」ディレクトリの所有者を「nginx」ユーザーとグループに変更します。

cd /var/www/
chown -R nginx:nginx ninja/

Invoice Ninjaが構成され、インストールの準備が整いました。

ステップ5-SSLと仮想ホストを構成する

このステップでは、opensslコマンドを使用してSSL証明書ファイルを生成し、InvoiceNinjaの新しい仮想ホスト構成を作成します。ライブサーバーを使用している場合は、Let'sEncryptの無料のSSLを使用することもできます。

SSLファイル用の新しい「cert」ディレクトリを作成します。

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.conf」という名前の新しい仮想ホスト構成ファイルを作成します。 '。

cd /etc/nginx/
vim conf.d/ninja.conf

以下に仮想ホスト構成を貼り付けます。

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:/var/run/php/php-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構成をテストし、エラーがないことを確認します。

nginx -t

NginxWebサーバーを再起動します。

systemctl restart nginx

InvoiceNinja仮想ホスト構成が作成されました。

ステップ6-SELinuxとFirewalldを設定する

SELinuxがオフの場合は、この手順をスキップして、Firewalldの構成を開始できます。このステップでは、請求書忍者用にSELinuxとFirewalldを構成します。 SELinuxのステータスを確認し、firewalldがインストールされていることを確認してください。

以下のコマンドでSELinuxのステータスを確認してください。

getenforce

SELinuxがオンの場合、「Enforcing」または「Permissive」の結果が表示されます。

次に、リポジトリからSELinux管理ツールをインストールします。

yum -y install policycoreutils-python

そして、以下のコマンドを実行して、強制モードのSELinuxでInvoiceNinjaを実行できるようにします。

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/tests(/.*)?'
restorecon -Rv '/var/www/ninja/'

次に、サーバーポートを開いて、外部からInvoiceNinjaにアクセスできるようにする必要があります。

システムにfirewalldがインストールされていることを確認してください。そうでない場合は、yumコマンドを使用してインストールできます。

yum -y install firewalld

Firewalldを起動し、起動時に起動できるようにします。

systemctl start firewalld
systemctl enable firewalld

次に、InvoiceNinjaのHTTPポートとHTTPSポートを開く必要があります。以下のコマンドを実行して、ポートを開きます。

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinuxとFirewalldが構成されています。

ステップ7-テスト

Webブラウザーを開き、請求書忍者のURL(私の場合はninja.co)を入力します。

https接続とセットアップページにリダイレクトされます。

要求された構成の詳細、アプリケーション設定、データベース接続、電子メール設定、ユーザーの詳細を入力し、請求書NinjaTOSを確認します。

[送信]をクリックします 'そして、請求書忍者のログインページにリダイレクトされます。

メールアドレスとパスワードを入力し、[ログイン]を押します '。

請求書忍者ダッシュボードが表示されます。

請求書忍者設定ページ。

Invoice Ninjaは、CentOS7のNginxおよびMariaDBとともにインストールされています。

参照
  • https://calyrium.org/post/install-invoiceninja-archlinux-nginx/
  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx

Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にNginxをインストールする方法

  3. Debian9にInvoiceNinjaをインストールする方法

  1. CentOS7にRをインストールする方法

  2. CentOS7にNginxを使用してphpMyAdminをインストールする方法

  3. CentOS8にNginxをインストールする方法

  1. CentOS8にRをインストールする方法

  2. CentOS7にMagento2.1をインストールする方法

  3. CentOS7にNginxを使用してSuiteCRMをインストールする方法