• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:apache起動時にエラー)

Apache起動時のエラー!PHP設定で発生した問題とは?

このQ&Aのポイント
  • WindowsXPsp2,PHP5.03,apache2,mysql4の環境でデータベース構築を試みた際に、php.iniの設定変更後にFatal errorが発生。
  • エラー内容は「PHP Startup: Cannot use both zlib.output_compressin and output_handler together!!」。
  • output_handlerとzlib.output_compressionの効果と使い方について説明が欲しい。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

output_handler、いわば、出力のバッファリング(先)をする指定でmb_output_handlerを指定すると、文字コードを自動的に指定したコードに透過的に変換してくれます。多分、これをしたいということなのでしょう。 zlib.output_compression=On は、これも、出力のバッファリングをZlibを使って透過的に圧縮する指定です。 出力を取り合いになるので、2つを同時には指定できないということでしょう。 なので、こちらは、コメントアウトしてもいいと思います。(逆に自動的にコード変換をしないで自前でやるなら逆でも良い) ちなみに、 zlib.output_compressionを使う時には、 output_handerではなく、 zlib.output_handlerを使います。 場合によっては、 output_handlerをコメントアウトして zlib.output_compression=On zlib.output_handler =mb_output_handler にすれば良いかも知れません。(<未確認)

tochanx
質問者

お礼

早速の回答ありがとうございます! 教えていただいたやり方を試してみましたが、apacheは問題なく起動しました。 回答の内容、一応理解できたのですが、一箇所わかりにくいところがあります。よろしければ教えていただきたいです。 「透過的」とはどういう意味なのでしょうか?初めて目にする語句で理解できませんでした。申し訳ありませんが、説明していただけないでしょうか?

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>透過的 例えば、 print "こんにちは"; なんてことをしたら、 画面に「こんにちは」と表示されます。 この場合、 PHPのプログラムの「こんにちは」を 画面に送っているわけです PHP"こんにちは"→画面"こんにちは" 質問文のような、出力時に、コード変換してくれる部分を通すと PHP"こんにちは"→コード変換"こんにちは"→画面"こんにちは" の様に出力されているワケですが、 私達PHPを利用している人にとっては、 PHP"こんにちは"→画面"こんにちは" をしているつもりでいます。 この場合、 →コード変換"こんにちは"→ の部分は、見えないで通り過ぎている(透過している)ワケです。 自分なりの言葉で説明したので、多少、語の用法が間違っているかも知れませんが、そんな感じです。

tochanx
質問者

お礼

とても分かり易い説明ありがとうございます。 すとんと理解できました。 二度も回答をいただき、感謝の極みです。

関連するQ&A