Ubuntu 16.04にSnipe-ITをインストールする方法

前書き

IT業界では、「資産管理」は、買収、保守、保管、廃棄を含むライフサイクル全体を通じて資産を追跡するプロセスです。 特定の資産は異なりますが、焦点は一般に、個々のハードウェアまたはソフトウェア、ライセンス、およびデジタルアートのようなファイルベースのリソースにあります。

Snipe-IT-IT資産管理専用に設計された無料のオープンソースアプリケーションは、ライセンス、アクセサリ、消耗品、コンポーネントを追跡するためのWebベースのインターフェースを提供します。 Snipe-ITには、構成可能なグループレベルの権限、カスタマイズ可能なレポート機能、およびコマンドラインまたはサードパーティアプリケーションからSnipe-ITに接続、管理、拡張するためのJSON REST APIを備えたユーザーベースのアカウントが含まれます。

このチュートリアルでは、Snipe-ITをダウンロード、インストール、構成してから、Snipe-ITに初めてログインするための管理ユーザーアカウントを作成します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • このhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04初期サーバーセットアップチュートリアル]に従ってセットアップされた1つのUbuntu 16.04サーバー(sudo non- rootユーザーとファイアウォール。

  • https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 [このLEMPインストールガイド]に従って構成されたLEMPスタック]。

  • サーバー用に設定された次のDNSレコード。 追加方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このホスト名チュートリアル]を参照してください。

  • サーバーのパブリックIPアドレスを指す「++」を持つAレコード。

  • サーバーのパブリックIPアドレスを指す「+ www。+」を持つAレコード。

  • https://www.digitalocean.com/community/tutorials/how-to-set-up-let-s-encrypt-with-nginx-server-blocks-on-ubuntu-16-に従ってSSL証明書で保護されたNginx 04 [この設定は、Ubuntu 16.04チュートリアルでNginxサーバーブロックで暗号化しましょう]。 Nginxセットアップチュートリアルのステップ4でオプション2、「+ Redirect +」を選択してください。これにより、Snipe-ITインストールでHTTPSへの自動リダイレクトが提供されます。

ステップ1-サーバーの準備

Snipe-ITをダウンロードする前に、いくつかの追加のPHPライブラリをインストールし、MySQLデータベースとSnipe-ITがデータの保存に使用するデータベースユーザーを作成して、サーバーを準備します。

Snipe-ITはhttps://laravel.com [Laravel PHPフレームワーク]上に構築されているため、追加のPHPライブラリのインストールと管理にはhttps://getcomposer.org/[Composer依存関係マネージャー]が必要です。

`+ apt-get `を使用して、Zipアーカイブからファイルを抽出するのに必要なユーティリティである ` composer `と ` unzip +`をインストールします。

sudo apt-get install composer unzip

次に、Snipe-ITが依存する追加のPHPモジュールをインストールします。

sudo apt-get install php7.0-mbstring php7.0-xml php7.0-mcrypt php7.0-gd php7.0-zip php7.0-curl php7.0-bcmath

追加のパッケージは、PHPに以下を提供します。

  • php7.0-mbstring-256文字で表現できない言語を処理するためのhttp://php.net/manual/en/book.mbstring.php [マルチバイト文字列モジュール]

  • php7.0-xml-https://www.digitalocean.com/community/tutorials/understandingを介してXMLドキュメントを操作するためのhttp://php.net/manual/en/book.dom.php[DOMモジュール] -the-dom-tree-and-nodes [ドキュメントオブジェクトモデル(DOM)] API、XMLをオブジェクトに変換するためのhttp://php.net/manual/en/book.simplexml.php[SimpleXMLモジュール]プロパティセレクタと配列イテレータ、https://en.wikipedia.org/wiki/WDDX [のデータを交換するためのhttp://php.net/manual/en/book.wddx.php[WDDXモジュール] Web分散データ交換(WDDX)]形式、XMLドキュメントを解析するためのhttp://php.net/manual/en/book.xml.php[XML Parserモジュール]、およびhttp://php.net/manual/ ja / book.xsl.php [XSLモジュール] XSLT変換を実行するため

  • php7.0-mcrypt-https://en.wikipedia.org/wiki/Block_cipher [ブロック暗号アルゴリズム]を操作するためのhttp://php.net/manual/en/book.mcrypt.php[Mcryptモジュール]

  • php7.0-gd-画像処理用のhttp://php.net/manual/en/book.image.php[GDモジュール]

  • php7.0-zip-Zipで圧縮されたアーカイブを操作するためのhttp://php.net/manual/en/book.zip.php[Zipモジュール]

  • php7.0-curl-http://php.net/manual/en/book.curl.php [クライアントURLライブラリモジュール]。さまざまなプロトコルを介してサーバーに接続し、サーバーと通信します。

  • php7.0-bcmath-http://php.net/manual/en/book.bc.php[BCMath Arbitrary Precision Mathematics module]は、小数2147483647までの任意のサイズと精度の数値を処理します。

ここで、コマンドラインの「+ mysql」ユーティリティを使用して、* root *データベースユーザーとしてMySQLにログインします。

mysql -u root -p

localhostに「127.0.0.1」という* snipeit *という名前の新しいMySQLユーザーを作成し、ユーザーにパスワードを割り当てます。

create user @127.0.0.1 identified by '';

次に、Snipe-ITがデータを保存する「+ snipeitdb +」という名前のデータベースを作成します。

create database ;

`+ snipeitdb +`データベースのすべてのテーブルに対するすべての権限を* snipeit *ユーザーに付与し、Snipe-ITがデータベースで必要なアクションを実行する権限を持つようにします。

grant all on .* to @127.0.0.1;

最後に、 `+ flush privilege +`コマンドで付与テーブルをリロードして変更を有効にし、ユーティリティを終了します。

flush privileges;
exit;

サーバーには、Snipe-ITが適切に機能するために必要な追加のPHPライブラリとMySQLデータベースがあるので、Snipe-IT自体をダウンロードして構成しましょう。

ステップ2-Snipe-ITのダウンロードと構成

https://snipe-it.readme.io/docs/downloading [公式インストール手順]に従って、Gitを使用してSnipe-ITの最新バージョンをダウンロードします。 Gitは既存のディレクトリが空の場合にのみクローンを作成するため、 `+ ls +`を使用して、link:#prerequisites [Prerequisites]でSnipe-ITのNginxサーバーブロック用に構成したディレクトリのコンテンツを表示します。

ls /var/www//html/

ディレクトリが空でない場合は、https://www.digitalocean.com/community/tutorials/basic-linux-navigation-and-file-management#file-and-directory-manipulation [基本的なLinuxナビゲーションおよびファイル管理コマンド]今それをクリアします。 `+ mv `はコンテンツを別の場所に移動し、 ` rm +`はそれらを完全に削除します。

ディレクトリが空になったら、https://github.com/snipe/snipe-it [GitHubの公式リポジトリ]からSnipe-ITをダウンロードします。

git clone https://github.com/snipe/snipe-it /var/www//html/

出力は、クローン先の場所を確認し、Gitがコピーすると予想されるオブジェクトの数や、実際にコピーした数など、プロセスのリアルタイムレポートを提供します。

Output from git cloneCloning into '/var/www//html/'...
remote: Counting objects: 70975, done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 70975 (delta 20), reused 37 (delta 15), pack-reused 70897
Receiving objects: 100% (70975/70975), 67.04 MiB | 14.35 MiB/s, done.
Resolving deltas: 100% (44264/44264), done.
Checking connectivity... done.

これでSnipe-ITの完全なコピーが手に入りましたが、インストールを開始する前に、Nginxが + storage ++ public / uploads +、および `+ bootstrap / cache +`ディレクトリにアクセスできるようにする必要があります。 Snipe-ITは、キャッシュ、ログ、およびアップロードされたファイルを書き込みます。

インストールディレクトリに移動します。

cd /var/www//html/

https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions#about-users [ユーザーとグループの所有権]を再帰的に変更するには、 `+ -R `オプションとともに ` chown `を使用します3つすべてのディレクトリの「 www-data +」-Nginxのユーザーとグループ-

sudo chown -R www-data:www-data
sudo chown -R www-data:www-data
sudo chown -R www-data:www-data

次に、 `+ -R `フラグを付けて ` chmod +`を使用して再帰的にhttps://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions#understanding-mode[set permissions]を設定しますディレクトリを、所有者による読み取り、書き込み、実行可能、グループによる読み取りおよび実行可能、および世界による読み取りおよび実行可能にします。

sudo chmod -R 755
sudo chmod -R 755
sudo chmod -R 755

ファイルとディレクトリのアクセス許可がNginxに正しく設定されていれば、 `+ composer install `を実行する準備が整いました。これにより、Snipe-ITの ` composer.json `ファイルにある追加の依存関係のリストが読み込まれ、 ` / var / www // html / vendor + `。

`-no-dev +`オプションは、Snipe-ITを実行するのに必要ではないがSnipe-ITで開発を行う際に役立つ依存関係を無視するように ` composer +`に指示します。

`-preferred-source`オプションは、バージョン管理リポジトリが存在する場合、依存関係をダウンロードするように composer`に指示します。

composer install --no-dev --prefer-source

出力は、 `+ composer +`がインストールしようとする各依存関係を報告し、依存関係が正常に複製されたかどうかを示し、https://getcomposer.org/doc/articles/autoloader-optimizationのパフォーマンスを向上させる最適化された自動ロードファイルを作成して終了します。 md [Composer-backed PHPアプリケーションでのクラスの読み込み]。

Output from composer install --no-dev --prefer-sourceLoading composer repositories with package information
Installing dependencies from lock file
 - Installing symfony/finder (v3.3.10)
   Cloning 773e19a491d97926f236942484cb541560ce862d
...
Generating optimized autoload files

これで、インストールの構成を開始できます。 Snipe-ITに同梱されている `+ .env.example `ファイルのコピーを作成することから始めます。これは、Snipe-ITが環境変数と、タイムゾーン、ベースURL、ログサイズなどの設定を保存する場所です。 次に、編集のために ` .env +`を開きます。

cp .env.example .env
nano .env

以下を探してください:

env
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=null
...

`+ APP_URL `はSnipe-ITにインストールのベースURLを伝えます。 ` null +`をドメイン名に置き換えます。

env
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
...
APP_URL=
...

次に、次の行を見つけます。

env
...
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
...

ここで、リンク:#step-1-%E2%80%94-preparing-the-server [ステップ1]で作成したMySQLデータベースに接続する方法をSnipe-ITに指示します。

Snipe-ITは、ローカルホストで実行されているMySQLデータベースに接続するようにデフォルトで設定されているため、最初の2行を変更する必要はありません。

`+ DB_DATABASE `と ` DB_USERNAME +`を、リンクで作成したMySQLデータベースとデータベースユーザーの名前に置き換えます:#step-1-%E2%80%94-preparing-the-server [Step 1]、そして ` + DB_PASSWORD + `とそのデータベースユーザーに割り当てたパスワード。

`+ DB_PREFIX `はSnipe-ITのデータベースのテーブル名にカスタムプレフィックスを追加します。 この設定は必須ではありませんが、デフォルトのデータベーステーブル名に依存する自動化された攻撃を阻止する場合があります。 カスタムプレフィックスを追加する場合を除き、この設定をデフォルトの ` null +`値のままにします。

env
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
DB_PREFIX=null

ファイルを閉じて保存します。

次に、 `+ artisan migrate `を使用して、MySQLにSnipe-ITのデフォルトのデータベーススキーマを設定します。 このコマンドは、 ` / var / www // html / database / migrations / +`にあるファイルを使用してhttps://laravel.com/docs/5.5/migrations[database migration]を実行するようLaravelに指示します。

sudo php artisan migrate

プロンプトが表示されたら、「+ yes +」と入力して、移行を実行することを確認します。

出力には、完了した各移行の名前がリアルタイムで報告されます。

Output from php artisan migrate**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? (yes/no) [no]:
>

Migration table created successfully.
...
Migrated:  2017_11_08_123942_labels_display_company_name

最後に、 `+ artisan key:generate `を使用して、インストール用のアプリケーションキーを作成します。 Laravelはキーの値を ` .env `ファイルの ` APP_KEY +`行に書き込み、Snipe-ITはセッショントークンなどのデータを暗号化および復号化するときにキーを使用します。

php artisan key:generate

もう一度、プロンプトが表示されたら、「+ yes +」と入力して、アプリケーションキーを生成することを確認します。

終了すると、出力には生成されたキーが表示され、値が `+ .env +`ファイルに書き込まれたことがわかります。

Output from php artisan key:generate**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? (yes/no) [no]:
>

Application key [base64:rxP+jS3Q8qtM9eBktXtS/zqrrXVY1LEMxoZkbV35Al0=] set successfully.

インストールと設定が完了したら、Nginxを修正してSnipe-ITを提供します。

ステップ3-Nginxの構成

WebブラウザでSnipe-ITを起動する前に、まずNginxをSnipe-ITのルートWebアプリケーションディレクトリにポイントし、着信リクエストをSnipe-ITのリクエストハンドラにリダイレクトする必要があります。

Snipe-ITのNginxサーバーブロック用に作成した構成ファイルを開くことから始めます。

sudo nano /etc/nginx/sites-available/

サーバーブロックのルートディレクトリを設定するディレクティブを探します。

/etc/nginx/sites-available/example.com

server {
   ...
   root /var/www//html;
   ...
}

Snipe-ITのWebアプリケーションファイルは、GitHubからプロジェクトを複製したときに自動的に作成された `+ public `ディレクトリにあります。 Nginxを変更して、このサーバーブロックのルートディレクトリとして「 public +」を使用します。

/etc/nginx/sites-available/example.com

server {
   ...
   root /var/www//html/;
   ...
}

次に、デフォルトのロケーションブロックを見つけます。

/ etc / nginx / sites-enabled / snipe-it

server {
   ...
   location / {
       try_files $uri $uri/ =404;
   }
   ...
}

このブロックを変更して、すべてのリクエストをSnipe-ITのリクエストハンドラに渡して処理します。

/ etc / nginx / sites-enabled / snipe-it

server {
   ...
   location / {
       try_files $uri $uri/
   }
   ...
}

ファイルを保存して閉じます。

Nginxを再起動する前に、新しい構成をテストします。

sudo nginx -t

出力は、 `+ syntax is ok +`であることを報告するはずです。 表示されない場合は、画面上のメッセージに従ってください。

次に、Nginxを再起動して変更を適用します。

sudo systemctl reload nginx

最後に、Nginxがバックアップおよび実行されていることを確認します。

sudo systemctl status nginx

出力は、サービスが `+ active(running)+`であることを示す必要があります。 解決しない場合は、続行する前に前の手順に戻って問題を解決します

Nginxが完全に構成されたので、Snipe-ITのWebセットアップユーティリティにログインしてインストールを完了します。

手順4-プリフライトユーティリティでSnipe-ITを設定する

インストールを完了するには、Webブラウザで「+ https:// +」を指定します。 これにより、Snipe-ITの* Pre-Flight Utility *の*ステップ1 *に進みます。Snipe-ITはインストールのクイックテストを実行して、すべてが正しく構成されていることを確認します。

この画面には、プリフライト*がテストした各設定、設定のテスト結果、および設定を説明する短いメモを示す表が表示されます。 *有効*列の緑色のチェックマークは、設定が正しいことを示します。 設定がピンク色で強調表示され、*有効*列に赤い X *のマークが付いている場合、その設定に問題があることを示しています。 続行する前に、問題を解決するためにSnipe-ITの指示に従ってください。

電子メール用にSnipe-ITを設定していないため、画面の右下隅にある青色の[次へ:データベーステーブルの作成]ボタンをクリックして、インストールを続行できます。

image:http://assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-configuration-check2.png [Snipe-ITプリフライト:構成チェック]

  • Pre-Flight Step 2 で、Snipe-ITはデータベースをチェックし、必要に応じて移行を実行します。 リンクで `+ artisan +`を使用してすでに手動でデータベースを移行したため、#step-3-%E2%80%94-configuring-nginx [このチュートリアルのステップ3]、 Pre-Flight によりデータベースが通知されます*すでにセットアップされ、移行するものがありません*。

画面の右下にある青色の[次へ:ユーザーの作成]ボタンを押します。

image:http://assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-create-database-tables.png [Snipe-ITプリフライト:データベーステーブルの作成]

  • Pre-Flight Step 3 *で、Snipe-ITはいくつかの一般的なアプリケーション設定を入力し、最初の管理ユーザーアカウントを作成するように求めます。

[サイト名]フィールドに、Snipe-ITが各画面の上部に表示するラベルを入力します。 これはあなたの会社の名前かもしれませんし、* Sammy’s Asset Management *のようなもっとわかりやすい名前かもしれません。

  • Email Domain フィールドに、Snipe-ITが送信メールに使用するドメインを入力し、 Email Format フィールドで、Snipe-ITが送信メッセージの To:*ヘッダーをフォーマットする方法を選択します。

*名*および*姓*フィールドに名前を入力し、*メール*フィールドにメールアドレスを入力します。

最後に、* Username フィールドにアカウントに関連付けるユーザー名を入力し、 Password *フィールドに使用するパスワードを入力します。 続行する前に、必ず[パスワードの確認]フィールドに同じパスワードを入力し、資格情報を書き留めてください。 Snipe-ITにログインするには両方が必要です。

このアカウントは自分用に作成しているので、[上記のメールアドレスに資格情報をメールで送信]をオフのままにしておくことができます。

すべての情報を入力したら、画面の右下にある青い[次へ:ユーザーを保存]ボタンをクリックします。

image:http://assets.digitalocean.com/articles/how-to-install-snipe-it/pre-flight-create-admin-user.png [Snipe-IT Pre-Flight:Create Admin User]

  • Pre-Flight *の*ステップ4 *で、Snipe-ITは入力した一般的なアプリケーション設定を保存し、新しい管理ユーザーを作成して、メインダッシュボードにログインします。

image:http://assets.digitalocean.com/articles/how-to-install-snipe-it/default-dashboard.png [Snipe-IT:Default Admin Dashboard]

この時点で、インストールは完了し、Snipe-ITを使用して自分またはクライアントのIT資産を管理できます。

結論

この記事では、LEMPスタックを設定し、Let’s Encrypt TLS / SSL証明書でNginxを保護し、Snipe-ITをインストールして構成し、管理ユーザーアカウントを作成し、メインのSnipe-ITダッシュボードにログインしました。

Snipe-ITへのアセットの追加と編集の詳細については、https://snipe-it.readme.io/docs/managing-assets [アセット管理の公式ガイド]をご覧ください。

Snipe-ITでユーザーアカウントを操作する方法については、https://snipe-it.readme.io/docs/managing-users [ユーザー管理に関する公式ドキュメント]を参照してください。

または、他の質問については、https://snipe-it.readme.io/docs/overview [公式のSnipe-ITユーザーマニュアル]をご覧ください。

Related