tweet:2022:0704_20220704
NextCloudの移行
うちの環境では、ファイルサーバーとしてNextCloudを利用しているのだが、Updateする際に色々壊れてしまったので、結局完全移行を行う羽目になった。 最終的には、Installから全部記録を書きたいので、それはどこかで記述するが、今回は壊れたところの修正のためにやった作業を記録しておくにとどめる。
壊れた
FreeBSDが13.0-RELEASEから13.1-RELEASEになった時に、pkgのpostgreSQLがUpgradeされ、PHP8で参照するPostGreSQLが13になった。 おかげで、PHP7.4+PostgreSQL12で動いていたNextCloudはUpgradeに失敗するわDBが一部破損(User情報が壊れた)するわでてんやわんやになった。
作業内容
- https://github.com/nextcloud/groupfolders Group foldersのGitHUB Entry
NextCloudをInstall
- とりあえず、www/nextcloud をwww/nextcloud.bakに移動し、新たにnextcloudを作成し、コンテンツを移動した。
- 適当に拾ってきたNextCloudの最新版のアーカイブを展開
- Ownerをwww:wwwに変更
- 必要なDBを作成
psql -U [PG Admin Acct]
create user [admin acct] with password 'Password';
create database [new DB name] owner [admin acct] encoding 'UTF8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template 'template0';
- 基本日本語環境なので、日本語に合わせる
- HTTPsでWeb Serverにアクセスし、通常のInstall作業を実施
- Web I/Fから必要なアカウントを全て作成
Accountのパスワードを旧環境に登録されているものに変更
- DBに登録されているパスワードを移植する
psql -U [PG Admin Acct]
\c [old DB name]
select password, uid from oc_users;
- 出力された Hashed passwordとuidの組をファイルに記録
select * from oc_accounts_data;
- 出力されたuidを確認し、先のPasswordの組と相違ないことを確認
- passwordとuidの組み合わせのファイルを操作し、以下のようなformatになるようにsedで編集
UPDATE oc_users SET password='[PasswordのHash Data]' WHERE uid='uid';
- psqlコマンドで
\c [new DB name]
実行して、UPDATEコマンドを投入 - loginの試験して問題がなければOK
Dataファイルの移動
- 古い方のDirectoryに入り、dataにcdする
- 新しい方のdataに古い方のdataを移動する
sudo -u www php occ files:scan
sudo -u www php occ files:scan-app-data
- これで、個人Directoryのファイルが登録される
group foldersの設定とDataの調整
- group foldersをAppから追加
- 設定を行う
- Groupを作成
- 管理者を設定
- 新旧のDBで
select * from oc_group_folders;
で、グループフォルダと番号の対応表を確認 - 対応するフォルダ (
data/__gorup_folders
) から対応表に合わせでデータを移動 sudo -u www php occ groupfolders:scan
- これで共有フォルダの情報が登録される
tweet/2022/0704_20220704.txt · 最終更新: 2022/07/04 18:05 by 127.0.0.1