KnowledgeTreeのPHPでPEARやPECLを使う

引き続きKnowledgeTreeのプラグインを作ってる。

PHPでプログラミングをしてると、PEARPECLのライブラリを使いたくなる事があるけど、ちょっとだけファイルの修正が必要だった。

KnowledgeTreeはPHPやMySQLなど、必要なのは全てパッケージに含まれていて、PHPはデフォルトだと/opt/ktdms/php以下にインストールされる。で、試しにPECLを実行してみると以下のようなエラーが出る。PEARも同様。

# /opt/ktdms/php/bin/pecl
/opt/ktdms/php/bin/pecl: line 28: /bitrock/knowledgetree/linux/build/output/php/bin/php: No such file or directory
/opt/ktdms/php/bin/pecl: line 28: exec: /bitrock/knowledgetree/linux/build/output/php/bin/php: cannot execute: No such file or directory

どうやらPHPをビルドした環境のパスが使われているらしい。

修正すべきファイルは以下の3つ

  • /opt/ktdms/php/bin/pecl
  • /opt/ktdms/php/lib/php/pearcmd.php
  • /opt/ktdms/php/lib/php/peclcmd.php

--- pecl.org    2008-12-28 21:01:30.000000000 +0900
+++ pecl        2008-12-28 22:36:37.000000000 +0900
@@ -4,10 +4,10 @@
if test "x$PHP_PEAR_PHP_BIN" != "x"; then
PHP="$PHP_PEAR_PHP_BIN"
else
-  if test "/bitrock/knowledgetree/linux/build/output/php/bin/php" = '@'php_bin'@'; then
+  if test "/opt/ktdms/php/bin/php" = '@'php_bin'@'; then
PHP=php
else
-    PHP="/bitrock/knowledgetree/linux/build/output/php/bin/php"
+    PHP="/opt/ktdms/php/bin/php"
fi
fi
@@ -16,12 +16,12 @@
INCDIR=$PHP_PEAR_INSTALL_DIR
INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR"
else
-  if test "/bitrock/knowledgetree/linux/build/output/php/lib/php" = '@'php_dir'@'; then
+  if test "/opt/ktdms/php/lib/php" = '@'php_dir'@'; then
INCDIR=`dirname $0`
INCARG=""
else
-    INCDIR="/bitrock/knowledgetree/linux/build/output/php/lib/php"
-    INCARG="-d include_path=/bitrock/knowledgetree/linux/build/output/php/lib/php"
+    INCDIR="/opt/ktdms/php/lib/php"
+    INCARG="-d include_path=/opt/ktdms/php/lib/php"
fi
fi

pearcmd.php

--- pearcmd.php.org     2008-12-28 21:09:59.000000000 +0900
+++ pearcmd.php 2008-12-28 21:10:44.000000000 +0900
@@ -29,8 +29,8 @@
/**
* @nodep Gtk
*/
-if ('/bitrock/knowledgetree/linux/build/output/php/lib/php' != '@'.'include_path'.'@') {
-    ini_set('include_path', '/bitrock/knowledgetree/linux/build/output/php/lib/php');
+if ('/opt/ktdms/php/lib/php' != '@'.'include_path'.'@') {
+    ini_set('include_path', '/opt/ktdms/php/lib/php');
$raw = false;
} else {
// this is a raw, uninstalled pear, either a cvs checkout, or php distro

perlcmd.php

--- peclcmd.php.org     2008-12-28 21:09:00.000000000 +0900
+++ peclcmd.php 2008-12-28 21:09:20.000000000 +0900
@@ -23,8 +23,8 @@
/**
* @nodep Gtk
*/
-if ('/bitrock/knowledgetree/linux/build/output/php/lib/php' != '@'.'include_path'.'@') {
-    ini_set('include_path', '/bitrock/knowledgetree/linux/build/output/php/lib/php');
+if ('/opt/ktdms/php/lib/php' != '@'.'include_path'.'@') {
+    ini_set('include_path', '/opt/ktdms/php/lib/php');
$raw = false;
} else {
// this is a raw, uninstalled pear, either a cvs checkout, or php distro

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です