転載・引用について

ユーザ用ツール

サイト用ツール


tweet:2022:0704_20220704

差分

このページの2つのバージョン間の差分を表示します。


tweet:2022:0704_20220704 [2022/07/04 18:05] (現在) – 作成 - 外部編集 127.0.0.1
行 1: 行 1:
 +====== 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.1656925129.txt.gz · 最終更新: 2022/07/04 18:00 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki