10

私は最終的にPEARをインストールしようとしているので、PHPUnitを簡単にインストールできます。Mac、Apache、MySQL、PHP、PHPUnit開発環境をセットアップして、ローカルでテストできるようにしたい。私はすでにApach、MySQL、PHPを使用しています。今必要なのはPHPUnitだけです。つまり、インストールするにはPEARが必要です。

私はあちこちを検索しましたが、Mac OSX10.5にPEARをインストールする方法に関する「チュートリアル」のバリエーションがいくつかあります。しかし、私はそれらのどれも動作させることができないようです!誰かがこれで成功しましたか?私はすべてが適切に設定されているとは完全に確信していません。そのため、「デフォルト」のMac OS X 10.5インクルードパス、またはすべてがどこに行くべきかについての簡単な説明を含めることができれば幸いです。

このチュートリアルに続いて、私は次のことを行います。

curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php

7つのインクルードパスを含むリストが表示されるまでEnterキーを押します。

1. Installation prefix ($prefix) : /Users/andrew
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests

をに変更し、Installation prefixEnter/usr/localキーを押して続行し、入力Yしてインストールも行いPEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2ます。最終的に、すべてがインストールされます。

次...

include_path最初の試行では、php.iniファイルからコメントアウトされたと思いますが、すでにこの行を変更しており、インストールを試みたのはこれが初めてではないため、次のメッセージが表示されます。

WARNING!  The include_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
</usr/local/PEAR>
If the specified directory is also not in the include_path used by
your scripts, you will have problems getting any PEAR packages working.

Would you like to alter php.ini </private/etc/php.ini>? [Y/n] : 

入力Yして、pearにインクルードパスを自動的に更新させます。

php.ini </private/etc/php.ini> include_path updated.

Current include path           : .:/usr/share/pear
Configured directory           : /usr/local/PEAR
Currently used php.ini (guess) : /private/etc/php.ini

Enterキーを押して続行すると、次のメッセージが表示されます。

The 'pear' command is now at your service at /usr/local/bin/pear

** The 'pear' command is not currently in your PATH, so you need to
** use '/usr/local/bin/pear' until you have added
** '/usr/local/bin' to your PATH environment variable.

Run it without parameters to see the available actions, try 'pear list'
to see what packages are installed, or 'pear help' for help.

For more information about PEAR, see:

  http://pear.php.net/faq.php
  http://pear.php.net/manual/

Thanks for using go-pear!

PHP Warning:  rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

更新:これらの最後の2つの警告が発生した理由を私は知っていると思います。以前は、/ tmpへのシンボリックリンクを作成して一時ディレクトリの問題を修正しようとしましたが、正しく理解していれば、PEARはインストール用に独自の一時ディレクトリを作成しようとし、終了時に削除します。したがって、インストールの終了時に一時ディレクトリを削除しようとするため、このシンボリックリンクを作成するべきではありませんでした。

4

3 に答える 3

16

ここでうまくいかない可能性のあることがいくつかありますが、これらは推測にすぎません。

まず、心配する必要のある2つのインクルードパスがあります。1つ目は、PHPのインクルードパスです。PEARライブラリは(ほとんど)PHPコードであり、特別にパッケージ化されています。PEARモジュールをインストールすると、そのライブラリに必要なすべてのPHPコードがダウンロードされ、インストールしているライブラリが依存している他のPEARライブラリがダウンロードされます(その文については申し訳ありませんが、より良い言い方があるかどうかはわかりません)それ)。このインクルードパスは、php.iniファイルで設定されます(コマンドラインphp用に1つのファイル、yoru Webサーバーphp用に別のファイル。多くの場合同じファイル)。

心配する必要がある2番目のインクルードパスは、UNIX/シェルのインクルードパスです。これは、端末からコマンドを入力したときにコンピューターがコマンドを検索するパスです。'pear'コマンドは、コマンドラインコマンドです。

だから、私たちはそれを確認する必要があります

  1. Webサイトのphp.iniファイルのインクルードパスにPEARディレクトリがあります
  2. コマンドラインphpアプリケーションのphp.iniファイルのインクルードパスにPEARディレクトリがあります
  3. シェルアプリケーション(ターミナル、OS Xを使用している場合はBASHの可能性があります)のインクルードパスにPEARディレクトリがあります

したがって、1番目の場合は、関数呼び出しを含むPHPページをサーバーに配置します

phpinfo();

これにより、サーバーに関する一連の情報が一覧表示されます。php.iniの場所を探します。このファイルをテキストエディタで開き、include_path変数を探して、PEARディレクトリにパスを追加します(他のパスは削除せず、追加するだけです)。

2番目の場合、コマンドラインから次のコマンドを実行します

php -r "phpinfo();" | grep '.ini'

たくさんの行が印刷されます。「ロードされた構成ファイル」のようなものを探してください。このファイルをテキストエディタで開き、include_path変数を探して、PEARディレクトリにパスを追加します(他のパスは削除せず、追加するだけです)。

最後に、これがあなたの問題だと私が思うのですが、pearコマンドラインコマンドがシェル/bashパスにあることを確認する必要があります。それがこのエラーが参照しているものです

** The 'pear' command is not currently in your PATH, so you need to

ホームディレクトリに「.bash_profile」という名前のファイルがあるはずです。これは隠しファイルなので、Finderには表示されません。テキストエディタで開きます。これが隠しファイルであるために問題が発生した場合は、コマンドラインのpicoエディターを使用してください。Ctrl-Xはpicoから保存します

cd ~
pico .bash_profile

このファイルは、ターミナルウィンドウを開くたびにシェルによって実行されます。/ usr / local / binをPATHに追加します。つまり、コマンドを実行しようとすると、yoruコンピューターはこのフォルダーでコマンドを検索します。.bash_profileの下部に次の行を追加します

export PATH=/usr/local/bin:$PATH

これは、多かれ少なかれ、次のPHPコードと同等です。

$PATH = '/usr/local/bin:'.$PATH

コマンドを探す最初のコロン区切りの場所として/usr/ local / binを追加し、次に既存のパスの残りをそこに追加します。その行を追加したら、ターミナルを閉じて再度開き、次のように入力します。

pear

これにより、有効なpearコマンドのリストが表示されますが、さらに重要なことは、pearがパスにあることを通知することです。

幸運を!

于 2009-03-10T06:41:19.257 に答える
2

私はそれを考え出した。pear をインストールしたい場所で go-pear.php を実行する必要があるため、pear バイナリを /usr/local/bin にインストールする場合は、/usr/local で実行する必要があります。

:-)

于 2009-05-01T07:47:28.693 に答える
0

ユーザー「bryan kennedy」(上記) は、「php.ini」で必要な「include_path」変更の構文を知りたがっていました。

(私はOPに同様の問題を抱えていたので、この投稿の助けを借りて問題を修正しました。)

php.ini への変更は次のようになります...

include_path=".:/path_to_pear_dir/PEAR"

「go-pear.php」に変更を許可すると、次のようになります。

;***** Added by go-pear
include_path=".:/usr/local/bin/PEAR"
;*****
于 2009-11-04T23:29:01.697 に答える