CodeIgniter フレームワークを使用して、PHP5 で作成しているアプリケーションがあります。Windows (Xampp を使用) と Ubuntu (標準の Apache、PHP、MySQL スタックを使用) の両方で実行しています。
XML を取得し、(simpleXML を使用して) 解析し、結果をデータベースに投稿するフォームがあります。
Windows では問題ありません。意図したとおりに動作します。
Linux の場合 - 大きな問題です。エラーが出ます。
XML を再確認しましたが、問題ありません。
大量の XML を削除しましたが、問題ないようです。
フォームから投稿される XML 文字列のサイズに関係していると思いますが、よくわかりません。繰り返しますが、Windows では問題ありませんが、Linux ではエラーになります。
フォームに投稿されるデータのサイズは最大 160k です (これは大量のテキストですが、自動化されており、最終的には約 200k になります)。
エラーは以下です。
どんな助けでも大歓迎です。
致命的なエラー: /var/www/ci/system/application/controllers/system.php:49 でメッセージ「String could not be parsed as XML」を含むキャッチされない例外「Exception」が発生しました:49 スタック トレース: #0 /var/www/ci/ system/application/controllers/system.php(49): SimpleXMLElement->__construct('') #1 [内部関数]: System->add_system() #2 /var/www/ci/system/codeigniter/CodeIgniter.php (233): call_user_func_array(Array, Array) #3 /var/www/ci/index.php(115): require_once('/var/www/ci/sys...') #4 {main} が / でスローされる49 行目の var/www/ci/system/application/controllers/system.php
49 行目は次のようになります。
$xml = new SimpleXMLElement($this->input->post('form_systemXML'));
編集 - 修正済み
問題が見つかりました。Suhosin は Ubuntu にインストールされています。ファイル /etc/php5/apache2/conf.d/suhosin.ini で、この行を有効にしsuhosin.post.max_value_length = 65000
て値を 195000 に変更しました。Apache を再起動しましたが、すべて問題ありませんでした。ポインタの人たちに感謝します。