文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== DokuWiki ====== 本家: [[https://www.dokuwiki.org/dokuwiki|dokuwiki [DokuWiki]]]\\ ソースコード: [[https://github.com/splitbrain/dokuwiki|splitbrain/dokuwiki: The DokuWiki Open Source Wiki Engine]]\\ ===== 更新前に必ず確認‼️ ===== [[https://www.dokuwiki.org/changes|]] ([[https://www-dokuwiki-org.translate.goog/changes?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=sc|翻訳]])\\ [[https://www.dokuwiki.org/changes#release_2023-04-04b_jack_jackrum|Release 2023-04-04b “Jack Jackrum”]]\\ * The options to embed HTML and PHP have been completely removed for security reasons :!: * HTMLとPHPを埋め込むオプションは、セキュリティ上の理由で完全に削除されました :!: * HTMLとPHPを埋め込むには [[https://www.dokuwiki.org/plugin:htmlok|htmlok Plugin]] で対応 ===== 技術資料 ===== [[https://www.dokuwiki.org/development#the_development_manual|The Development Manual - development [DokuWiki]]] - 開発マニュアル\\ [[https://www.dokuwiki.org/devel:dirlayout|Directory Layout - devel:dirlayout [DokuWiki]]] - ディレクトリ レイアウト\\ ===== PHP 8 へ移行 ===== ==== PHP 8 対応の新しい DokuWiki に更新 ==== [[https://www.dokuwiki.org/changes#release_2022-07-31_igor|Release 2022-07-31 "Igor"]]\\ とにかく、DokuWiki を更新前に丸ごとバックアップする🤤\\ <WRAP color_term> <WRAP color_command><html><pre> $ cp dokuwiki/conf/mime.conf dokuwiki/conf/mime.conf.bak $ tar jcvf dokuwiki_20220804_1.tar.bz2 dokuwiki/ </pre></html></WRAP> </WRAP> **[[http://www.dokuwiki.org/plugin:upgrade|DokuWiki Upgrade Plugin]]** で DokuWiki を PHP 8 対応版へアップグレードする。\\ ==== DokuWiki 更新後の動作確認 ==== アップグレード後の動作確認🤔\\ svg は標準対応されている😊\\ <WRAP mincode><code autoconf conf/mime.conf> svg image/svg+xml </code></WRAP> [[:hardware:sd_memory_card|SD メモリーカード]] など svg を大量に使用しているページで動作チェックする😉\\ mime.conf.bak を元に アップグレードで上書きされた mime.conf を修正する😊\\ DokuWiki は mime.conf でアップロードするファイルの種類を許可しているので、個別に許可している場合はその情報を書き足す必要があるため😉\\ ==== システムの PHP バージョンをアップデートする ==== 現時点の PHP バージョンを調べる🤔\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>php</b> <b class=HIK>-v</b> </pre></html></WRAP> <WRAP color_result><html><pre> PHP 7.4.29 (cli) (built: Apr 12 2022 10:55:38) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>rpm</b> <b class=HIK>-qa</b> | <b class=HIY>sort</b> | <b class=HIY>grep</b> php </pre></html></WRAP> <WRAP color_result><html><pre> <b class=RED>php</b>-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-cli-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-common-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-fedora-autoloader-1.0.1-8.fc36.noarch <b class=RED>php</b>-fpm-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-gd-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-json-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-mbstring-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-mysqlnd-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-opcache-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-pdo-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-pear-1.10.13-2.fc36.noarch <b class=RED>php</b>-pecl-apcu-5.1.21-1.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-mcrypt-1.0.4-5.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-zip-1.20.1-1.fc36.remi.7.4.x86_64 <b class=RED>php</b>-process-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-sodium-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-xml-7.4.29-1.fc36.remi.x86_64 </pre></html></WRAP> </WRAP> **リポジトリ設定** (Remi リポジトリを利用する設定が必要)\\ [[linux:fedora:rpmfusion|Fedora で RPM Fusion, Remi リポジトリを利用する]]\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf install dnf-plugins-core </pre></html></WRAP> <WRAP color_result><html><pre> メタデータの期限切れの最終確認: 0:07:58 時間前の 2022年08月04日 03時51分10秒 に実施しました。 パッケージ dnf-plugins-core-4.2.1-1.fc36.noarch は既にインストールされています。 依存関係が解決しました。 行うべきことはありません。 完了しました! </pre></html></WRAP> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf config-manager <b class=HIK>--set-enabled</b> remi </pre></html></WRAP> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf module reset php <b class=HIK>-y</b> </pre></html></WRAP> <WRAP color_result><html><pre> Remi's RPM repository - Fedora 36 - x86_64 636 B/s | 833 B 00:01 依存関係が解決しました。 行うべきことはありません。 完了しました! </pre></html></WRAP> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf module install php:remi-8.1 <b class=HIK>-y</b> </pre></html></WRAP> <WRAP color_result><html><pre> メタデータの期限切れの最終確認: 0:00:33 時間前の 2022年08月04日 03時59分35秒 に実施しました。 エラー: 問題: 競合するリクエスト - php-common-8.1.8-1.fc36.remi.x86_64 と php-common-7.4.29-1.fc36.remi.x86_64 どちらもインストールできません - php-common-8.1.9-1.fc36.remi.x86_64 と php-common-7.4.29-1.fc36.remi.x86_64 どちらもインストールできません - パッケージ php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 には php(api) = 20190902-64 が必要ですが、どのプロバイダー からもインストールできません - パッケージ php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 には php(zend-abi) = 20190902-64 が必要ですが、どのプロバイダーからもインストールできません - インストール済パッケージの問題 php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 - パッケージ php-common-7.4.29-1.fc36.remi.x86_64 はモジュラーフィルタリングに一致しません - パッケージ php-common-7.4.30-1.fc36.remi.x86_64 はモジュラーフィルタリングに一致しません (競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください) </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> dnf module install php:remi-8.1 <b class=HIK>-y --allowerasing</b> </pre></html></WRAP> <WRAP color_result_long><html><pre> メタデータの期限切れの最終確認: 0:00:54 時間前の 2022年08月04日 03時59分35秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== アップグレード: <b class=GRN>php</b> x86_64 8.1.9-1.fc36.remi remi-modular 1.7 M <b class=GRN>php-cli</b> x86_64 8.1.9-1.fc36.remi remi-modular 5.3 M <b class=GRN>php-common</b> x86_64 8.1.9-1.fc36.remi remi-modular 829 k 置き換え <b class=RED>php-json</b>.x86_64 7.4.29-1.fc36.remi <b class=GRN>php-fpm</b> x86_64 8.1.9-1.fc36.remi remi-modular 1.8 M <b class=GRN>php-gd</b> x86_64 8.1.9-1.fc36.remi remi-modular 62 k <b class=GRN>php-mbstring</b> x86_64 8.1.9-1.fc36.remi remi-modular 517 k <b class=GRN>php-mysqlnd</b> x86_64 8.1.9-1.fc36.remi remi-modular 216 k <b class=GRN>php-opcache</b> x86_64 8.1.9-1.fc36.remi remi-modular 613 k <b class=GRN>php-pdo</b> x86_64 8.1.9-1.fc36.remi remi-modular 115 k <b class=GRN>php-pecl-apcu</b> x86_64 5.1.21-1.fc36.remi.8.1 remi-modular 75 k <b class=GRN>php-pecl-mcrypt</b> x86_64 1.0.5-1.fc36.remi.8.1 remi-modular 35 k <b class=GRN>php-pecl-zip</b> x86_64 1.21.0-3.fc36.remi.8.1 remi-modular 70 k <b class=GRN>php-process</b> x86_64 8.1.9-1.fc36.remi remi-modular 65 k <b class=GRN>php-sodium</b> x86_64 8.1.9-1.fc36.remi remi-modular 58 k <b class=GRN>php-xml</b> x86_64 8.1.9-1.fc36.remi remi-modular 210 k 依存関係パッケージの削除: <b class=RED>php-pecl-apcu-bc</b> x86_64 1.0.5-5.fc36.remi.7.4 @remi-modular 49 k モジュールプロファイルのインストール中: php/common モジュールストリームの有効化中: php remi-8.1 トランザクションの概要 ======================================================================================================================== アップグレード 15 パッケージ 削除 1 パッケージ ダウンロードサイズの合計: 12 M パッケージのダウンロード: (1/15): php-common-8.1.9-1.fc36.remi.x86_64.rpm 728 kB/s | 829 kB 00:01 (2/15): php-8.1.9-1.fc36.remi.x86_64.rpm 1.2 MB/s | 1.7 MB 00:01 (3/15): php-fpm-8.1.9-1.fc36.remi.x86_64.rpm 2.5 MB/s | 1.8 MB 00:00 (4/15): php-gd-8.1.9-1.fc36.remi.x86_64.rpm 170 kB/s | 62 kB 00:00 (5/15): php-cli-8.1.9-1.fc36.remi.x86_64.rpm 2.8 MB/s | 5.3 MB 00:01 (6/15): php-mbstring-8.1.9-1.fc36.remi.x86_64.rpm 3.2 MB/s | 517 kB 00:00 (7/15): php-mysqlnd-8.1.9-1.fc36.remi.x86_64.rpm 592 kB/s | 216 kB 00:00 (8/15): php-opcache-8.1.9-1.fc36.remi.x86_64.rpm 1.6 MB/s | 613 kB 00:00 (9/15): php-pdo-8.1.9-1.fc36.remi.x86_64.rpm 465 kB/s | 115 kB 00:00 (10/15): php-pecl-apcu-5.1.21-1.fc36.remi.8.1.x86_64.rpm 650 kB/s | 75 kB 00:00 (11/15): php-pecl-mcrypt-1.0.5-1.fc36.remi.8.1.x86_64.rpm 308 kB/s | 35 kB 00:00 (12/15): php-pecl-zip-1.21.0-3.fc36.remi.8.1.x86_64.rpm 597 kB/s | 70 kB 00:00 (13/15): php-process-8.1.9-1.fc36.remi.x86_64.rpm 568 kB/s | 65 kB 00:00 (14/15): php-sodium-8.1.9-1.fc36.remi.x86_64.rpm 506 kB/s | 58 kB 00:00 (15/15): php-xml-8.1.9-1.fc36.remi.x86_64.rpm 1.6 MB/s | 210 kB 00:00 ------------------------------------------------------------------------------------------------------------------------ 合計 3.8 MB/s | 12 MB 00:03 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 scriptletの実行中: php-common-8.1.9-1.fc36.remi.x86_64 1/1 scriptletの実行中: php-common-8.1.9-1.fc36.remi.x86_64 1/32 アップグレード中 : php-common-8.1.9-1.fc36.remi.x86_64 1/32 警告: /etc/php.ini は /etc/php.ini.rpmnew として作成されました アップグレード中 : php-pdo-8.1.9-1.fc36.remi.x86_64 2/32 アップグレード中 : php-cli-8.1.9-1.fc36.remi.x86_64 3/32 アップグレード中 : php-fpm-8.1.9-1.fc36.remi.x86_64 4/32 scriptletの実行中: php-fpm-8.1.9-1.fc36.remi.x86_64 4/32 アップグレード中 : php-mbstring-8.1.9-1.fc36.remi.x86_64 5/32 アップグレード中 : php-opcache-8.1.9-1.fc36.remi.x86_64 6/32 アップグレード中 : php-sodium-8.1.9-1.fc36.remi.x86_64 7/32 アップグレード中 : php-xml-8.1.9-1.fc36.remi.x86_64 8/32 アップグレード中 : php-8.1.9-1.fc36.remi.x86_64 9/32 アップグレード中 : php-mysqlnd-8.1.9-1.fc36.remi.x86_64 10/32 アップグレード中 : php-gd-8.1.9-1.fc36.remi.x86_64 11/32 アップグレード中 : php-pecl-apcu-5.1.21-1.fc36.remi.8.1.x86_64 12/32 アップグレード中 : php-pecl-mcrypt-1.0.5-1.fc36.remi.8.1.x86_64 13/32 アップグレード中 : php-pecl-zip-1.21.0-3.fc36.remi.8.1.x86_64 14/32 アップグレード中 : php-process-8.1.9-1.fc36.remi.x86_64 15/32 整理 : php-7.4.29-1.fc36.remi.x86_64 16/32 削除 : php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 17/32 整理 : php-pecl-apcu-5.1.21-1.fc36.remi.7.4.x86_64 18/32 整理 : php-pecl-zip-1.20.1-1.fc36.remi.7.4.x86_64 19/32 整理 : php-pecl-mcrypt-1.0.4-5.fc36.remi.7.4.x86_64 20/32 整理 : php-cli-7.4.29-1.fc36.remi.x86_64 21/32 scriptletの実行中: php-fpm-7.4.29-1.fc36.remi.x86_64 22/32 整理 : php-fpm-7.4.29-1.fc36.remi.x86_64 22/32 整理 : php-mbstring-7.4.29-1.fc36.remi.x86_64 23/32 整理 : php-opcache-7.4.29-1.fc36.remi.x86_64 24/32 整理 : php-sodium-7.4.29-1.fc36.remi.x86_64 25/32 整理 : php-xml-7.4.29-1.fc36.remi.x86_64 26/32 整理 : php-process-7.4.29-1.fc36.remi.x86_64 27/32 整理 : php-mysqlnd-7.4.29-1.fc36.remi.x86_64 28/32 整理 : php-pdo-7.4.29-1.fc36.remi.x86_64 29/32 整理 : php-gd-7.4.29-1.fc36.remi.x86_64 30/32 整理 : php-common-7.4.29-1.fc36.remi.x86_64 31/32 廃止 : php-json-7.4.29-1.fc36.remi.x86_64 32/32 scriptletの実行中: php-json-7.4.29-1.fc36.remi.x86_64 32/32 検証 : php-8.1.9-1.fc36.remi.x86_64 1/32 検証 : php-7.4.29-1.fc36.remi.x86_64 2/32 検証 : php-cli-8.1.9-1.fc36.remi.x86_64 3/32 検証 : php-cli-7.4.29-1.fc36.remi.x86_64 4/32 検証 : php-common-8.1.9-1.fc36.remi.x86_64 5/32 検証 : php-common-7.4.29-1.fc36.remi.x86_64 6/32 検証 : php-json-7.4.29-1.fc36.remi.x86_64 7/32 検証 : php-fpm-8.1.9-1.fc36.remi.x86_64 8/32 検証 : php-fpm-7.4.29-1.fc36.remi.x86_64 9/32 検証 : php-gd-8.1.9-1.fc36.remi.x86_64 10/32 検証 : php-gd-7.4.29-1.fc36.remi.x86_64 11/32 検証 : php-mbstring-8.1.9-1.fc36.remi.x86_64 12/32 検証 : php-mbstring-7.4.29-1.fc36.remi.x86_64 13/32 検証 : php-mysqlnd-8.1.9-1.fc36.remi.x86_64 14/32 検証 : php-mysqlnd-7.4.29-1.fc36.remi.x86_64 15/32 検証 : php-opcache-8.1.9-1.fc36.remi.x86_64 16/32 検証 : php-opcache-7.4.29-1.fc36.remi.x86_64 17/32 検証 : php-pdo-8.1.9-1.fc36.remi.x86_64 18/32 検証 : php-pdo-7.4.29-1.fc36.remi.x86_64 19/32 検証 : php-pecl-apcu-5.1.21-1.fc36.remi.8.1.x86_64 20/32 検証 : php-pecl-apcu-5.1.21-1.fc36.remi.7.4.x86_64 21/32 検証 : php-pecl-mcrypt-1.0.5-1.fc36.remi.8.1.x86_64 22/32 検証 : php-pecl-mcrypt-1.0.4-5.fc36.remi.7.4.x86_64 23/32 検証 : php-pecl-zip-1.21.0-3.fc36.remi.8.1.x86_64 24/32 検証 : php-pecl-zip-1.20.1-1.fc36.remi.7.4.x86_64 25/32 検証 : php-process-8.1.9-1.fc36.remi.x86_64 26/32 検証 : php-process-7.4.29-1.fc36.remi.x86_64 27/32 検証 : php-sodium-8.1.9-1.fc36.remi.x86_64 28/32 検証 : php-sodium-7.4.29-1.fc36.remi.x86_64 29/32 検証 : php-xml-8.1.9-1.fc36.remi.x86_64 30/32 検証 : php-xml-7.4.29-1.fc36.remi.x86_64 31/32 検証 : php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 32/32 アップグレード済み: php-8.1.9-1.fc36.remi.x86_64 php-cli-8.1.9-1.fc36.remi.x86_64 php-common-8.1.9-1.fc36.remi.x86_64 php-fpm-8.1.9-1.fc36.remi.x86_64 php-gd-8.1.9-1.fc36.remi.x86_64 php-mbstring-8.1.9-1.fc36.remi.x86_64 php-mysqlnd-8.1.9-1.fc36.remi.x86_64 php-opcache-8.1.9-1.fc36.remi.x86_64 php-pdo-8.1.9-1.fc36.remi.x86_64 php-pecl-apcu-5.1.21-1.fc36.remi.8.1.x86_64 php-pecl-mcrypt-1.0.5-1.fc36.remi.8.1.x86_64 php-pecl-zip-1.21.0-3.fc36.remi.8.1.x86_64 php-process-8.1.9-1.fc36.remi.x86_64 php-sodium-8.1.9-1.fc36.remi.x86_64 php-xml-8.1.9-1.fc36.remi.x86_64 削除しました: php-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 完了しました! </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>php</b> <b class=HIK>-v</b> </pre></html></WRAP> <WRAP color_result><html><pre> PHP 8.1.9 (cli) (built: Aug 2 2022 13:02:24) (NTS gcc x86_64) Copyright (c) The PHP Group Zend Engine v4.1.9, Copyright (c) Zend Technologies with Zend OPcache v8.1.9, Copyright (c), by Zend Technologies </pre></html></WRAP> </WRAP> <WRAP group> <WRAP left column> **PHP 8.1 (新)**\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>rpm</b> <b class=HIK>-qa</b> | <b class=HIY>sort</b> | <b class=HIY>grep</b> php </pre></html></WRAP> <WRAP color_result><html><pre> <b class=RED>php</b>-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-cli-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-common-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-fedora-autoloader-1.0.1-8.fc36.noarch <b class=RED>php</b>-fpm-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-gd-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-mbstring-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-mysqlnd-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-opcache-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-pdo-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-pear-1.10.13-2.fc36.noarch <b class=RED>php</b>-pecl-apcu-5.1.21-1.fc36.remi.8.1.x86_64 <b class=RED>php</b>-pecl-mcrypt-1.0.5-1.fc36.remi.8.1.x86_64 <b class=RED>php</b>-pecl-zip-1.21.0-3.fc36.remi.8.1.x86_64 <b class=RED>php</b>-process-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-sodium-8.1.9-1.fc36.remi.x86_64 <b class=RED>php</b>-xml-8.1.9-1.fc36.remi.x86_64 </pre></html></WRAP> </WRAP> </WRAP> <WRAP left column> **PHP 7.4 (旧)**\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>rpm</b> <b class=HIK>-qa</b> | <b class=HIY>sort</b> | <b class=HIY>grep</b> php </pre></html></WRAP> <WRAP color_result><html><pre> <b class=RED>php</b>-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-cli-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-common-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-fedora-autoloader-1.0.1-8.fc36.noarch <b class=RED>php</b>-fpm-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-gd-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-json-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-mbstring-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-mysqlnd-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-opcache-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-pdo-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-pear-1.10.13-2.fc36.noarch <b class=RED>php</b>-pecl-apcu-5.1.21-1.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-apcu-bc-1.0.5-5.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-mcrypt-1.0.4-5.fc36.remi.7.4.x86_64 <b class=RED>php</b>-pecl-zip-1.20.1-1.fc36.remi.7.4.x86_64 <b class=RED>php</b>-process-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-sodium-7.4.29-1.fc36.remi.x86_64 <b class=RED>php</b>-xml-7.4.29-1.fc36.remi.x86_64 </pre></html></WRAP> </WRAP> </WRAP> </WRAP> <wrap em>php-json</wrap> は PHP 8 より標準で含まれて有効になっている🤔\\ <wrap em>php-pecl-apcu-bc</wrap> はパッケージ削除🤔\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> reboot </pre></html></WRAP> </WRAP> 参考: [[https://computingforgeeks.com/how-to-install-php-on-fedora/|How To Install PHP 8.0 on Fedora 36/35/34/33/32 | ComputingForGeeks]]\\ [[https://rpms.remirepo.net/fedora/36/|Remi's RPM repository - Fedora 36]]\\ ==== PHP 8.1 -> PHP 8.2 ==== <WRAP color_term> <WRAP color_command><html><pre> $ sudo dnf module reset php -y $ sudo dnf module install php:remi-8.2 $ sudo systemctl restart php-fpm $ sudo systemctl restart httpd </pre></html></WRAP> </WRAP> ===== PHP 8 対応状況 ===== [[git>splitbrain/dokuwiki/issues?q=is:issue is:open label:"PHP 8"|ラベル: PHP 8 で開いている Issues · splitbrain/dokuwiki]]\\ ===== DokuWiki プラグイン (Plugin) ===== [[:linux:dokuwiki:mathjax_plugin|MathJax Plugin]]\\ [[:linux:dokuwiki:mathpublish_plugin|mathpublish Plugin]]\\ [[:linux:dokuwiki:codeMirror_plugin|CodeMirror Plugin]]\\ ==== DokuFreaks ==== [[https://github.com/dokufreaks|{{https://avatars.githubusercontent.com/u/86480?&.png?100x100&recache|DokuFreaks }}]] [[git>dokufreaks|DokuFreaks]] GitHub 組織は、元の作成者によってほとんど放棄されたプラグインが **最小限** 維持される場所です。これは、言語の更新が適用され、簡単なプル リクエストが適用され、プラグインが通常、最近の DokuWiki リリースで動作する状態になる必要があることを意味します。 一方、これは、そこにリストされているプラグインが**積極的に開発されていない**ことを意味します。機能リクエストはほとんど無視され、マージに大きな労力が必要なプル リクエストはおそらく永久に無視されるでしょう。 [[https://www.dokuwiki.org/dokufreaks|dokufreaks [DokuWiki]] より🤔\\ ===== DokuWiki プラグイン開発 (Devel) ===== [[linux:dokuwiki:dokuWiki_plugin_development|DokuWiki プラグイン開発 (Devel)]]\\ ===== DokuWiki テーマ カスタマイズ ===== ==== テンプレートのキャッシュ戦略 ==== 以降のカスタマイズではテーマの **main.php** にスタイルを直書きしていますが、検証のためであり本来は個別の **CSS** ファイルに分けるのが望ましい。直書きしたスタイルはページロードの都度 HTML ファイルに埋め込まれていて **CSS Minify (コード圧縮)** されないため、スタイル定義が増えるごとにダウンロードサイズも増加する。更に一般的にスタイルの変更は少ないので、ページ内容の変更とは切り分けてブラウザーにキャッシュさせた方が、よりページロード時間を高速化できて良い。\\ ブラウザーの開発者ツールで **CSS** ファイルに分けた場合は (from disk cache) ローカルディスクから読み込まれるので、キャッシュ期限で指定された時間が経過するまではインターネットを介してダウンロードされなくなる。更に DokuWiki のエンジンが自動的に style.ini で参照しているスタイルを **CSS Minify (コード圧縮)** して一つにまとめるので、スタイル定義を複数のファイルに分割している場合でも一度のリクエストで取得できるので、Web サーバーの負荷を減らすと伴にクライアントのページロード時間を高速化できる利点がある。\\ {{:linux:dokuwiki_template_cache_001.png?470|DokuWiki テンプレート ブラウザーキャッシュ}}\\ 安定したスタイル定義を **CSS** ファイルに分けるには、テンプレートディレクトリの style.ini に スタイルを含めるように指示して css ディレクトリにファイルを別途作成する。\\ <WRAP prewrap 100% mincode> <code ini temprate_dir/style.ini> [stylesheets] css/custom.less = screen </code> </WRAP> <WRAP prewrap 100% mincode> <code css temprate_dir/css/custom.less> @font-face { font-family: "HackGenNerd"; font-display: swap; src: url("/fonts/hackgen_v2.6.3/HackGenNerd-Regular.woff2") format("woff2"), url("/fonts/hackgen_v2.6.3/HackGenNerd-Regular.woff") format("woff") } @font-face { font-family: "HackGenNerd Console"; font-display: swap; src: url("/fonts/hackgen_v2.6.3/HackGenNerdConsole-Regular.woff2") format("woff2") url("/fonts/hackgen_v2.6.3/HackGenNerdConsole-Regular.woff") format("woff") } pre, code, samp, kbd { font-family: "HackGenNerd Console", "Sawarabi Gothic", "Helvetica Neue", Helvetica, /*"Open Sans", "M PLUS 1p", */"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", Arial, sans-serif; font-size: 12px; } @media (min-width: 980px) { pre, code, samp, kbd { font-size: 10px; } } body { font-family: "Sawarabi Gothic", "Helvetica Neue", Helvetica, /*"Open Sans", "M PLUS 1p", */"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", Arial, sans-serif; } </code> </WRAP> ==== サイト専用テンプレートの作成 ==== 拡張機能管理でインストールした既存のテンプレートをコピーして、サイト専用テンプレートを作成する😃\\ サイト専用テンプレートを作成すると、既存のテンプレートの更新で影響受けることが無くなる🤤\\ 既存の bootstrap3 テンプレートをコピーする🤤\\ <WRAP color_term> <WRAP color_command><html><pre> $ cd dokuwiki/lib/tpl/ $ cp -r bootstrap3 bs3tomoyannet </pre></html></WRAP> </WRAP> コピーしたテンプレート情報 (template.info.txt) を修正する🤤 (特に <wrap em>base, name</wrap>)\\ <WRAP color_term> <WRAP color_command><html><pre> $ cd bs3tomoyannet $ nano template.info.txt </pre></html></WRAP> </WRAP> <WRAP group> <WRAP left column> コピー\\ <WRAP mincode><html><dl class=code> <dt><a class="mediafile mf_txt" style="text-decoration: unset">template.info.txt</a></dt> <dd><pre> <b class=RED>base bs3tomoyannet author Tomoyan596 email tomoyan@tomoyan.net date 2022-08-04 name Bootstrap3 Tomoyan.NET Template desc Bootstrap-based template for Dokuwiki Tomoyan.NET</b> url https://www.dokuwiki.org/template:bootstrap3 build stable/20220727 </pre></dd> </dl></html></WRAP> </WRAP> <WRAP left column> オリジナル\\ <WRAP mincode><code text template.info.txt> base bootstrap3 author Giuseppe Di Terlizzi email giuseppe.diterlizzi@gmail.com date 2022-07-27 name Bootstrap3 Template desc Bootstrap-based template for Dokuwiki url https://www.dokuwiki.org/template:bootstrap3 build stable/20220727 </code></WRAP> </WRAP> </WRAP> いつもの **custom.less** をコピーする🤤\\ <WRAP color_term> <WRAP color_command><html><pre> $cp template_dir/css/custom.less bs3tomoyannet/css/custom.less </pre></html></WRAP> </WRAP> **style.ini** に **custom.less** を登録する🤤\\ <WRAP color_term> <WRAP color_command><html><pre> $ nano style.ini </pre></html></WRAP> </WRAP> <WRAP mincode><code ini style.ini> [stylesheets] ; DokuWiki core styles ... ; Template styles ... ; Tomoyan.NET Custom (追記登録) css/custom.less = all </code></WRAP> **main.php** に必要な変更を行うのを忘れずに😉\\ **Google AdSense Plugin** のための変更\\ <WRAP mincode><code php main.php> <head> ... <?php if (file_exists(DOKU_PLUGIN.'googleads/code.php')) include_once(DOKU_PLUGIN.'googleads/code.php'); if (function_exists('gads_code')) gads_code(); ?> ... </head> </code></WRAP> **Google Fonts (Web フォント)** のための変更\\ <WRAP mincode><code php main.php> <head> ... <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin> <link href="https://fonts.googleapis.com/css?family=Sawarabi+Gothic&display=swap" rel="stylesheet"> ... </head> </code></WRAP> **その他の CSS** のための変更\\ <WRAP mincode><code php main.php> <head> ... <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> ... </head> </code></WRAP> ==== DokuWiki テーマの Dark モード対応 ==== OS が Dark モードで実行されている場合の対応を追加する。\\ <WRAP prewrap 100%> <code css dokuwiki/lib/tpl/dokuwiki/main.php> <head> ... <style> ... @media (prefers-color-scheme: dark) { body, .dokuwiki div.page, .dokuwiki .pageId span, #dokuwiki__header h1 a, #dw__toc, .dokuwiki pre, .dokuwiki dl.code dt, .dokuwiki dl.file dt, .dokuwiki .page ol li, .dokuwiki .page li .li { background-color: #1a1a1a; background: #1a1a1a; color: lightgrey; } img { opacity: .75; transition: opacity .5s ease-in-out; } img:hover { opacity: 1; } th, div.dokuwiki table.pagelist th, input, textarea, button, select, optgroup, option, keygen, output, meter, progress, .dokuwiki .editBar .summary input.edit, .dokuwiki .editBar .summary input.missing { background-color: #323232; background: #323232; color: lightgrey; } } ... </style> ... </head> </code> </WRAP> ※これらで対応が足りているか検証中である。\\ ==== DokuWiki テーマに Web フォントを定義 ==== Google Fonts の Sawarabi Gothic を定義する。\\ <WRAP prewrap 100%> <code css dokuwiki/lib/tpl/dokuwiki/main.php> <head> ... <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin> <link href="https://fonts.googleapis.com/css?family=Sawarabi+Gothic&display=swap" rel="stylesheet"> <style> /* @import url('https://fonts.googleapis.com/css?family=M+PLUS+1p&display=swap'); @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,300&display=swap'); @import url('https://fonts.googleapis.com/css?family=Sawarabi+Gothic&display=swap'); */ body { font-family: "Sawarabi Gothic", "Helvetica Neue", Helvetica, /*"Open Sans", "M PLUS 1p", */"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", Arial, sans-serif; } </style> ... </head> </code> </WRAP> ※ Google Fonts の CSS の URL の末尾に **&display=swap** を記述すると CSS の **font-display: swap;** が適用されて、フォントがダウンロード中で利用可能になるまでの間、代替フォント(font-family 指定順で次に有効なフォント) が適用される。\\ === font-display: swap; === CSS では **font-display: swap;** は次のように **@font-face** 内に定義する。\\ <code css> @font-face { font-family: "Open Sans"; font-style: normal; font-weight: normal; font-display: swap; src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"), url("/fonts/OpenSans-Regular-webfont.woff") format("woff"); } </code> === 参考文献 === [[https://developer.mozilla.org/ja/docs/Web/CSS/@font-face|@font-face - CSS: カスケーディングスタイルシート | MDN]]\\ ==== <code> ブロックに HackGen (白源) フォントを適用 ==== [[open_source:fonts#hackgen|HackGen (白源)]]\\ [[web:web_font#woffconverter|WOFFConverter]]\\ **<code>** ブロックは HTML の **pre** タグであるため、**pre** タグのフォントを変更する。\\ <WRAP prewrap 100%> <code css dokuwiki/lib/tpl/dokuwiki/main.php> <head> ... <link href="https://fonts.googleapis.com/css?family=Sawarabi+Gothic&display=swap" rel="stylesheet"> <style> /* @import url('https://fonts.googleapis.com/css?family=M+PLUS+1p&display=swap'); @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,300&display=swap'); @import url('https://fonts.googleapis.com/css?family=Sawarabi+Gothic&display=swap'); */ @font-face { font-family: "HackGen"; font-display: swap; src: url("/fonts/hackgen_v1.4.1/HackGen35-Regular.woff2") format("woff2"), url("/fonts/hackgen_v1.4.1/HackGen35-Regular.woff") format("woff") } pre, code, samp, kbd { font-family: "HackGen", "Sawarabi Gothic", "Helvetica Neue", Helvetica, /*"Open Sans", "M PLUS 1p", */"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", Arial, sans-serif; font-size: 12px; } body { ... } </style> ... </head> </code> </WRAP> ==== Apache MIME タイプの設定 ==== <WRAP prewrap 100%> Apache に Web フォントの MIME タイプ定義を追加する。\\ <code> $ sudo vi /etc/httpd/conf/httpd.conf </code> <code autoconf /etc/httpd/conf/httpd.conf> ... <IfModule mime_module> ... # # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz # Web Font AddType application/font-sfnt otf ttf AddType application/font-woff woff AddType application/font-woff2 woff2 AddType application/vnd.ms-fontobject eot ... </IfModule> </code> Web フォントを配信するに当たって Apache のキャッシュ期間を設定する。\\ <code> $ sudo vi dokuwiki/.htaccess </code> <code autoconf dokuwiki/.htaccess> ... ExpiresActive On ExpiresByType application/font-woff "access plus 1 month" ExpiresByType application/font-woff2 "access plus 1 month" ExpiresByType application/font-sfnt "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" ... </code> Apache をリロードして設定を反映させる。\\ <code> $ sudo systemctl reload httpd </code> </WRAP> ===== Open Graph プロトコル ===== [[https://www.dokuwiki.org/plugins?plugintag=opengraph#extension__table|plugins (opengraph) [DokuWiki]]]\\ [[https://dokuwiki.org/plugin:socialcards|SocialCards Plugin]]\\ [[https://www.dokuwiki.org/ja:plugin:semantic|Semantic Plugin]]\\ \\ [[https://cards-dev.twitter.com/validator|Twitter Card Validator]]\\ [[https://developers.facebook.com/tools/debug/|シェアデバッガー - Facebook for Developers]]\\ [[https://validator.schema.org|スキーマ マークアップ検証ツール]]\\ [[https://developers.google.com/search/docs/advanced/structured-data|構造化データマークアップをテストする | Google検索セントラル | Google Developers]]\\ ===== REST API ===== ==== API Plugin ==== [[https://www.dokuwiki.org/plugin:api|plugin:api [DokuWiki]]]\\ GitHub: [[https://github.com/gerardnico/dokuwiki-plugin-api/|gerardnico/dokuwiki-plugin-api: A rest api interface for Dokuwiki]]\\ ==== Call DokuWiki REST API ==== URL: [[https://www.tomoyan.net/lib/exe/ajax.php?call=api|]]\\ Return:\\ <WRAP prewrap 100% result> <code javascript> {"api":"api","version":"2019-06-21"} </code> </WRAP> ^ 機能 (fn) ^ 引数 ^ 説明 ^ | version | - | DokuWiki のバージョンを取得する。 | | wiki | - | | URL: [[https://www.tomoyan.net/lib/exe/ajax.php?call=api&fn=version|]]\\ URL: [[https://www.tomoyan.net/lib/exe/ajax.php?call=api&fn=wiki|]]\\ URL: [[https://www.tomoyan.net/lib/exe/ajax.php?call=api&fn=pages&limit=10|]]\\ URL: [[https://www.tomoyan.net/lib/exe/ajax.php?call=api&fn=page&id=linux|]]\\ === Vue.js + axios で DokuWiki REST API をコールする === [[javascript:vuejs:dokuwiki_rest_api_sample|DokuWiki REST API Vue.js サンプルアプリ]]\\ <WRAP prewrap 100% mincode_long> <code javascript> <html> <script src="/_media/javascript/requirejs/require-2.3.6.min.js?cache=recache"></script> <script> self.DEBUG = true; </script> <script src="/_media/javascript/requirejs/settings.js?cache=nocache"></script> </html> ===== DokuWiki REST API Vue.js サンプルアプリ ===== <html> <div id="doku-vuejs-app"> <p>Vue.js version: {{ vue_ver }}</p> <p>Response Data(status: {{ response.status }}):</p> <pre>{{ response.data }}</pre> <p>axios response:</p> <pre>{{ response }}</pre> </div> <script> "use strict"; let doku_vuejs_app; require(['Vue','axios'], (Vue, axios) => { doku_vuejs_app = new Vue({ el: '#doku-vuejs-app', data: { vue_ver: Vue.version, response: '', }, created: function() { axios.get('/lib/exe/ajax.php?call=api') .then(response => { this.response = response; }); } }); }); </script> </html> ※Vue.js, REST API バージョンを表示するだけの簡単なサンプルアプリケーション。\\ </code> </WRAP> ===== XML-RPC ===== [[https://www.dokuwiki.org/devel:xmlrpc|devel:xmlrpc [DokuWiki]]]\\ ^ XML-RPC の機能 ^ ^ 関数名 ^ | dokuwiki.getPagelist | | dokuwiki.getVersion | | dokuwiki.getTime | | dokuwiki.getXMLRPCAPIVersion | | dokuwiki.login | | dokuwiki.search | | dokuwiki.getTitle | | dokuwiki.appendPage | | dokuwiki.setLocks | | dokuwiki.deleteUsers | | wiki.getRPCVersionSupported | | wiki.aclCheck | | wiki.getPage | | wiki.getPageVersion | | wiki.getPageVersions | | wiki.getPageInfo | | wiki.getPageInfoVersion | | wiki.getPageHTML | | wiki.getPageHTMLVersion | | wiki.putPage | | wiki.listLinks | | wiki.getAllPages | | wiki.getBackLinks | | wiki.getRecentChanges | | wiki.getRecentMediaChanges | | wiki.getAttachments | | wiki.getAttachment | | wiki.getAttachmentInfo | | wiki.putAttachment | | wiki.deleteAttachment | | plugin.acl.addAcl | | plugin.acl.delAcl | ==== Call DokuWiki XML-RPC ==== URL: [[https://www.tomoyan.net/lib/exe/xmlrpc.php|]]\\ ===== 以前のリビジョン ===== ==== 特定のリビジョンを削除する方法 ==== <dokuwiki>/data/attic/<namespace>/<attic file> を削除する。\\ <attic file> は dokuwiki.1437393935.txt.gz の様に、<pagename.連番.txt.gz> になっている。\\ \\ <dokuwiki>/data/meta/<namespace>/<pagename>.changes というメタファイルを編集します。\\ メタファイルも行ごとに連番が振られているので、上記で削除した連番の行を削除します。\\ <WRAP prewrap 100%> <code> 1376793743 122.249.153.239 E linux:dokuwiki tomoyan 1437393935 127.0.0.1 E linux:dokuwiki 外部編集 0 1546495335 127.0.0.1 E linux:dokuwiki tomoyan [geeklogのDokuWiki Plugi(注意: 以下>は古い情報です)] 1 </code> </WRAP> ==== サーバーキャッシュのパージ ==== 公式: [[https://www.dokuwiki.org/caching|caching [DokuWiki]]] [[gtr>https://www.dokuwiki.org/caching|翻訳]]\\ <WRAP color_term> <WRAP color_command><html><pre> <span style="color:#FF8700"><b>$</b></span> <span style="color:#26A269">touch</span><span style="color:#999999"> </span><span style="color:#999999"><u style="text-decoration-style:single">dokuwiki/conf/local.php</u></span> </pre></html></WRAP> </WRAP> ===== アップグレード ===== **[[http://www.dokuwiki.org/plugin:upgrade|DokuWiki Upgrade Plugin]]** で DokuWiki をアップグレードする。\\ ===== 参考文献 ===== DokuWiki 高速化に関する議論\\ [[https://forum.dokuwiki.org/d/7766-optimizing-dokuwiki-load-time/5|]]\\ テンプレート カスタマイズ\\ [[https://itlogs.net/dokuwiki-css/|DokuWikiのCSS(スタイルシート)カスタマイズ方法を解説 | 俺の開発研究所]]\\ ===== トラブルシューティング ===== ==== アップロードしたメディアの css や js の MIME タイプが "application/octet-stream" になる🤪 ==== <WRAP zoomimg w600 x1_2> {{:linux:css_js_application_octet-stream.png|MIME タイプ エラー}} </WRAP> メディアファイルの配信は DokuWiki によって行われ、<html><code>conf/mime.conf</code></html> に定義されている🤔\\ 定義が足りていない場合は追加する😉\\ <WRAP color_term> <WRAP color_command><html><pre> <font color="#0087FF"><b>$</b></font> <font color="#26A269">nano</font> <font color="#9E9E9E"><u style="text-decoration-style:solid">conf/mime.conf</u></font> </pre></html></WRAP> <WRAP color_mincode_long><html><pre> <font color="#444444"> 1</font> <font color="#FFFFFF"># Allowed uploadable file extensions and mimetypes are defined here.</font> <font color="#444444"> 2</font> <font color="#FFFFFF"># To extend this file it is recommended to create a mime.local.conf</font> <font color="#444444"> 3</font> <font color="#FFFFFF"># file. Mimetypes that should be downloadable and not be opened in the</font> <font color="#444444"> 4</font> <font color="#FFFFFF"># should be prefixed with a !</font> <font color="#444444"> 5</font> <font color="#444444"> 6</font> <font color="#FFFFFF">jpg image/jpeg</font> <font color="#444444"> 7</font> <font color="#FFFFFF">jpeg image/jpeg</font> <font color="#444444"> 8</font> <font color="#FFFFFF">gif image/gif</font> <font color="#444444"> 9</font> <font color="#FFFFFF">png image/png</font> <font color="#444444"> 10</font> <font color="#FFFFFF">webp image/webp</font> <font color="#444444"> 11</font> <font color="#FFFFFF">ico image/vnd.microsoft.icon</font> <font color="#444444"> 12</font> <font color="#444444"> 13</font> <font color="#FFFFFF">mp3 audio/mpeg</font> <font color="#444444"> 14</font> <font color="#FFFFFF">ogg audio/ogg</font> <font color="#444444"> 15</font> <font color="#FFFFFF">wav audio/wav</font> <font color="#444444"> 16</font> <font color="#FFFFFF">webm video/webm</font> <font color="#444444"> 17</font> <font color="#FFFFFF">ogv video/ogg</font> <font color="#444444"> 18</font> <font color="#FFFFFF">mp4 video/mp4</font> <font color="#444444"> 19</font> <font color="#FFFFFF">vtt text/vtt</font> <font color="#444444"> 20</font> <font color="#444444"> 21</font> <font color="#FFFFFF">tgz !application/octet-stream</font> <font color="#444444"> 22</font> <font color="#FFFFFF">tar !application/x-gtar</font> <font color="#444444"> 23</font> <font color="#FFFFFF">gz !application/octet-stream</font> <font color="#444444"> 24</font> <font color="#FFFFFF">bz2 !application/octet-stream</font> <font color="#444444"> 25</font> <font color="#FFFFFF">zip !application/zip</font> <font color="#444444"> 26</font> <font color="#FFFFFF">rar !application/rar</font> <font color="#444444"> 27</font> <font color="#FFFFFF">7z !application/x-7z-compressed</font> <font color="#444444"> 28</font> <font color="#444444"> 29</font> <font color="#FFFFFF">pdf application/pdf</font> <font color="#444444"> 30</font> <font color="#FFFFFF">ps !application/postscript</font> <font color="#444444"> 31</font> <font color="#444444"> 32</font> <font color="#FFFFFF">rpm !application/octet-stream</font> <font color="#444444"> 33</font> <font color="#FFFFFF">deb !application/octet-stream</font> <font color="#444444"> 34</font> <font color="#444444"> 35</font> <font color="#FFFFFF">doc !application/msword</font> <font color="#444444"> 36</font> <font color="#FFFFFF">xls !application/msexcel</font> <font color="#444444"> 37</font> <font color="#FFFFFF">ppt !application/mspowerpoint</font> <font color="#444444"> 38</font> <font color="#FFFFFF">rtf !application/msword</font> <font color="#444444"> 39</font> <font color="#444444"> 40</font> <font color="#FFFFFF">docx !application/vnd.openxmlformats-officedocument.wordprocessingml.document</font> <font color="#444444"> 41</font> <font color="#FFFFFF">xlsx !application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</font> <font color="#444444"> 42</font> <font color="#FFFFFF">pptx !application/vnd.openxmlformats-officedocument.presentationml.presentation</font> <font color="#444444"> 43</font> <font color="#444444"> 44</font> <font color="#FFFFFF">sxw !application/soffice</font> <font color="#444444"> 45</font> <font color="#FFFFFF">sxc !application/soffice</font> <font color="#444444"> 46</font> <font color="#FFFFFF">sxi !application/soffice</font> <font color="#444444"> 47</font> <font color="#FFFFFF">sxd !application/soffice</font> <font color="#444444"> 48</font> <font color="#444444"> 49</font> <font color="#FFFFFF">odc !application/vnd.oasis.opendocument.chart</font> <font color="#444444"> 50</font> <font color="#FFFFFF">odf !application/vnd.oasis.opendocument.formula</font> <font color="#444444"> 51</font> <font color="#FFFFFF">odg !application/vnd.oasis.opendocument.graphics</font> <font color="#444444"> 52</font> <font color="#FFFFFF">odi !application/vnd.oasis.opendocument.image</font> <font color="#444444"> 53</font> <font color="#FFFFFF">odp !application/vnd.oasis.opendocument.presentation</font> <font color="#444444"> 54</font> <font color="#FFFFFF">ods !application/vnd.oasis.opendocument.spreadsheet</font> <font color="#444444"> 55</font> <font color="#FFFFFF">odt !application/vnd.oasis.opendocument.text</font> <font color="#444444"> 56</font> <font color="#444444"> 57</font> <font color="#FFFFFF">svg image/svg+xml</font> <font color="#444444"> 58</font> <font color="#444444"> 59</font> <font color="#FFFFFF"># You should enable HTML and Text uploads only for restricted Wikis.</font> <font color="#444444"> 60</font> <font color="#FFFFFF"># Spammers are known to upload spam pages through unprotected Wikis.</font> <font color="#444444"> 61</font> <font color="#FFFFFF"># Note: Enabling HTML opens Cross Site Scripting vulnerabilities</font> <font color="#444444"> 62</font> <font color="#FFFFFF"># through JavaScript. Only enable this with trusted users. You</font> <font color="#444444"> 63</font> <font color="#FFFFFF"># need to disable the iexssprotect option additionally to</font> <font color="#444444"> 64</font> <font color="#FFFFFF"># adding the mime type here</font> <font color="#444444"> 65</font> <font color="#FFFFFF">#html text/html</font> <font color="#444444"> 66</font> <font color="#FFFFFF">#htm text/html</font> <font color="#444444"> 67</font> <font color="#FFFFFF">#txt text/plain</font> <font color="#444444"> 68</font> <font color="#FFFFFF">#conf text/plain</font> <font color="#444444"> 69</font> <font color="#FFFFFF">#xml text/xml</font> <font color="#444444"> 70</font> <font color="#FFFFFF">#csv text/csv</font> <font color="#444444"> 71</font> <span style="background-color:#303030"><font color="#FFFFFF">css text/css</font></span><span style="background-color:#303030"> </span> <font color="#444444"> 72</font> <span style="background-color:#303030"><font color="#FFFFFF">js text/javascript</font></span><span style="background-color:#303030"> </span> <font color="#444444"> 73</font> <font color="#444444"> 74</font> <font color="#FFFFFF"># Also flash may be able to execute arbitrary scripts in the website's</font> <font color="#444444"> 75</font> <font color="#FFFFFF"># context</font> <font color="#444444"> 76</font> <font color="#FFFFFF">#swf application/x-shockwave-flash</font> <font color="#444444"> 77</font> </pre></html></WRAP> </WRAP> ==== GOTO Plugin リダイレクトしているページが Google Search Console がソフト 404 エラーを通知する場合の対処 ==== <code> 送信された URL はソフト 404 エラーのようです </code> [[https://support.google.com/webmasters/answer/181708|ソフト 404 エラー - Search Console ヘルプ]]\\ **原因:**\\ 古い URL をブックマークしているユーザーを考慮して、このページが存在しないことを表示して GOTO Plugin で移設先へ適切にリダイレクトするようにしたい。しかし、Google のクローラーのことを考慮すると本来であればこのようなページは 301 (移動した) スタータスを返すべきであるが、GOTO Plugin は一旦 200 (OK) ステータスを返してから一定時間経過後にリダイレクトする。\\ つまり、このようなページは検索エンジンには登録されるべきではないので、以下のような対策を行う。\\ GOTO Plugin と HtmlMetaTags Plugin を併用して、ユーザーには移動したことをお知らせしつつリダイレクトして、Google のクローラーには検索エンジンには登録しないように通知する。\\ <code> {{htmlmetatags>metatag-robots=(noindex,nofollow)}} ~~GOTO>windows:regex~~ </code> ==== DokuWiki バージョンアップ後に svg イメージが表示されない ==== **dokuwiki/conf/mime.conf** が更新時に上書きされているので、以下の設定が存在しないのが原因である。\\ <code autoconf dokuwiki/conf/mime.conf> svg image/svg+xml </code> バックアップなどから **mime.conf** を復元するか、上記の設定をし直す。\\ ==== DokuWiki バージョンアップ後に JavaScript が動作しない ==== Indexmenu Plugin で **dTree is not defined** スクリプトエラーが発生する。(Plugin が最新ではない場合)\\ または、以下のエラーが表示される。\\ <code> Indexmenu Plugin: If you use the 'js'-option of the indexmenu plugin, you have to disable the 'defer_js'-setting. This setting is temporary, in the future the indexmenu plugin will be improved. </code> 様々な Plugin で **jQuery not defined** スクリプトエラーが発生する。(Chrome のデベロッパーツール Ctrl + Shift + I の Console)\\ 対処方法:\\ [管理] - [サイト設定] - **機能フラグ** の **defer_js** オプションを**オフ**にする。\\ ===== crypt(2009-02-17) プラグイン ===== js が「addInitEvent is not defined」エラーになるので、addInitEvent を jQuery に修正する。\\ <file php dokuwiki/lib/plugins/crypt/ation.php> <?php if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'action.php'); class action_plugin_crypt extends DokuWiki_Action_Plugin { function register($controller) { $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, '_hookjs'); } function _hookjs(&$event, $param) { $event->data['script'][]=array('type'=>'text/javascript','charset'=>'utf-8' // ,'_data'=>'','_data'=>"addInitEvent(function() { return(decryptEditSetup()); });"); ,'_data'=>'','_data'=>"jQuery(function() { return(decryptEditSetup()); });"); } } </file> js が「locktimer is not defined」エラーになるので、locktimer を dw_locktimer に修正する。\\ <file javascript dokuwiki/lib/plugins/crypt/script.js> function decryptEditSetup(msg) { var editform=null, wikitext=null, hiddentext=null, preview=null; if(!(editform=document.getElementById('dw__editform'))) { // alert("no form dw__editform\n"); return(true); } if(!(wikitext=document.getElementById('wiki__text'))) { // alert("no wiki__text"); return(false); } // if there is no preview button, then assume this is a // "Recover draft" page, dont do anything. if(!(preview=document.getElementById('edbtn__preview'))) { return(false); } // create a hidden element with id 'wiki__text_submit' and // name wikitext_edit (same as the wiki__text. move the real // wikI__text element out of the form (so it is not submitted and // any <SECRET> text left unencrypted if(!(hiddentext=document.createElement('input'))) { return(false); } hiddentext.setAttribute('id', 'wiki__text_submit'); hiddentext.setAttribute('name', 'wikitext'); hiddentext.setAttribute('type','hidden'); editform.insertBefore(hiddentext,null); editform.parentNode.insertBefore(wikitext,editform); if(!(decryptButton=document.createElement('input'))) { return(false); } decryptButton.setAttribute('id', 'decryptButton'); decryptButton.setAttribute('name', 'decryptButton'); decryptButton.setAttribute('type','Button'); decryptButton.setAttribute('value','DecryptSecret'); // decryptButton.setAttribute('onclick',decryptEditForm); decryptButton.onclick=decryptEditForm; decryptButton.setAttribute('class','button'); decryptButton.setAttribute('className','button'); // required for IE preview.parentNode.insertBefore(decryptButton,preview); editform.onsubmit = function() {return editFormOnSubmit();}; // the following is taken from lib/scripts/edit.js to make drafts work dw_locktimer.refresh = function(){ var now = new Date(); // refresh every minute only if(now.getTime() - dw_locktimer.lasttime.getTime() > 30*1000){ //FIXME decide on time var params = 'call=lock&id='+encodeURIComponent(dw_locktimer.pageid); if(dw_locktimer.draft){ var dwform = $('dw__editform'); // begin plugin modified code if(encryptForSubmit()===false) { return(false); } // end plugin modified code params += '&prefix='+encodeURIComponent(dwform.elements.prefix.value); params += '&wikitext='+encodeURIComponent(dwform.elements.wikitext.value); params += '&suffix='+encodeURIComponent(dwform.elements.suffix.value); params += '&date='+encodeURIComponent(dwform.elements.date.value); } dw_locktimer.sack.runAJAX(params); dw_locktimer.lasttime = now; } }; } </file> ===== geeklog の DokuWiki Plugin ===== ==== インストール ==== [[http://geeklog.fr/downloads/index.php/59|Free Content Management System GPL - Geeklog France]] からインストールできます。 ==== Geeklog Dokuwiki Plugin で SyntaxHighlighter3 を使えるようにする ==== geeklog 1.8.0 では、Javascript をフッターのテーマ変数{plg_footercode}で実行するようになったらしく、SyntaxHighlighter3 が動作しない。\\ そのため lib-common.php とテーマのヘッダーテンプレートを改造する。\\ ※この改造による影響の有無は不明です。暫くこれで運用してみます。\\ \\ COM_siteFooter関数内1,514行目(*1)付近(フッターに出力しているscriptを止める)\\ *1 - 1.8.0 の行番号, 2.0.0 では 1,570行目付近。 <code php highlight:[2]> // Retrieve any JavaScript libraries, variables and functions //$footercode = $_SCRIPTS->getFooter(); </code> COM_siteHeader関数内1,286行目(*2)付近(ヘッダーの新たなテーマ変数plg_extrascriptにscriptを出力する)\\ *2 - 1.8.0 の行番号, 2.0.0 では 1,337行目付近。 <code php highlight:[3,4]> $headercode = $_SCRIPTS->getHeader() . $headercode; $header->set_var( 'plg_headercode', $headercode ); // Retrieve any JavaScript libraries, variables and functions $header->set_var('plg_extrascript', $_SCRIPTS->getFooter()); </code> 使っているテーマの header.thtml に追記する。 <code html highlight:[13]> {doctype} <html{html_attribute}{xmlns}> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"{xhtml}> <title>{page_title_and_site_name}</title> <meta http-equiv="Content-Script-Type" content="text/javascript"{xhtml}> <meta http-equiv="Content-Style-Type" content="text/css"{xhtml}> <link rel="SHORTCUT ICON" href="{layout_url}/images/favicon.ico"{xhtml}> <!-- <meta http-equiv="Pragma" content="no-cache"{xhtml}> --> {feed_url} {rel_links} {plg_headercode} {plg_extrascript} </head> </code> ==== forum.css の修正 ==== Geeklog Forum Plugin の forum.css が Dokuwiki の syntaxhighlighter3 に悪影響するので修正\\ **%%/path/to/public_html/forum/forum/layout/forum.css%%** <code css> /* CSS Declarations for Code block feature - default will use the .php one */ .pluginSolidOutline div .php { max-height:400px; overflow:auto; height:auto; width:auto; min-height:100px; } .pluginSolidOutline div .html { height:300px; overflow:auto; width:auto; min-height:100px; } .pluginSolidOutline div .css { height:300px; overflow:auto; width:auto; min-height:100px; } </code> ===== ☢️古い資料です (Obsolete)☢️ ===== ==== geeklogのDokuWiki Plugin ==== === 管理者用のサイト設定 === 使用言語: ja で日本語化されない場合は、/dokuwiki/conf/local.protected.phpにて追加設定を行う。\\ **local.protected.php** に __**$conf['lang'] = 'ja';**__ を追加\\ <code php> <?php /** * DokuWiki - Geeklog Integration Plugin * * This file holds configuration information specific to the * integration of DokuWiki with Geeklog. * * You will need to change the require_once() line below to * point to your Geeklog lib-common.php file. * * No other changes should be made to this protected file. */ //~省略~ $conf['lang'] = 'ja'; /* --- Do not change anything below this line --- */ //~省略~ ?> </code> ===== 参考文献 ===== [[https://dokuwiki.oreda.net/plugin/list.html|DokuWikiおすすめプラグイン一覧。まとめ [DokuWikiで情報発信]]]\\ [[qita>ruddy95/items/e12498ab7c0eb56611a2|WEBページをコンテントセキュリティポリシー(CSP)対応させる - Qiita]]\\ [[qita>tearoom6/items/30e3aacaa432860d4b36|HTTP CSP について - Qiita]]\\ [[https://you84815.blogspot.com/2017/01/dokuwikicontent-security-policy.html|tobijibu-ashiato: DokuWikiのContent-Security-Policy対応方法]]\\ [[https://laboradian.com/show-text-immediately-using-font-display/|Webフォントを使う場合に font-display 記述子を使ってすぐにテキストを表示させる – ラボラジアン]]\\ [[https://www.achiachi.net/blog/index.html|トップページ [あちあち情報局]]]\\ ==== 付録 ==== [[tw>tomoyan596/status/1462064104101888002|これはDokuWikiの編集画面ですけど、CSSも埋められますけど、LESSでスタイル定義できたり...🤤PHP?🤔テーマファイルはcustom.lessとかコンパイルされますけど、編集しながら試したいのでlessphp呼び出してしまえばねぇ可能な訳でつい😅💦 / Twitter]]\\ [[tw>tomoyan596/status/1490051770806005760|😱😱😱CodeMirror Pluginががががが😥 多分テンプレートのモバイルCSSと相性宜しくない😅]]\\ [[tw>tomoyan596/status/1492593642459914240|またもや、CodeMirrorプラグインがテーマのドラフトステータスによりヤラレテル😱😱😱これはテーマ側での対処は速いけど、どのテーマとも相性出るならCodeMirrorプラグイン側に対処を入れるべきか❓🤔自分のサイト専用カスタムのcustom.lessで対処入れられるか❓🤔編集側にしか影響は無いけど…😅]]\\ [[tw>tomoyan596sp/status/1514366405139103747|AVIFもWebPのように、このような対応が良いですね🥰]]\\ [[tw>tomoyan596sp/status/1554871221518422016|サーバーをPHP 8へ移行してる🤤Wikiを移行してるだけだけど😅先ずはフルバックアップしてPHP 8対応版の Release 2022-07-31 "Igor" へアップグレード完了した🤔PHP 7.4 から PHP 8系へシステムのパッケージを入れ替える😃移行ははじめてですけど...🤔]]\\ [[tw>tomoyan596sp/status/1569795203896320000|Bootstrapテーマの目次の折り畳みがおかしいのは、TocTweakプラグインとテーマが喧嘩⚔️してるから😅テーマやプラグインは確かに便利で楽だけど、組み合わせはユーザーが自由にやるので、作者さんも全てのパターンに対処しきれません🤔 !important 重要☝😅]]\\ linux/dokuwiki.txt 最終更新: 2025/03/28 12:27by ともやん