PowerCMS X ブログ

2022-12-16

AI翻訳支援機能を「やさしい日本語チェッカー」として利用する

12月13日にリリースした PowerCMS X ver.3.09で、AI翻訳が苦手な原文や逆翻訳結果と原文比較が簡単に行えるAI翻訳支援機能を追加しました。
いくつかの追加設定をすることで「やさしい日本語」の文章を作成する際の助けになる「やさしい日本語チェッカー」として利用する方法をご紹介します。

リッチテキストエディタのAI翻訳ボタンでの翻訳時に、AI翻訳時に誤訳に繋がりやすい表現を指摘したり、逆翻訳の結果を提示することで、翻訳の精度を高めるのを補助する機能です。

この機能を利用するための設定

  • PowerCMS X ver.3.09へアップグレードします。
  • 「TinyMCE」「MachineTranslator」「SimplifiedJapanese」プラグインを有効化します。
  • 必要に応じてスキーマをアップグレードします。
  • プラグイン「MachineTranslator」のプラグイン設定で Microsoft Translatorのサブスクリプション・キーを登録します。
  • プラグイン「TinyMCE」の設定、ツールバーに「pt-translate」必要に応じて「pt-simplified-japanese pt-break-with-clauses pt-furigana pt-ruby pt-remove-ruby」を追加して下さい。
  • プラグイン「SimplifiedJapanese」のプラグイン設定で「やさしい日本語エディタ画面に言語選択ボタンを表示する」にチェックを入れて保存して下さい。
  • 環境変数「machinetranslator_japanese_check」を trueに設定して下さい。

以上で準備は整いました。

AI翻訳支援機能の利用

「ツール」→「やさしい日本語」または、記事などのリッチテキストエディタのあるモデルの新規作成画面に移動します。
テキストを入力して、翻訳したい部分を選択します。「翻訳ボタン」をクリックします。

リッチテキスト上でテキストを選択して「翻訳」ボタンをクリックします

ここでは、例として、以下の文章をテストします。

市立小学校の1学級において、本日11月10日(木曜日)に、新型コロナウイルスに感染した児童が複数人確認されました。

次のようなダイアログが表示されます。

警告と翻訳結果と逆翻訳結果を表示・警告の該当箇所には色が付いている

該当する箇所に、色が付いた状態で「伝わりにくい」「機械翻訳の誤訳につながる可能性のある」部分を指摘します。チェックする項目は以下の通りです。

  • 1文の長さが指定拍数を超えている
  • 主語/目的語が見つからない
  • 二重否定
  • 否定疑問文
  • 不要な修飾語や冗長な表現
  • 受動態
  • 指示語・代名詞
  • 曖昧な表現(ましょう・でしょう)
  • オノマトペ
  • 慣用句
  • 使役動詞
  • 同一文字種の連続(漢字・カタカナ・ひらがな)※固有名詞を除く
  • 和暦
  • 午前/午後n時

1文の長さが指定拍数を超えている、同一文字種の連続については、設定でパラメタを変更できます。

        "machinetranslator_japanese_check_len" : 62,
        "machinetranslator_kanji_characters" : 7,
        "machinetranslator_katakana_characters" : 7,
        "machinetranslator_hiragana_characters" : 13,

やさしい日本語チェックに利用するのであれば、machinetranslator_japanese_check_lenを「24」など小さめの数字に設定して下さい。
尚、「指定拍数」は「文字数」ではなく「ひらがなに換算したときの文字数」と考えて下さい。

この文章では、以下のエラーが検出されました。

  • 1文の長さが長すぎます。文章を分割することを検討してください。
  • 文中に主語が見つかりませんでした。
  • 受動態は能動態に変更できないか検討してみてください。

さらに、その下に、機械翻訳の結果、その下に、翻訳結果を逆翻訳した結果を表示します。

In the first class of a municipal elementary school, several children infected with the new coronavirus were confirmed today, Thursday, November 10.

市立小学校の1学級で、本日11月10日(木)に新型コロナウイルスの感染者が数名確認されました。

In the first class」が明らかにおかしな翻訳になっていることがわかります。

ダイアログの見出し横の「鉛筆」アイコン(クリックすると「再評価」ボタンに変わります)をクリックすると、文章を修正することができます。

編集可能な状態になる

英訳結果と「警告」の内容を踏まえ、以下のように文章を修正します。

11月10日、市立小学校の1つの学級で、複数人の児童が新型コロナウイルスに感染しました。

再翻訳結果を確認し「翻訳を適用」「原文を修正」するかのいずれかのボタンをクリックします。さらに続きの文章を検証します。

感染した児童の在籍する学級において、発熱等の体調不良による欠席者が目立つようになったため、感染症拡大防止の観点から、該当する小学校の1学級を、下記のとおり児童の保護者への引き渡し、及び学級閉鎖をします。

チェック結果は以下の通りです。

  • 1文の長さが長すぎます。文章を分割することを検討してください。
  • 固有名詞を除いて、同種の文字が連続する時は漢字、ひらがな、カタカナをバランスよく使った文章にしてください。

逆翻訳の以下の部分がおかしくなっています。

感染児童が在籍する学級において、発熱等による欠席者が目立つようになったため、感染症拡大防止の観点から、当該小学校の1学級を児童保護者に引き渡し、下記の通り休講とさせていただきます。

これらを踏まえ、以下のように文章を3つに分割した上で、修正を行いました。

感染した子どもが在籍する学級では、発熱などの体調不良による欠席者が目立つようになりました。
感染症の拡大を防ぐため、当該小学校の1つの学級では、児童を保護者に引き渡します。
感染した子供がいるクラスは閉鎖します。

エラーの指摘はなくなりました。結果を確認してから、「翻訳を適用する」または「原文を修正する」をクリックします。

原文を修正してから他の言語に切り替えて翻訳する

(もちろん人によって違いますが)「英語ならある程度はわかる」人も多いと思います。翻訳結果がおかしくなっている場合も、英語であれば気づくことができるのであれば、最初に英語で試してから、原文を修正し、言語を切り替えてから翻訳を行うのがおすすめです。

言語選択ダイアログ

言語を切り替えるには、画面右下の地球アイコンをクリックしてください。

やさしい日本語チェッカとして利用する

ここまでは、多言語翻訳への前チェックとしての使い方を紹介しましたが、この機能を「やさしい日本語」チェッカとして使うこともできます。

この機能を有効かするには環境変数「machinetranslator_difficulty_check」に trueを指定します。単語の難易度チェックが追加されます。
さらに「UniDic 別ウィンドウで開きます」を利用することで「漢語」と「和語」「外来語」「数字」などを可視化することもできます。

参考 : MeCab + Unidic を使って単語の語種(和語、漢語)を表示する 別ウィンドウで開きます

  • UniDicをインストールする
  • dicrcをカスタマイズする(以下を追加)
output-format-type = unidic2
node-format-unidic2 = %m\t%f[9]\t%f[6]\t%f[7]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\t%f[12]\n
unk-format-unidic2  = %m\t%m\t%m\t%m\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
bos-format-unidic2  =
eos-format-unidic2  = EOS\n 
  • 環境変数「simplifiedjapanese_unidic_path」に unidicのパスを設定します「/usr/local/lib/mecab/dic/unidic」など。

設定後、ダイアログが以下のように変わります。

単語の難易度と漢語と和語、外来語を可視化したものが追加される

難易度の判定について

独自のデータベースを元に、単語の難易度を5段階(+級外、固有名詞)で可視化します。このデータベースは以下の情報ソースを利用して独自に作成しました。

  • 日本語能力試験(JLPT)の(旧)出題基準
  • 日本語能力試験(JLPT)の(現)問題例・試験問題例
  • やさしい日本語で書かれた文章(※)をコーパスとして解析し、単語の出現頻度を考慮して難易度を調整

※ NHKの「NEWS WEB EASY 別ウィンドウで開きます」や、大学などの研究成果として公開されている「やさしい日本語コーパス 別ウィンドウで開きます」などを利用しました。

漢語・和語・外来語の類別について

Unidicを利用して「漢語」「和語」「外来語」「数字」を分類して可視化します。一般的には「漢語」を使いすぎず、「和語」の比率を上げたほうがやさしい日本語になると言われています。

やさしい日本語チェックの方法

  • 「警告」が出ている部分の見直し
  • 翻訳結果・逆翻訳結果の確認(逆翻訳結果が原文と大きく異なる時は見直したほうが良いかもしれません)
  • 難語(色の濃い部分)の他の単語への言い換えの検討
  • 漢語率が高い文章は、和語への置き換えを検討

尚、エディタ上の「やさしい日本語」ボタンを利用することで「伝えるウェブ 別ウィンドウで開きます」による言い換えを行うこともできます。必要に応じて言い換えのヒントに利用してください。

伝えるウェブの機能で言い換えた結果を参考にする

カテゴリー:プラグイン | 技術情報

投稿者:Junnama Noda

2022-12-15

ウェブサイトリニューアル案件で移行後のHTMLを検査〜自動的に修正する

ウェブサイトリニューアル案件での古いHTMLへの対応問題

ウェブサイトのリニューアルなどの工数の多くを占めるデータ移行。PowerCMS XではWebスクレイピングによるデータ移行をサポートしており、大量のコンテンツを管理画面操作で簡単に移行できます。ただし、移行したHTMLはリニューアル後のコーディングルールに沿っていないことが前提であり、また、ウェブアクセシビリティ対応などが要件として入っている場合、単に移行して終わり、とはいきません。

PowerCMS X ver.3.08で追加された「AxeRunner」は機械的に検証可能な部分について、CMSから出力されたすべてのページのアクセシビリティチェックを定期的に行うことができます。また、The Nu Html Checker等 を使って、HTMLの文法違反などについては機械的に検証しておくと良いでしょう。

vnuでコマンドラインからNu Html Checkerを使うようにした

開発のきっかけになった案件ではvNu 別ウィンドウで開きますでコマンドラインからNu Html Checkerを使い1時間に2回エラーを TSVに書き出すようにして進めました

ある案件の際に問題となったのが、大量のHTMLの文法違反です。単純な間違いももちろんあるのですが、移行元のサイトに古いHTMLが残っている場合には、最新のHTMLでは廃止された要素やタグ属性が使われていて、これが大量にエラーを吐きます。アクセシビリティ上の問題の有無以前に、妥当なHTMLではない、という時点で大量のエラーが出るため、その対応に追われてしまうことになり、本来修正すべき点への対応に時間を割けないという本末転倒の状態になります。また、廃止された要素や属性をブラウザがサポートしているうちは良いですが、サポートされなくなることでコンテンツの意味合いが異なってしまう懸念があります。

  • まず、vNu のエラーのみを TSV ファイルにするシェルスクリプトをサーバーに設置して、1時間に2回、エラーのみをTSVファイルに出力するように設定、エラーがないかを確認しながら進めるようにしました(この段階では大量のエラーが存在しました)。
  • AxeRunnerで1日に1回、すべてのページの機械的なアクセシビリティチェックを実行するようにしました。
  • HTMLの修復に「HTML Tidy」が使えないか検討しました。

vNu で特定ディレクトリ配下の HTML ファイルのエラーを TSV ファイルにするシェルスクリプト

#!/bin/bash
url=https://www.example.jp
doc_root=/var/www/html
num_path_tsv=$HOME/var/num-path.tsv # 案件固有の管理番号と URL のパスの対応を定義した TSV ファイル
output_tsv=$doc_root/vnu-results.tsv
cd /tmp &&
wget --quiet --timestamping https://github.com/validator/validator/releases/download/latest/vnu.linux.zip{,.sha1} &&
echo "$(cat vnu.linux.zip.sha1) vnu.linux.zip" | sha1sum --check --quiet - &&
tempdir=$(mktemp -d) &&
tempfile=$(mktemp --tmpdir=$tempdir) &&
cd $tempdir &&
unzip -q /tmp/vnu.linux.zip &&
ionice -c3 vnu-runtime-image/bin/vnu --skip-non-html --errors-only --stdout $doc_root |
  perl -E'my%u;while(<>){if(m,^"file:'$doc_root'([^"]+)":(.+),){$a=$u{$1}||[];push(@$a,$2);$u{$1}=$a}}say"#\tURL\tHTML error";for$k(sort keys%u){($n=`grep $k '\'$num_path_tsv\''`||"")=~s/\t.*//s;@a=@{$u{$k}};$v=shift@a;say"$n\t'$url'$k\t$v";say"\t\t$_"for@a}' > $tempfile &&
chown apache: $tempfile && # 任意
mv $tempfile $output_tsv &&
rm -rf $tempdir

※ y君が設定してくれました。

AxeRunnerプラグインによるレポート

加えてAxeRunnereプラグインで「axe-core」による自動検証を1日1回実行するように設定しました

HTML Tidyのプラグイン化

HTML Tidy 別ウィンドウで開きますはPHPのバインディングがあり、PowerCMS Xのプラグインとして、静的ファイル出力時のフィルタとして組み込んでみました(データそのものは変えずに静的HTML出力時に変換する)。こうすることで、DBなどを誤って書き換えてしまい、元に戻せなくなることを避けることができます。不足している閉じタグを補完してくれたり、一定の効果があることがわかりましたが、cleanを指定して実行すると、必要なdiv、spanタグが消えてしまうケースなどの副作用もありました。また、廃止されたタグ属性を単純に削除してしまうと、ページの表示が元のサイトで意図していたものと異なってしまうことがあります。これを防ぐために、見栄えを指定するようなタグやタグ属性は単純に削除するのではなく、CSSに置き換えて、見た目に関してできるだけ元のページで意図したものを再現しつつ、修復を図る必要がありました。

そこで、HTML Tidyによる最低限の修復に加え、独自の処理を実装したものが、PowerCMS X ver.3.09で追加になった「HTMLTidy」プラグインです(最終的には HTML Tidyを用いた修正よりも独自のDom操作によるクリーンアップ処理の方が多くなったため、PHP拡張がインストールされていない環境でも利用できるようにしました)。何を実行するかについては、主に環境変数で指定します。環境変数ごとに、どのような修復を行うかについてご紹介します。※ 以下に、このプラグインを作るきっかけとなった案件でよく見られたものや、実装の意図などを追記しています。

開発のきっかけとなった大型の案件では、1万件を超える文法エラーの90%近くを修復できました。

tidy_html5

HTML5で追加されたタグを認識させます。初期値は trueです。

tidy_cleanup

HTMLTidyによるマークアップの修復を行います。空の要素などは削除されます。初期値は falseです。

tidy_re_save_html

修正後の HTMLを再度 DomDocumentで loadHTMLし、saveHTMLします。初期値は falseです。

tidy_outputfilter

trueを指定すると再構築時に文書全体に対して処理を行います。初期値は falseです。

tidy_css_to_head

廃止された要素を CSSに置き換えを行う時、インライン CSSではなく classを付与して HTMLの head内に styleタグを追加します。初期値は falseです。

※ リニューアル後の新しいデザインより「弱く」適用するという狙いから、このように指定できるようにしました。また、同じ指定がある時、インラインで指定せず、纏めることができます。

<td class="class1 class2" cellpadding="2" align="right" bgcolor="black">
指定なしだと、以下のようになります。
<td class="class1 class2" style="text-align:right;padding:2px;background-color:black">
指定ありだと、以下のようにハッシュで生成された値のclassを追加して、head内にCSSを追加します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>.tidy-o44zxA{text-align:right;padding:2px;background-color:black}</style>
...
<td class="class1 class2 tidy-o44zxA">

※ 以下の例では、tidy_css_to_head 指定のある変換例で紹介します。

tidy_class_prefix

tidy_css_to_head指定のある時、要素に追加する class名のプレフィックスです。初期値は「tidy」です。

tidy_clean_table

テーブル(table, tr, th, td)のクリーンナップを行います。廃止された属性を CSSに変換します('width', 'height', 'align', 'valign', 'cellpadding', 'nowrap', 'bgcolor')。また、tdタグに scope属性があったら削除します。初期値は trueです。

tidy_clean_table_border, tidy_clean_table_zero_border

table要素の border属性を削除します。初期値は trueです。

tidy_table_presentation_class

指定した値にマッチする class名が付与されている table要素に role="presentation"を追加します。初期値の指定はありません。

※ レイアウト目的であろうテーブルが存在し、table class="layout" のような指定が見られたので、role="presentation"を追加するような設定を設けました。

tidy_clean_image

imgタグのクリーンナップを行います。廃止された属性を CSSに変換します('vspace', 'hspace', 'border')。不正な width, height を削除します(空文字・数字を含まないなど)。alt属性のない img要素に alt="" を追加します。初期値は trueです。

tidy_clean_duplicate_alt

 img要素が aタグの中にある時、aタグの要素内容のテキストと画像の alt属性値が重複している時、alt属性値を空にします。「2」を指定すると、aタグの要素内容のテキストと画像の alt属性値が同一の時のみ、属性値を空にします。tidy_clean_imageが有効な時のみ作用します。初期値は「0」です。

<a href="/">ホーム <img src="/imgs/icon_home.png" alt="ホーム"></a>
を以下のように修正します。
<a href="/">ホーム <img src="/imgs/icon_home.png" alt=""></a>
2を指定したときは、上記のケース(一致)は修正しますが、下記のケース(部分一致)は修正しません。
<a href="/">ホームへ <img src="/imgs/icon_home.png" alt="ホーム"></a>

※ 自分的には、これが結構お気に入りです。

tidy_clean_image_attrs

img要素に指定できない属性を削除します。初期値は「longdesc,name」です。longdescについては alt属性値にマージされます。

tidy_clean_block_align

ブロック要素の align属性を CSSの text-alignに置換します。対象は('p', 'div', 'dd', 'li')要素で、初期値は trueです。 trueの代わりに要素名の配列を指定することもできます。

tidy_clean_br_clear

br要素に指定された clear属性を CSSに変換します。初期値は trueです。

tidy_clean_a_href

 URLに指定できない文字列を置き換えます。初期値は('&#13;' => '', ' ' => '%20')です。

tidy_clean_a_name

a要素の name属性を id属性に置き換えます。初期値は falseです。

tidy_clean_font

font要素を span要素に置き換えて color, size, face属性値を CSSに変換します。初期値は trueです。

<font size="7" color="red" face="MS Pゴシック">変換のサンプル</font>
上記のHTMLを以下のように変換します。
<style>.tidy-KsjFHw{font-size:xxx-large;color:red;font-family:"MS Pゴシック"}</style>
...
<span class="tidy-KsjFHw">変換のサンプル</span>

size属性値とCSSは以下のルールで置き換えます。

  1 → x-small
  2 → small
  4 → large
  5 → x-large
  6 → xx-large
  7 → xxx-large
 +1,+2は120%×数字、-はその逆

ちなみに以下で取り上げるbig要素は「larger」となります。

tidy_clean_deprecated

設定で指定した廃止された要素を置き換え可能な要素に置き換えます。属性値はそのまま引き継がれます。初期値は{"acronym":"abbr","s":"del","strike":"del","dir":"ul","big":"span","tt":"span","u":"span","center":"div"}です。

<acronym class="class1" title="North Atlantic Treaty Organisation">NATO</acronym>
以下のように変換します。
<abbr class="class1" title="North Atlantic Treaty Organisation">NATO</abbr>

center, big, tt, u要素にはスタイルを付与します。

<center>
<big>文字拡大</big>
<tt>等幅テキスト</tt>
<u>アンダーライン</u>
</center>
以下のように変換します。
<style>.tidy-eUSLNg{font-size:larger}.tidy-1XKNSg{font-family:monospace}.tidy-LzbG6g{text-decoration:underline}.tidy--IcXnw{text-align:center}</style>
...
<div class="tidy--IcXnw">
<span class="tidy-eUSLNg">文字拡大</span>
<span class="tidy-1XKNSg">等幅テキスト</span>
<span class="tidy-LzbG6g">アンダーライン</span>
</div>

tidy_clean_applet

applet要素を object要素に置き換えます。初期値は trueです。

tidy_clean_dl

dl要素に必要な子要素がない時、必要な要素を補完します。dt要素もdd要素も存在しない場合、p要素に置き換えるか、内容がなければ要素自体を削除します。また、置くことのできない要素が直接置かれている時に、直近の dtdd要素にマージします。初期値は trueです。

tidy_clean_ul_ol

ulol要素に必要な子要素(li要素)がない時、必要な要素を補完します。また、置くことのできない要素が直接置かれている時に、直近の li要素にマージします。初期値は trueです。

tidy_clean_area

area要素の nohref属性(廃止)を削除し、coords内のスペースを削除します。初期値は trueです。

tidy_clean_iframe

iframe要素の frameborder属性(非推奨)を削除します。初期値は trueです。

tidy_clean_lang

lang属性の誤りを修正します。初期値は指定なしです。単に trueを指定した場合 jpja に置き換えます。他のパターンをハッシュで指定することもできます。初期値は「{"jp":"ja"}」です。

※ 他にも、様々なものが存在しました。{"jp":"ja","eん":"en","e":false,"po":"pt","eb":"en","vn":"vi","tu":"tr","cn":"zh","sp":"es"} (falseを指定したものは属性自体を削除します)

tidy_clean_empty_attrs

カンマ区切りで指定した属性の属性値が空文字であるものを削除します。初期値はありません。

tidy_clean_empty_a

href属性を含み、name属性のない a要素の要素内容が空(または空文字のみ)の時、a要素を削除します。初期値は falseです。

tidy_clean_comment

コメントノードを削除します。初期値は trueです。

tidy_clean_double_byte_space

'table', 'ul', 'ol', 'dl'要素内に直接置かれた全角スペースを半角スペースに置き換えます。初期値は trueです。

※ 結構ありました。

tidy_repair_ldquo_rdquo

「&#147;」を「“」に、「&#148;」を「”」に、「&#151;」を「—」置き換えます。初期値は falseです。

tidy_force_utf8

文字コードが UTF8のみである時に指定します。初期値は trueです。

tidy_clean_code_point

不正なコードポイントを UTF8文字に置き換えます。初期値は falseです。

tidy_html_wrap

整形後の HTMLを折り返す文字数を指定します。初期値は「0」です。

tidy_config

PHPの「tidy_parse_string」に渡す第2引数のハッシュを指定します。初期値の指定はありません。オプションについての説明は » http://api.html-tidy.org/#quick-reference  を参照ください。

プラグイン設定

その他の設定はプラグイン設定で指定します。適用する範囲を絞り込んだりすることで、意図しない変換を防ぐことができます。

  • htmltidy_exclude_petterns: 置換しない文字列パターンを改行区切りで指定します。
  • htmltidy_exclude_string: 指定した文字列を含むHTML文書を処理対象外にします。
  • htmltidy_replace_petterns: 置換したいパターンを CSVで指定します。
  • htmltidy_archive_types: 環境変数「tidy_outputfilter」指定のある時、対象のアーカイブタイプを指定します。
  • htmltidy_body_pettern: 本文部分の開始と終了を判別する文字列をカンマ区切りで指定します。例 : <main>,</main>
  • htmltidy_use_system_setting: (スペースの設定のみ) システムの設定を継承します。

グローバルモディファイア

ページ全体に適用せずに、テンプレートの特定部分だけに処理を限定できます。

  • htmltidy : 部分的に修正を適用します。環境変数「tidy_css_to_head」の設定値は反映されませんが、属性値に「2」を指定すると、パブリッシュ時に head内に styleタグを追加します。

まとめ

PowerCMS Xを利用したウェブアクセシビリティが要件に指定されているウェブサイトのリニューアルでは、リニューアル後のテンプレートを整備した後に、以下のような手順でデータ移行を行います。

  • Webスクレイピングによるデータ移行機能(HTMLImporterプラグイン)でデータを移行する。
  • AxeRunnerプラグインと、vNu(Nu Html Checker)を使い、定期的にHTMLとウェブアクセシビリティの機械チェックを実行する。
  • 結果を確認しながら、HTMLTidyプラグインの自動修復を適用できる部分を調査し、必要な設定を行う(必要に応じてHTMLTidyプラグインに機能を追加する)。
  • 最後に、人の手による修正漏れの対応と、ウェブアクセシビリティ検証、必要に応じて修正を行う。

カテゴリー:サイト制作全般 | プラグイン

投稿者:Junnama Noda

2022-08-26

[FAQ] モデルに追加したカラムが投稿画面に表示はされるがデータが保存されない

トラブルの例

記事モデル(entry)に「add_column」という文字列(255)カラムを追加して、編集表示「テキスト」として保存、記事の作成画面を開き、カラムに何らかの文字列を入力して「保存」します。他の既存のカラムには値が保存されているのに、「add_column」には値が保存されていない、という事象です。

確認すべきポイント

error.log に以下のようなメッセージが出ていることを確認します。

PADOBaseModelException: unknown column(entry_add_column) in model entry(1024) occured( line xxx of class.pado.php )

トラブルの原因

cache_driverが「File」になっており、キャッシュディレクトリ配下のファイルに CMS(Webサーバー)から読み込みはできるが、書き込み・削除権限がないことが原因です。定期実行タスク用のスクリプト「tools/worker.php」を root権限などで実行した時に、この事象が発生することがあります。

対応方法

キャッシュディレクトリ配下のファイルを削除して、キャッシュディレクトリをCMS(Webサーバー)から読み書き可能なパーミッションに変更してください。

当該ファイルのパスは以下となりますが、この事象が発生している場合、他のキャッシュファイルの権限も同様になっている可能性がありますので、キャッシュディレクトリ配下ずべてを削除してください。

/path/to/cache/app_cache/schemes/entry.php

尚、CacheManagerが有効で「キャッシュ管理」機能が使える場合でも、この場合はキャッシュ管理の画面からキャッシュのリセットはできません。

sudo rm -Rf /path/to/cache

カテゴリー:技術情報 | トラブルシューティング

投稿者:Junnama Noda

ブログ内検索

アーカイブ