Introduction
Snipte-IT の公式インストール手順 Installation が古いのと、 Laravel に関する暗黙知を要求されたことにより、かなり時間を無駄にしたので備忘録。
PHP のバージョンの都合や OS バージョンの都合があるので順番にやっていく。
How to do?
1. 移行先のインストール
まず、移行元と同じバージョンの環境を構築する。
手順は簡単。
master ブランチは危なくて使えないので適切なリリースを選択してクローンし、 snipe-it.sh
を修正する。
面倒なことにどのブランチを利用しようとしても、常に master ブランチをチェックアウトする仕様になっているのが最悪。
1 | $ git clone -b v4.9.5 https://github.com/snipe/snipe-it ~/snipe-it |
ログが長いので質問だけ記載。何もない場合はそのまま Enter
を押下している。
1 | Q. What is the FQDN of your server? (VM999): |
2. バックアップの復元
移行元の環境でバックアップを実行し、zip に含まれる下記のファイルおよびフォルダを移行先の任意のディレクトリに展開。
var\www\snipeit\.env
var\www\snipeit\public
var\www\snipeit\storage\private_uploads
var\www\snipeit\storage\oauth-private.key
var\www\snipeit\storage\oauth-public.key
db-dumps¥mysql-snipeit.sql
移行先の、上記を展開したディレクトリに移動し、下記を実行
1 | $ sudo cp -Rf private_uploads/* /var/www/snipeit/storage/private_uploads |
この時点ですでに移行先の Snipe-IT が動作しているので確認しておく。
3. oauth-private.key と oauth-public.key の再生成 (オプション)
自分の場合だけなのか、これらのファイルがサイズ 0 になっていた。
Snipe-IT の v5.1.7
(正確にはコミットID 7d1c2199ed912982631511bda2ccb9e536ac3830
) 以降にバージョンアップすると表示がおかしくなるので、下記を実行し、鍵を再生成する。
1 | $ cd /var/www/snipeit && sudo -u snipeitapp env \ |
4. バージョンアップ
以下を実行
1 | $ cd /var/www/snipeit && sudo -u snipeitapp env \ |
ログが長いので質問だけ記載。何もない場合はそのまま Enter
を押下している。
1 | Do you trust "kylekatarnls/update-helper" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?] |
5. 動かない対処
自分は下記に遭遇。
500 エラー何も出ない
バージョンアップ時に /var/www/snipeit/storage/logs/laravel.log
に書き込めないみたいなエラーが出ていたので、下記で権限を与えた。
1 | $ sudo chmod 777 /var/www/snipeit/storage/logs/laravel.log |
これでもまだ動かないので、エラーログをチェックすると
production.ERROR: Symfony\Component\Debug\Exception\FatalErrorException: Uncaught ErrorException: file_put_contents(/var/www/snipeit/storage/framework/cache/cf/90/cf906e7195218453e4ff6f1bdcdc6b2d9f6cae71): failed to open stream: Permission denied in /var/www/snipeit/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:133
というエラーがあったので、下記で権限を与えた。
1 | $ sudo chmod -R 777 /var/www/snipeit/storage/framework/cache |
これで動くようになった。
バックアップが動かない
バックアップ画面で下記のエラー。
Backup failed because: unlink(/var/www/snipeit/storage/app/backup-temp/temp/db-dumps/mysql-snipeit.sql): Permission denied. とあるが、公式に Issue Manual Backup Failing #8080 が上がっている。
権限の問題なので、ディレクトリの権限を変更すればよいのだが、CLI でバックアップを実行しても良い。
1 | $ cd /var/www/snipeit && sudo -u snipeitapp env \ |