サーバエラー(500)が出ます
サーバエラー(500)が出ます
お世話になります。
textareaに、一定量以上の文字数を入れて保存すると内部サーバエラー(500エラー)になります。また、保存できた場合も表示の際に500内部サーバエラーとなります。
内部サーバエラーなので、ここに質問するのは場違いかもしれませんが、何かアドバイスでもあればよろしくお願いします。
項目は
text 2つ
menu 2つ
textarea 1つ
で、textareaに入力した文字数は約25,000文字です。
元来、これだけの文字数の登録自体が使い方として間違っているのか、単にサーバが弱いだけなのか、判断に迷っております。
(マニュアルに文字の数が無制限と記載があったので、処理負荷まで考えが及びませんでした)
何かご助言いただけると幸いです。
よろしくお願いいたします。
textareaに、一定量以上の文字数を入れて保存すると内部サーバエラー(500エラー)になります。また、保存できた場合も表示の際に500内部サーバエラーとなります。
内部サーバエラーなので、ここに質問するのは場違いかもしれませんが、何かアドバイスでもあればよろしくお願いします。
項目は
text 2つ
menu 2つ
textarea 1つ
で、textareaに入力した文字数は約25,000文字です。
元来、これだけの文字数の登録自体が使い方として間違っているのか、単にサーバが弱いだけなのか、判断に迷っております。
(マニュアルに文字の数が無制限と記載があったので、処理負荷まで考えが及びませんでした)
何かご助言いただけると幸いです。
よろしくお願いいたします。
Re: サーバエラー(500)が出ます
RiUさん、ご質問ありがとうございます。
弊社でも早速25000文字のテストを行ってみました。
"aaaaaaa....."という文字が50000文字連続する文字列を作り、これを
コンテンツ管理画面より投稿してみたところ、問題なく投稿と表示が行われ
ました。
"aaaaaaa....."という文字列は、テキストエディタ等でまずaが100個連続で
入力し、それをコピー&ペーストを9回行うと1000個ができます。それを再度
コピーしてペーストを9回行うと10000個ができます。それを再度4回ペースト
すれば50000個ができあがります。
可能性としていくつか考えられるかと思います。
(1)php.iniの post_max_size の設定上限を超えた。
(2)php.iniの max_execution_time、又は max_input_time の処理時間上限を超えた。
(3)ご利用のサーバにインストールされているXSLTエンジンの制限。
(4)入力された25000文字の中に、エラーの原因となる文字が含まれていた。
(1)(2)の場合、サーバが設定変更を許可していれば、サーバの管理画面や
.htaccessの指定で変更することができます。
(3)の場合、別のXSLTエンジンに切り替えることで対処可能な場合が
あるかもしれません。この方法はリファレンスマニュアル7章をご覧下さい。
(4)の場合、まず"aaaaaaa...."の文字列でお試し下さい。aaaの場合にエラーが出ないのなら、これが原因ですので、その25000文字をテキストファイルに保存してメールでお送り下さい。
以上、お手数ですがお試し頂ければ幸いです。
弊社でも早速25000文字のテストを行ってみました。
"aaaaaaa....."という文字が50000文字連続する文字列を作り、これを
コンテンツ管理画面より投稿してみたところ、問題なく投稿と表示が行われ
ました。
"aaaaaaa....."という文字列は、テキストエディタ等でまずaが100個連続で
入力し、それをコピー&ペーストを9回行うと1000個ができます。それを再度
コピーしてペーストを9回行うと10000個ができます。それを再度4回ペースト
すれば50000個ができあがります。
可能性としていくつか考えられるかと思います。
(1)php.iniの post_max_size の設定上限を超えた。
(2)php.iniの max_execution_time、又は max_input_time の処理時間上限を超えた。
(3)ご利用のサーバにインストールされているXSLTエンジンの制限。
(4)入力された25000文字の中に、エラーの原因となる文字が含まれていた。
(1)(2)の場合、サーバが設定変更を許可していれば、サーバの管理画面や
.htaccessの指定で変更することができます。
(3)の場合、別のXSLTエンジンに切り替えることで対処可能な場合が
あるかもしれません。この方法はリファレンスマニュアル7章をご覧下さい。
(4)の場合、まず"aaaaaaa...."の文字列でお試し下さい。aaaの場合にエラーが出ないのなら、これが原因ですので、その25000文字をテキストファイルに保存してメールでお送り下さい。
以上、お手数ですがお試し頂ければ幸いです。
Re: サーバエラー(500)が出ます
webmaster様
いつも大変お世話になっております。
お教えいただいたテストを行ってみました。
1バイト文字(aaaaaaa.....)だと問題なく登録されました。
ただ、2バイト文字(あああああ.....)でテストしたところ、サーバーエラーと
なってしまいました。
(1)に関しては100Mと設定されておりました。(妥当なのでしょうか・・・??)
(2)に関しては挙動的に保存ボタン押下後、すぐにエラーとなるので、timeOutではないような気がします。
・・・いづれにしても、iniファイルの変更はNGとの事でした・・・
(3)はこれから試してみます。
いつも大変お世話になっております。
お教えいただいたテストを行ってみました。
1バイト文字(aaaaaaa.....)だと問題なく登録されました。
ただ、2バイト文字(あああああ.....)でテストしたところ、サーバーエラーと
なってしまいました。
(1)php.iniの post_max_size の設定上限を超えた。
(2)php.iniの max_execution_time、又は max_input_time の処理時間上限を超えた。
(1)に関しては100Mと設定されておりました。(妥当なのでしょうか・・・??)
(2)に関しては挙動的に保存ボタン押下後、すぐにエラーとなるので、timeOutではないような気がします。
・・・いづれにしても、iniファイルの変更はNGとの事でした・・・
(3)はこれから試してみます。
Re: サーバエラー(500)が出ます
RiUさん、何度もすいません。
こちらでも2バイト文字(ああああ...)でエラーが発生することを確認致しました。
エラーというか、PHPの処理が中段されて、エラーではなく何も返って
こない、という症状です。
この状態でもエントリデータ上は正しく入力内容が保存されているようなのですが、
それを表示する際に何らかの障害が起きているようです。
また、1バイト文字でも、43600文字程度を入力すると同じ障害が発生しました。
特に1バイト/2バイトに関係なく、文字数によって発生するようです。
弊社環境だけかもしれませんが、43599文字だと発生しませんでした。
弊社サーバのpost_max_sizeやmemory_limitについても確認してみたのですが、
40kバイト程度のデータの処理に影響するような設定にはなっておらず、関係なさそう
です。
試しに、項目を1つ増やし、そこにも同じ値を設定してみたところ、今度は
43600文字まで設定可能で、43601文字目で障害発生しました。
ちなみに以前の項目には43599文字のデータが設定されたままになっており、
これはもう、post_max_sizeやmemory_limitの問題ではなく、XML上の1項目
に対する上限値と考えたほうが良さそうです。
前回の項目と今回の項目の違いは、要素名(項目名)の長さが最初のものは
description2、次のものはdescription、となっていたぐらいです。
推測ですが、XSLTエンジン、又はDOMエンジンの仕様で、一つの要素中に
存在するデータの大きさと、その要素名を足した長さについて、何らかの制限が
かかっているのかもしれません(おそらくそれは仕様というよりbugだと思います
が・・・)。
この件について英語文献も含めて調べてみたのですが、該当するものを見つけられ
ませんでした。
現状では、text/textarea項目の maxlength として40000 程度を指定して
頂くことでしか、解決できないかと思います。エラーが出ない上限値については
環境によって異なるかもしれませんので、一度ご確認下さい。
ご不便をおかけしますが、よろしくお願い致します。
この件について追加情報などありましたら、ご教授頂ければ幸いです。
こちらでも2バイト文字(ああああ...)でエラーが発生することを確認致しました。
エラーというか、PHPの処理が中段されて、エラーではなく何も返って
こない、という症状です。
この状態でもエントリデータ上は正しく入力内容が保存されているようなのですが、
それを表示する際に何らかの障害が起きているようです。
また、1バイト文字でも、43600文字程度を入力すると同じ障害が発生しました。
特に1バイト/2バイトに関係なく、文字数によって発生するようです。
弊社環境だけかもしれませんが、43599文字だと発生しませんでした。
弊社サーバのpost_max_sizeやmemory_limitについても確認してみたのですが、
40kバイト程度のデータの処理に影響するような設定にはなっておらず、関係なさそう
です。
試しに、項目を1つ増やし、そこにも同じ値を設定してみたところ、今度は
43600文字まで設定可能で、43601文字目で障害発生しました。
ちなみに以前の項目には43599文字のデータが設定されたままになっており、
これはもう、post_max_sizeやmemory_limitの問題ではなく、XML上の1項目
に対する上限値と考えたほうが良さそうです。
前回の項目と今回の項目の違いは、要素名(項目名)の長さが最初のものは
description2、次のものはdescription、となっていたぐらいです。
推測ですが、XSLTエンジン、又はDOMエンジンの仕様で、一つの要素中に
存在するデータの大きさと、その要素名を足した長さについて、何らかの制限が
かかっているのかもしれません(おそらくそれは仕様というよりbugだと思います
が・・・)。
この件について英語文献も含めて調べてみたのですが、該当するものを見つけられ
ませんでした。
現状では、text/textarea項目の maxlength として40000 程度を指定して
頂くことでしか、解決できないかと思います。エラーが出ない上限値については
環境によって異なるかもしれませんので、一度ご確認下さい。
ご不便をおかけしますが、よろしくお願い致します。
この件について追加情報などありましたら、ご教授頂ければ幸いです。
Re: サーバエラー(500)が出ます
xslt-libno="20"RiU さんが書きました:(3)はこれから試してみます。
xslt-libno="21"
この2つでは登録500エラーは出ませんでしたが、
「Warning: 」エラーが多発し、管理画面のレイアウトも崩れてしまう状態でした。
よくよく確認してみると、変更可能との事でしたので、設定を変えて見たのですが、・・・いづれにしても、iniファイルの変更はNGとの事でした・・・
状況変わらず・・
ちなみに
(4)入力された25000文字の中に、エラーの原因となる文字が含まれていた。
"aaaaaaa....."の文字数を50,000文字入れると、同様に500エラーとなるので、
おそらく
>(3)ご利用のサーバにインストールされているXSLTエンジンの制限。
かつ、相性・・・ということで納得せざるを得ないかと・・・
Re: サーバエラー(500)が出ます
webmaster様
お世話になります。
入れ違いで投稿頂いたみたいでもうしわけありません。
私ももう少し調べて見ようと思います。
とりあえずの回避方法として、textareaを「list」の繰り返し
として用意し、入力する文章の段落毎に分けてもらい、
表示の際に、CSSで結合されているように見せる
という形を取ろうと考えています。
過去履歴で出ていない障害なので、これだけの文字数を
textareaに入れる運用自体があまり現実的でないのかも
しれないですね。
ありがとうございました。
お世話になります。
入れ違いで投稿頂いたみたいでもうしわけありません。
私ももう少し調べて見ようと思います。
とりあえずの回避方法として、textareaを「list」の繰り返し
として用意し、入力する文章の段落毎に分けてもらい、
表示の際に、CSSで結合されているように見せる
という形を取ろうと考えています。
過去履歴で出ていない障害なので、これだけの文字数を
textareaに入れる運用自体があまり現実的でないのかも
しれないですね。
ありがとうございました。
Re: サーバエラー(500)が出ます
RiUさん、コメントが入れ違いになってしまったようですいません。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが
入っていないということになるかと思います。
また、弊社でxslt-libnoを20、21にして試してみたところ、10万文字でも
問題なく入力されました。これはどうやら、Sablotron XSLTエンジンの不具合
ということになりそうです。
いろいろとお手数をおかけして申し訳ありませんでした。
対策としては、前回のコメントと同じく
(1) textarea項目のmaxlengthを40000前後で設定して頂く。
または
(2) xslt-libnoを20または21にして頂く。
ということになるかと思います。
この件についてはもう少し調査し、マニュアルへの記載、又はCMS Designer側
での強制的な制限などの対策をとらせて頂きたいと思います。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが
入っていないということになるかと思います。
また、弊社でxslt-libnoを20、21にして試してみたところ、10万文字でも
問題なく入力されました。これはどうやら、Sablotron XSLTエンジンの不具合
ということになりそうです。
いろいろとお手数をおかけして申し訳ありませんでした。
対策としては、前回のコメントと同じく
(1) textarea項目のmaxlengthを40000前後で設定して頂く。
または
(2) xslt-libnoを20または21にして頂く。
ということになるかと思います。
この件についてはもう少し調査し、マニュアルへの記載、又はCMS Designer側
での強制的な制限などの対策をとらせて頂きたいと思います。
Re: サーバエラー(500)が出ます
webmaster様
早速のご連絡ありがとうございます。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが入っていないということになるかと思います。
なるほどです。サーバの問題・・ということですね。
こちらこそ、いろいろと調べていただきありがとうございました。
早速のご連絡ありがとうございます。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが入っていないということになるかと思います。
なるほどです。サーバの問題・・ということですね。
こちらこそ、いろいろと調べていただきありがとうございました。
Re: サーバエラー(500)が出ます
RiUさん、またもや入れ違いですいません。
面倒な運用になることは承知しておりますが、list項目による回避方法は
今回の状況ではおそらくベターかと思います。
弊社でも過去に大きなデータ登録はテストしたのですが、50000バイトの
文字列の登録は試験しておりませんでした。
試験漏れでご迷惑をおかけしました。
Sablotron開発サイドに今回のエラーについて報告しておこうと思います。
面倒な運用になることは承知しておりますが、list項目による回避方法は
今回の状況ではおそらくベターかと思います。
弊社でも過去に大きなデータ登録はテストしたのですが、50000バイトの
文字列の登録は試験しておりませんでした。
試験漏れでご迷惑をおかけしました。
Sablotron開発サイドに今回のエラーについて報告しておこうと思います。
Re: サーバエラー(500)が出ます
webmaster様
いろいろとありがとうございました。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが入っていないということになるかと思います。
サーバ運営会社に確認したところ、やはりdomxml関数は使えないとの回答でした。
やはり、listで回避する形で進めます。
ありがとうございました。
いろいろとありがとうございました。
xslt-libnoについては、お使いのサーバにはSablotron以外のXSLTエンジンが入っていないということになるかと思います。
サーバ運営会社に確認したところ、やはりdomxml関数は使えないとの回答でした。
やはり、listで回避する形で進めます。
ありがとうございました。