こちらの資産管理システムSnipe-IT、使っていけば行くほど「これは出先からでも参照したい」と実感。
なので、既にredmineが稼働しているインスタンスに同居させました。
詳細手順は以下のとおりです。
前提
以下の環境で稼働しています。
Ubuntu 20.04 Apache 2.4 Ruby 2.7 MySQL 8系
下準備
既に稼働しているインスタンスとDNSに、サブドメインを指定します。 そのサブドメインは既に稼働しているインスタンスのIPと紐づけます。
PHPとモジュールを追加します。
sudo add-apt-repository ppa:ondrej/php
sudo aptitude update
sudo aptitude upgrade
sudo apt install php7.4
# バージョンを明示しないと、このあとのモジュールとの兼ね合いで失敗しました
sudo apt install php7.4-{opcache,pdo,bcmath,calendar,ctype,fileinfo,ftp,gd,intl,json,ldap,mbstring,mysqli,posix,readline,sockets,bz2,tokenizer,zip,curl,iconv,phar,xml}
# Web上のマニュアルのとおりに指定しましたが、インストール時に「xml」を入れるよう指示がありました
sudo systemctl restart apache2
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' with grant option;
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 -pi .env.example .env
sudo vi .env
設定ファイル内容
APP_URL=設定したURL
APP_TIMEZONE='Asia/Tokyo'
DB_CONNECTION=mysql
DB_HOST=localhost # 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
(オプション)Gmailと連携をさせます。
先程の.envの以下の箇所を編集します。
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=Gmailアドレス
MAIL_PASSWORD='Gmailのアプリパスワード'
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDR=Gmailアドレス
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=Gmailアドレス
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
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
Snipe-ITのバーチャルサイトを設定します。
cd /etc/apache2/sites-available
vi snipe-it.conf
snipe-it.conf内容
<VirtualHost *:80>
ServerName 前準備で設定したドメイン
DocumentRoot /var/www/html/snipe-it/public
<Directory /var/www/html/snipe-it/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
設定を反映します。
a2ensite snipe-it.conf
apache2ctl configtest
# Syntax OKを確認
systemctl restart apache2
設定後、前準備で指定したURLにアクセスします。
プレフライトチェックが走れば問題ありません。 let's encryptが設定済みの場合は、最初にこのドメイン用のcertbotを設定します。
これで、Lightsailに2つのWebサービスを稼働させることができました。