Introduction

前回 の続き。

Ubuntu 20.04 のシステム PHP は 7.4.3 であるため、Snipte-IT の V6 系からは動作しなくなる。
そのため、Ubuntu 24.04 に移行元と同じ環境を構築した後、Snipe-IT のアップグレードを実施する。

How to do?

1. 移行先のインストール

まず、移行元と同じバージョンの環境を構築する。
これも前回と同じ。

1
2
3
4
5
$ git clone -b v5.4.4 https://github.com/snipe/snipe-it ~/snipe-it
$ cd ~/snipe-it && sed -i \
-e 's|git clone https://github.com/snipe/snipe-it \$APP_PATH|git clone -b v5.4.4 https://github.com/snipe/snipe-it \$APP_PATH|' \
snipeit.sh
$ ./install.sh

ログが長いので質問だけ記載。何もない場合はそのまま Enter を押下している。

1
2
3
4
5
6
7
8
9
10
11
Q. What is the FQDN of your server? (VM999):
Q. Do you want to automatically create the database user password? (y/n) y
Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Enter password:
Q. Do you want to configure mail server settings? (y/n) n

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

移行先の、上記を展開したディレクトリに移動し、下記を実行。
Snipe-IT v5.0 からインストール先が /var/www/snipeit から /var/www/html/snipeit に変更されている点に注意。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ sudo cp -Rf private_uploads/* /var/www/html/snipeit/storage/private_uploads
$ sudo chown -R snipeitapp:www-data /var/www/html/snipeit/storage/private_uploads

$ sudo cp -Rf uploads/* /var/www/html/snipeit/public/uploads
$ sudo chown -R snipeitapp:www-data /var/www/html/snipeit/public/uploads

$ sudo cp -f oauth-private.key /var/www/html/snipeit/storage
$ sudo cp -f oauth-public.key /var/www/html/snipeit/storage

$ sudo chown -R www-data:www-data /var/www/html/snipeit/storage/oauth-private.key
$ sudo chown -R www-data:www-data /var/www/html/snipeit/storage/oauth-public.key

$ output=$(cat /var/www/html/snipeit/.env | grep DB_DATABASE)
$ database=${output#*=}
$ output=$(cat /var/www/html/snipeit/.env | grep DB_USERNAME)
$ username=${output#*=}
$ output=$(cat /var/www/html/snipeit/.env | grep DB_PASSWORD)
$ password=${output#*=}
$ sudo mysql ${database} < mysql-snipeit.sql

$ output=$(cat .env | grep APP_KEY)
$ key=${output#*=}
$ sudo sed -i "s/^APP_KEY=.*/APP_KEY=$key/" /var/www/html/snipeit/.env

$ sudo systemctl restart apache2

この時点では PHP が 8.3 であり、マイグレーションした v5.4.4 のサポート外で動作しないため、ブラウザで開いても 500 エラー になるだけである。

4. バージョンアップ

以下を実行

1
2
3
4
5
6
$ sudo chmod 777 /var/www/html/snipeit/storage/logs/laravel.log
$ cd /var/www/html/snipeit && sudo -u snipeitapp env \
HOME=$(getent passwd snipeitapp | cut -d: -f6) \
USER=snipeitapp \
LOGNAME=snipeitapp \
bash -c 'git checkout . && php upgrade.php v8.2.1'

エラーのような表示が出るか最後まで進めばOK。

起動してログイン、バージョンを確認

Management