MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MediaWikiの設定 - 移行のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MediaWikiの設定 - 移行
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== MochiuWikiの移行 == MochiuWiki(MediaWiki)のデータ移行をここに記載する。<br> <br><br> == 前準備 == MediaWikiディレクトリにあるimagesディレクトリのパーミッションと所有者および所有グループを以下のように変更する。<br> sudo chmod 777 images images/temp images/thumb images/archive sudo chown -R <ユーザ名>:<ユーザグループ名> images/ または sudo chmod 777 images images/temp images/thumb images/archive sudo usermod -aG www-data "$USER" sudo chown -R <ユーザ名>:www-data images/ <br> 次に、imagesディレクトリに存在する.htaccessファイルを以下のように編集する。<br> <syntaxhighlight lang="apache"> # 修正前 <IfModule rewrite_module> RewriteEngine On RewriteOptions inherit RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase] RewriteRule . - [forbidden] # Fix for bug T64289 Options +FollowSymLinks </IfModule> # 修正後 <IfModule rewrite_module> RewriteEngine On RewriteOptions inherit RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase] RewriteRule . - [forbidden] # Fix for bug T64289 # Options +FollowSymLinks </IfModule> </syntaxhighlight> <br><br> == MySQLのmysqldumpコマンドでバックアップする方法 == ===== バックアップの取得 ===== MySQLが同じバージョンかつ文字コード等が同じ設定のMySQLのみ復元できる可能性がある。<br> また、違うバージョンのMediaWikiでは復元できない可能性がある。<br> <br> コマンドラインからmysqldumpコマンドを使い手動でバックアップする。<br> 特殊な文字が存在する場合の欠落を防ぐため、--hex-blobオプションでバイナリデータを16進数表記文字列に変換して出力する。<br> mysqldump -Q --host=$MYSQL_SERVER --user=$MYSQL_USER --password=$MYSQL_PASSWD --default-character-set=binary --hex-blob $MYSQL_DB_NAME > MochiuWiki_DB_backup_20200101.sql または mysqldump --host=$MYSQL_SERVER --user=$MYSQL_USER -p --default-character-set=utf8mb4 $MYSQL_DB_NAME > MochiuWiki_DB_backup_20200101.sql <br> もし、cronを使用して定期的にバックアップを取る場合、以下のように設定する。<br> crontab -e # sudoは不要 # 毎月1日0時にバックアップを取得する 0 0 1 * * mysqldump -Q --host=$MYSQL_SERVER --user=$MYSQL_USER --password=$MYSQL_PASSWD --default-character-set=binary --hex-blob $MYSQL_DB_NAME > MochiuWiki_DB_backup_20200101.sql <br> ===== バックアップのインポート ===== 上記でバックアップしたデータベースを、既存のMySQLに復元する。 mysql --host=$MYSQL_SERVER --user=$MYSQL_USER --password=$MYSQL_PASSWD $MYSQL_DB_NAME < MochiuWiki_DB_backup_20200101.sql または mysql --host=$MYSQL_SERVER --user=$MYSQL_USER -p $MYSQL_DB_NAME < MochiuWiki_DB_backup_20200101.sql <br> インポートにおいて、以下に示すようなエラーが発生する場合がある。<br> ERROR at line 1: Unknown command '\-'. <br> まず、SQLファイルの先頭部分を確認する。<br> head -n 5 <SQLファイル名>.sql # 出力例: /*!999999\- enable the sandbox mode */ -- MariaDB dump 10.19 Distrib 10.6.18-MariaDB, for Linux (x86_64) -- -- Host: <Webサーバのホスト名> Database: <データベース名> -- ------------------------------------------------------ <br> \-の部分は、バックスラッシュとハイフンの組み合わせであり、これが<u>Unknown command</u>エラーの原因である。<br> <br> そのため、先頭行に不要なコメントをスキップ、または、削除することにより、SQLファイルのインポートが可能となる。<br> * <code>sed</code>コマンドを使用して、問題の先頭行をスキップしてインポートする方法 *: <code>sed '1d' <SQLファイル名>.sql | mysql --host=<Webサーバのホスト名> --user=<データベースユーザ名> -p <データベース名></code> *: <br> * 問題の先頭行を削除してインポートする方法 *: <code>sed '1d' <SQLファイル名>.sql > <先頭行を削除したSQLファイル名>.sql</code> *: <code>mysql --host=<Webサーバのホスト名> --user=<データベースユーザ名> -p <データベース名> < <先頭行を削除したSQLファイル名>.sql</code> <br><br> == dumpBackup.phpツールでバックアップする方法 == ===== バックアップの取得 ===== maintenanceディレクトリで以下のコマンドを実行する。<br> 履歴も含めてすべてのページをxmlで取得できる。<br> php maintenance/dumpBackup.php --full --uploads > MochiuWiki_backup_20200101.xml // ページのエクスポート または php dumpBackup.php --current > MochiuWiki_backup_20200101.xml // ページのエクスポート <br> ===== バックアップのインポート ===== 新しいサーバ側で作業する。<br> maintenanceディレクトリで以下のコマンドを実行する。<br> すべてのページをインポートできる。<br> php maintenance/importDump.php < MochiuWiki_backup_20200101.xml <br><br> == 画像をバックアップする方法 == ===== バックアップの取得 ===== imagesディレクトリを圧縮するだけでよい。<br> tar -zcf /<出力するディレクトリ名>/MochiuWiki_images_backup_20200101.tar.gz /<MediaWikiのディレクトリ名>/images // 添付ファイルのアーカイブ <br> ===== バックアップのインポート ===== 画像やその他のアップロードされたファイルを復元する。<br> なお、PHPがセーフモードの場合、importImages.phpが実行できないので注意する。<br> cd /var/www/html/mediawiki mkdir tmp mv MochiuWiki_images_backup_20200101.tar.gz tmp cd tmp tar -zxf MochiuWiki_images_backup_20200101.tar.gz <br> imagesディレクトリ下にあるファイルを単一のディレクトリにコピーする。 cd ../ mkdir tmpimages cp tmp/images/*/*/* tmpimages <br> 画像やその他のアップロードされたファイルをインポートする。 php maintenance/importImages.php --overwrite tmpimages/ <br> レンタルサーバであるバリューサーバでは、以下のコマンドを実行する。<br> phpcli maintenance/importImages.php --overwrite tmpimages/ # MediaWikiのユーザ名を指定する場合 phpcli maintenance/importImages.php --overwrite tmpimages/ --user="<MediaWikiのユーザ名>" # カスタムコメントを付加する場合 phpcli maintenance/importImages.php --overwrite tmpimages/ --comment="<コメント文>" # サブディレクトリにあるファイルもアップロードする場合 # (importImages.phpスクリプトは、サブディレクトリ内のファイルを検索してアップロードしないため) phpcli maintenance/importImages.php --overwrite tmpimages/ --search-recursively <br> サーバの移行ではなく、ディレクトリを移行するだけの場合は、以下に示すコマンドを実行してインポートすることができる。<br> php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/1 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/2 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/3 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/4 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/5 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/6 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/7 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/8 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/9 --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/a --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/b --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/c --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/d --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/e --user="<MediaWikiのユーザ名>" --search-recursively php importImages.php --overwrite /<旧MediaWikiのディレクトリ>/images/f --user="<MediaWikiのユーザ名>" --search-recursively <br> また、上記の処理において、シェルスクリプトを使用して簡略することもできる。<br> <syntaxhighlight lang="sh"> #!/usr/bin/env sh # MediaWikiのユーザー名を指定 MEDIAWIKI_USER="<MediaWikiのユーザ名>" # 旧MediaWikiのディレクトリを指定 OLD_MEDIAWIKI_DIR="/<旧MediaWikiのディレクトリ>" # インポートするディレクトリの配列 DIRECTORIES=("1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "b" "c" "d" "e" "f") # 各ディレクトリに対してimportImages.phpを実行 for dir in "${DIRECTORIES[@]}"; do php importImages.php --overwrite "$OLD_MEDIAWIKI_DIR/images/$dir" --user="$MEDIAWIKI_USER" --search-recursively done </syntaxhighlight> <br><br> == 文字列の置換 == ==== 方法 1 (推奨) ==== まず、ReplaceTextの拡張ディレクトリに移動する。<br> cd /<Mediawikiのディレクトリ>/extensions/ReplaceText/maintenance <br> 次に、replaceAll.phpファイルを実行する。<br> phpcli replaceAll.php "置換前の文字列" "置換後の文字列" --user <Wikiユーザ名> # 試験実行することも可能 phpcli replaceAll.php "置換前の文字列" "置換後の文字列" --dry-run --user <Wikiユーザ名> # <code>--debug</code>オプションを付加して、実行時の詳細を表示することも可能 phpcli replaceAll.php "置換前の文字列" "置換後の文字列" --user <Wikiユーザ名> --debug <br> EmbedVideoの拡張が存在する場合、以下に示すような警告 / エラーが出力される場合がある。<br> PHP Deprecated: Premature access to service container <br> この時、以下に示すように修正する。<br> # ファイルのバックアップ mv /<Mediawikiのディレクトリ>/extensions/EmbedVideo/EmbedVideo.hooks.php \ /<Mediawikiのディレクトリ>/extensions/EmbedVideo/EmbedVideo.hooks_org.php <br> [https://gitlab.com/jmnote/EmbedVideo/-/blob/master/EmbedVideo.hooks.php EmbedVideoのGitLab]にアクセスして、修正済みのファイルをダウンロードする。<br> ダウンロードしたファイルをEmbedVideoの拡張ディレクトリにアップロードする。<br> mv EmbedVideo.hooks.php /<Mediawikiのディレクトリ>/extensions/EmbedVideo/ <br> Replace Textの詳細を知りたい場合は、[https://www.mediawiki.org/wiki/Extension:Replace%20Text/ja 公式Webサイト]を参照すること。<br> <br> ==== 方法 2 (非推奨) ==== Mediawikiのトップページから、[特別ページ] - [文字列の置換]にアクセスして、文字列を置換する。<br> <br> Replace Textは、MediaWikiのジョブとして構成されており、ユーザが同時に多くのアクションを実行する場合があるため、システムに負荷が掛からないようになっている。<br> これは、大規模な置換はすぐには行われず、完了までに数分、数時間、あるいはそれ以上掛かることを意味する。<br> <br> ジョブはMediaWikiでページが閲覧されるたびに起動されるが、処理を速める(あるいは遅らせる)ために、ページが閲覧されたときに実行されるジョブの数を変更することができる。<br> したがって、優先順位の高い新しいジョブが無い場合、Replace Textは開始後すぐに停止する可能性がある。<br> 全てのジョブをすぐに実行するには、maintenance/runJobs.phpファイルを実行する。<br> chmod u+x maintenance/runJobs.php php74cli maintenance/runJobs.php <br><br> == 削除ページの履歴の完全な削除 == 全ての削除ページの履歴を完全に削除する場合は、まず、通常のページ削除機能を使用してページを削除する。<br> <br> 次に、deleteArchivedRevisions.phpメンテナンススクリプトを実行する。<br> phpcli maintenance/deleteArchivedRevisions.php --delete <br> これにより、削除されたリビジョンが保存されているアーカイブテーブルが消去されて、削除されたページのテキストも削除される。<br> アーカイブテーブルからエントリを直接削除する場合 (TRUNCATE TABLE archive;)、リンクされたテキストレコードを削除するために、purgeOldText.phpメンテナンススクリプトを使用する必要がある。<br> <br> 古いリビジョンを削除するだけでは、アクティブなWikiのデータの多くがテキストテーブルで占められているため、通常はあまり役に立たない。<br> <br> データベースの設定によっては、リビジョンを削除した後、SQLコマンド<code>OPTIMIZE TABLE text, archive</code>を実行してアーカイブすることもできる。<br> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:MochiuWikiの設定]]
MediaWikiの設定 - 移行
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse