php HTTP 拡張モジュールのインストールをインストール(有効)にしているとダウンする

メッセージ

php HTTP 拡張モジュールをインストール(有効に)しているとpukiwikiがダウンする(空ページ)

index.phpにて、error_reporting(E_ALL)を有効にする(コメントを外す)と下記表示

Fatal error: Cannot redeclare http_request() in C:\Apache\htdocs\wiki\lib\proxy.php on line 126

PHP関数:http-request
cvs:lib/proxy.php

原因

関数名が重複しているため
http_request

回避方法

lib/pukiwiki.php
// require(LIB_DIR . 'proxy.php');
のようにコメントにする
もしくは、
php.iniをインストールフォルダに設置する。
もしくは
php HTTP 拡張モジュールをあんいんすとーるする

実装


コメント



インストールしたが何も表示されない

エラー表示を有効にした際の表示 Fatal error: Cannot redeclare http_request() in pukiwiki\lib\proxy.php on line 126

原因

・グローバル関数 http_request (PECL pecl_http >= 1.0.0) との名称衝突
・pukiwiki開発者が報告を長年無視し続けているため。
・他のツールを無視したpukiwiki開発者の関数の命名方法に問題がある

 将来の衝突回避および動作チェックや
 添付プラグイン以外への影響を考慮すると最小限の修正ですむ対処法1が無難だろう。

対処法1

http_requestの名称変更
対象ファイル : lib/proxy.php , plugin/amazon.inc.php , plugin/showrss.inc.php
例
  http_request --> pkwk_http_request

対処法2(PHP 4 >= 4.3.0, PHP 5)

・ pukiwiki.ini.phpのrequire(LIB_DIR . 'proxy.php');を削除し、lib/proxy.phpを削除する
・ plugin/amazon.inc.php , plugin/showrss.inc.phpを修正する
 amazon.inc.php
  -$data = http_request($url);
  -return ($data['rc'] == 200) ? $data['data'] : '';
  +$data = file_get_contents($url);
  +return ($data !== false) ? $data : '';
 showrss.inc.php
  -$data = http_request($target);
  -if ($data['rc'] !== 200)
  +$data = file_get_contents($target);
  +if ($data === false)

コメント



*1 あるならば PECL を使うようにする

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-05 (金) 00:56:57
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.532 sec.

OSDN