一時期試してみた『Snipe-IT』。
このときはインストールスクリプトを用いて、
- Apache
- mariaDB
- php
という状態でした。(また、このときはローカルDNSも構築していませんでした)
そこで、既にある環境にこれを追加します。
前提
- Linux: Kubuntu 20.04
- Apache
- PHP
- MySQL
- 既に以下のWebシステムを導入済み
- Zabbix
- フォトアルバムLychee
- Growi
手順
以下のサイトを参考にしました。
Ubuntu 22.04にSnipe-IT資産管理ツールをインストールする方法– VITUX
(参照先では22.04ですが、その前のバージョンでもほぼこの手順通りでした。また、参照先ではmysqlなどを導入するよう指示がありましたが、既に稼働しているため飛ばしています)
PHPインストール
sudo add-apt-repository ppa:ondrej/php
sudo apt install -y php7.4-{opcache,pdo,bcmath,calendar,ctype,fileinfo,ftp,gd,intl,json,ldap,mbstring,mysqli,posix,readline,sockets,bz2,tokenizer,zip,curl,iconv,phar}
# 参照元のコマンドでを叩くとPHPバージョンを指定するよう言われたので、原稿環境のバージョン「7.4」を加えています。
インストール後、既存サービスの設定確認
sudo systemctl restart apache2
→ 再起動後、ZabbixやLycheeが正常に稼働していることを確認しました。
Snipe-IT用のDBを作成
sudo mysql -u root -p
CREATE DATABASE snipeit_db;
CREATE USER 'snipeit'@'localhost' IDENTIFIED WITH mysql_native_password BY '任意のパスワード';
GRANT ALL PRIVILEGES ON snipeit_db.* TO 'snipeit'@'localhost';
FLUSH PRIVILEGES;
exit
Snipe-ITダウンロード
cd /var/www/html
sudo git clone https://github.com/snipe/snipe-it snipe-it
cd /var/www/html/snipe-it
Snipe-IT サーバ設定
sudo cp .env.example .env
sudo vim .env
設定ファイル内容(編集内容)
APP_URL=marazion.corn.wall
APP_TIMEZONE='JST'
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=snipeit_db
DB_USERNAME=snipeit
DB_PASSWORD=設定したパスワード
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
Composerインストール
sudo su -
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
cd /var/www/html/snipe-it/
exit
sudo composer update --no-plugins --no-scripts
sudo composer install --no-dev --prefer-source --no-plugins --no-scripts
sudo php artisan key:generate
sudo chown -R www-data:www-data /var/www/html/snipe-it
sudo chmod -R 755 /var/www/html/snipe-it
httpd仮想ファイル作成
vi /etc/apache2/sites-available/snipe-it.conf
設定ファイル内容
ここでは
- ServerNameで複数のバーチャルホストを定義
- Rewriteで強制的にhttps通信をさせる
- 書式をApache2.4に合わせる
を行っています。
<VirtualHost _default_:80>
ServerName marazion.corn.wall
#Server名は読み替えてください。(ログの場所も同じ)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:443>
ServerName marazion.corn.wall
CustomLog /var/log/apache2/marazion.corn.wall/access.log combined
ErrorLog /var/log/apache2/marazion.corn.wall/error.log
# ログの場所を別のディレクトリにしたい場合は予め作成します
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLCertificateFile /etc/certs/corn.wall.crt
SSLCertificateKeyFile /etc/private/corn.wall.key
#mkcertで取得したローカル証明書と秘密鍵
DocumentRoot /var/www/html/snipe-it/public
<Directory /var/www/html/snipe-it/public>
Options Indexes FollowSymLinks MultiViews
Require all granted
</VirtualHost>
設定ファイル反映
a2ensite snipe-it
apache2ctl configtest
# → syntaxOKを確認
systemctl restart apache2.service
反映後、上記指定したドメインにアクセスすることでpre-flight checkが走り、
しっかり動くことを確認です。