WordPress Link DirectoryのWarning 「Cannot send session cache limiter」を解決

php.iniの設定

WordPress Link Directory の Warning エラーを解決しました。

WordPress Link Directory は Yomi サーチのようなユーザー登録型リンクページを作成できるプラグインですが、当ブログでは URL を追加すると Warning エラーがでてました。 WordPress Link Directory のリンク編集画面で 「承認」 にし 「更新」 をクリックすれば、問題なく反映されますが、やはりエラーが出ちゃうのはよろしくないので調査。


Sponsored Link

以下は XAMPP 内に設置した WordPress で出た Warning エラー。

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at C:\xampp\htdocs\wordpress\wp-content\themes\the-fool\header.php:1) in C:\xampp\htdocs\wordpress\wp-content\plugins\wordpress-link-directory\securimage.php on line 422

WordPress Link Directory の securimage.php の 422行目にあるのは 「session_start();」 。 検索の結果、session_start 関数の呼び出しより先にブラウザに対してレスポンスが出力されると、このエラーが発生するとのこと。

これを解決するのに以下の3行程を順に実施。

  1. header.php の1行目にスペースや改行と言ったゴミが入ってないか確認。
  2. header.php を BOM 無しの UTF-8N で保存。
  3. php.ini に 「output_buffering = 4096」 記述。

XAMPP 内では 1 と 2 を実施。 テーマを twentyten に変えても改善されなかったため、 php.ini を触る。

当ブログのサーバー heteml は、コントロールパネルから php.ini の設定ができるので、以下のように設定。

PHP5 のタブを選択し、session 関連の項目を全て 「ON」 に。
Link DirectoryのWarning1

php.ini を直接編集する場合は以下ように記述するようです。

; use cookie to handle session data
session.use_cookies = On
session.save_path = "/tmp"
; output buffer (for cookie write)
output_buffering = 4096

session 関連の項目を全て 「ON」 に変更したので、試しに WordPress Link Directory に1サイト登録。 Warning は出なくなりました。 :mrgreen:

しか~し、これで OK かと思いきや何故か逆アクセスランキングのSim Access が Warning に。

「URL file-access is disabled in the server configuration」 というエラーメッセージ。 早速検索。
Link DirectoryのWarning2

「allow_url_fopen」 と 「allow_url_include」 を有効にしないとマズいらしいので、もう一度 php.ini の設定を変更。

php.ini のその他の項目の 「allow_url_fopen」 と 「allow_url_include」 を 「ON」 に変更 。
Link DirectoryのWarning3

以上で Warning エラーはなくなった。

今後の事を考えると PHP の勉強は必須かも。

Cannot send session cache limiter参考サイト

トリトンテックStaffBlog
PHP-よくあるエラーメッセージと対策-(その7)。
r271-635
(PHP) Cannot send session cache limiter – headers already sent エラー。
Sponsored Link

コメントを残す