環境

前提

  • ドメインで名前解決できること
  • そのドメインに即した証明書があること

さっくりとした手順

  1. Snipe-IT用のDBを作成します。
  2. Snipe-ITをダウンロードします。
  3. Composerでインストールを行います。
  4. Apacheの設定を行います。
  5. Web画面からインストールを行います。

手順

  • Web画面以外はSSH/ターミナルで操作を行います。
  • Apacheの実行ユーザはwww-dataです。自分の環境に合わせます。

MySQLでDB作成

  • コンソールログイン
mysql -u root -p
  • DB作成
CREATE DATABASE snipeit character set utf8mb4;
CREATE USER 'snipeit'@'localhost' IDENTIFIED BY 'password';

この'password'は任意のパスワードに変更してください

GRANT ALL ON snipeit.* TO 'snipeit'@'localhost';
flush privileges;
exit
  • DB作成確認
  • 設定したパスワードでログインできることを確認
mysql -u snipeit -p
  • DB確認
SHOW DATABASES;

snipeitがあることを確認

  • ログアウト
exit

プログラム配置

  • Webサイト配置ディレクトリに移動
cd /home/www-data && pwd

自分の環境に合わせます。

  • ダウンロード
sudo -u www-data git clone https://github.com/snipe/snipe-it snipe-it
  • ディレクトリ移動
cd snipe-it
  • .envを作成
sudo cp -pi .env.example .env
  • .env修正

※教義・信仰に沿ったエディタで編集します。※

  • 修正箇所
APP_URL=http://ドメイン名

snipe-itを動かすドメイン名です。

APP_TIMEZONE='Asia/Tokyo'

タイムゾーンを指定します。

DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD= 

DB名/ユーザ名/パスワードは上述したDB作成で指定したものです。

修正後、.envを保存します。

composerでsnipe-itインストール

  • 依存関係のアップデート
sudo -u www-data composer update --no-plugins --no-scripts
  • インストール
sudo -u www-data composer install --no-dev --prefer-source --no-plugins --no-scripts
  • APPキー作成
sudo -u www-data php artisan key:generate

途中のプロンプトには「yes」を入力します。

バーチャルサイト作成

  • ログ格納ディレクトリを作成
sudo mkdir -p /var/log/snipeit

※自分の環境に合わせます。

  • ログ格納ディレクトリの権限変更
sudo chown -R www-data:www-data /var/log/snipeit
  • バーチャルファイル作成
  • Snipe-IT用の設定ファイル作成
  • 【】の箇所は、自分の環境に合わせて修正してください。
cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/snipeit.conf
<VirtualHost *:80>
    # ドメイン名を指定します
    servername 【hoge.example.com】
    # HTTPアクセスを強制的にHTTPSにリダイレクトします
    RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    # ドメイン名を指定します
    ServerName 【hoge.example.com】
    # 上述したログディレクトリを指定します。
    CustomLog /var/log/snipeit/snipeit_access.log combined
    ErrorLog /var/log/snipeit/snipeit_error.log

    # Snipe-ITのプログラムを配置したディレクトリを指定します。
    DocumentRoot 【/home/www-data/snipe-it/public】
    <Directory 【/home/www-data/snipe-it/public】>
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>

#SSL設定
  SSLEngine on
    Protocols h2 http/1.1

    # SSL証明書を指定します
    SSLCertificateFile 【/etc/certs/hoge.example.com.crt】
    # 秘密鍵を指定します
    SSLCertificateKeyFile 【/etc/private/hoge.example.com.key】

    # 中間証明書が発行元から別ファイルで提供されている場合は、このすぐ下をコメントアウトして中間証明書を指定します
    # SSLCACertificateFile 【/etc/certs/hoge.example.com.CA.crt】

#セキュリティヘッダー付与

    Header always set Strict-Transport-Security "max-age=63072000"
    Header set X-Content-Type-Options "nosniff"
    Header always append X-Frame-Options "SAMEORIGIN"
    Header set X-XSS-Protection "1; mode=block"

</VirtualHost>

# これらのセクションはSSL暗号化強度を高めるための記述です
# </VirtualHost>の外側に書くことにご注意ください

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EC6-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
__EOF__
  • コンフィグ有効化
sudo a2ensite snipeit.conf
  • コンフィグの文法確認
sudo apache2ctl configtest

Syntax OKを確認します

  • apache再起動
sudo systemctl restart apache2.service

Web画面からの設定確認

ブラウザで

https://設定したURL

にアクセスします。

ここまで来れば目前です。ガイダンスに従って管理者情報などを入力。

このようなダッシュボードが確認できればインストール成功です。