PHPのライブラリPEARの使用方法とは?

このQ&Aのポイント
  • PHPのライブラリPEARを使うための方法について、サーバ管理者とユーザの役割、パッケージの配置について説明します。
  • サーバ管理者は、サーバにPEARパッケージをインストールし、include_pathを設定する必要があります。
  • ユーザは自身のディレクトリにPEARパッケージを配置し、それを使ってPHPプログラムを実行することができます。
回答を見る
  • ベストアンサー

PHPのライブラリPEARを使わせる場合

レンタルサーバのユーザにPHPのライブラリPEARを使わせる場合、 サーバ側(サーバ管理者)が全てのPEARを用意して、インクルードしてやっておかないといけませんか? CentOS5.6(私がサーバを提供する側) PHP5.3.3 というのも、 php.iniの include_pathが include_path = .:/usr/share/pear:/usr/share/php  になっておりサーバ管理者である私が/usr/share/pearにはまだPEARパッケージを1つも入れていません。 そこでPEARパッケージを使いたいユーザ自身がFTPでphp等アップロードしたディレクトリに 使いたいPEARパッケージを独自で配置し、ユーザ自身が配置したPEARパッケージを読み込んで使う形でもいいのでしょうか? ユーザがどんなパッケージを必要とするか分からないので、こちらがあらかじめ準備してやるなら、 すべてのパッケージを/usr/share/pearにインストールしておいてやらないといけなくなるのでは? と思います。 レンタルサーバなど通常はどうやっているんでしょうか?ユーザ各々にアップさせるものですか?

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.2

#1です > 調べていたらgo-pearというPEARをユーザに配置させるPHPスクリプトがありました。 1.権限に注意する必要があります。 2.確かに設定も入れながら構築することができますが、もしホスティング運用されるのであればドキュメントルート配下にしかアクセスさせないでしょう。そこにライブラリを置くのは通常はNGです。 3.また、PHP本体へのパス設定のための情報提供も必要になります。 どういった形で運用されるのかは分かりませんが、go-pearを使わせるならそれなりに気を使わないとです。 そしてもちろんPHPの本体側ではPEARを入れてはいけません。 ユーザー(利用者)が混乱しますよ。 ドキュメントルートにPEARを入れるフォルダへのパス設定を入れたhtaccessを用意してあげて、PEARのソースはここに入れたら動くようになってますよ。って感じに最初からしといてあげればいいかもしれませんね。 ユーザー作った後にシェルを走らせたらPEAR用のフォルダとhtaccessファイルが出来るようにでも作っておくと、楽できそうです。

その他の回答 (1)

  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

安いホスティングでも、ユーザー数が半端なく多いところはスクリプトかませて、配置させたり。 あとはssh使えるようになってたり。 あなたが今頑張って一通り入れたところで、すぐにバージョンが変わっていきますからあまり意味はないです。 入れてあるけど使えないバージョンだったらないのと一緒ですから。 htaccessでうまく対応できるとは思いますが、それを利用者にゆだねても余計なハードルがあるからちょっと面倒だと思います。 とはいえそこら辺が妥当かな・・・ http://lism.in/pear/ 一つのapacheで複数運用するのであれば、htaccessでの設定範囲にも制限を持たせる必要がありそうですが・・・ (あくまでapache利用での話です。他でやってたならすみません。)

testmaster_x
質問者

お礼

ありがとうございます。 調べていたらgo-pearというPEARをユーザに配置させるPHPスクリプトがありました。 う~ん。。レンタルサーバ構築ってのは難しいですね。

関連するQ&A

  • PHP PEARパッケージのincludeができない。

    PHP PEARパッケージのincludeができない。 お世話になっております。 phpのPEARパッケージのincludeができません。 行うと PHP Warning: require_once(File/CSV.php): failed to open stream: そのようなファイルやディ レクトリはありません in /var/www/httpdocs/XXXXXXXX.php on line 10 PHP Fatal error: require_once(): Failed opening required 'File/CSV.php' (include_path='.:/usr/share/pear') in /var/www/httpdocs/XXXXXXXX.php on line 10 となってしまいます。 エラーメッセージ中の/usr/share/pear上に確かに存在します。 何か他に条件などあるのでしょうか? お願いいたします。

    • ベストアンサー
    • PHP
  • phpのpearが使えない

    いつも参考にさせて頂いています。 pearコマンドが使えなくなってしまいました。シェルでpearと打つと下記エラーが発生します。 【エラー内容】 Warning: require_once(PEAR.php): failed to open stream: No such file or directory in Config.php on line 27 【原因】 おそらく、PEARディレクトリを移動させてしまったからだと思います。 なので、/usr/bin/pearをviで下記のように変更した所、上記エラーが発生しました。 include_pathを/usr/share/php ⇒ /usr/local/php pearを再インストールすれば改善されるでしょうか? できれば再インストールする際の手順なども教えて頂けると嬉しいです。(参考URLでも全然OKです。 それともPEARディレクトリを移動させても問題なく動作させる方法があるでしょうか?どうか宜しくお願いします。

    • ベストアンサー
    • PHP
  • PEARをfedoraで使いたい。

    こんばんは。 PHPのPEARを、fedoraサーバーで使いたいと思っているのですが、 うまくいかないので質問させてください。 まず、コマンドプロンプトで、pear と打つと、どこで打っても、 /usr/local/bin/php: error while loading shared libraries: libmysqlclient.so.14: cannot open shared object file: No such file or directory というエラーが出ます。 これが主な原因かと思うのですが、対処法を調べましたがよくわかりません。。 このエラーが出ないようにするにはどうすればよいでしょうか? phpinfo.php  での情報は、 include_path  が、.:/usr/share/pear which pear コマンドでは、 /user/local/bin/pear でした。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PEARのライブラリはどこにインストールされるのでしょう

    お疲れ様です。 お世話になっております。 HTML_QuickFormに関して質問です。 CentOSでPEARをインストールし、 pear install HTML_QuickFormでインストールしました。 pear list すると HTML_Common 1.2.4 stable HTML_QuickForm 3.2.9 stable PEAR 1.4.9 stable と、インストールは確認できます。 php.iniのinclude_pathは include_path =".:/usr/lib/php/smarty:/usr/lib/php/pear" となっています。 smartyはrequire_once"Smarty.class.php";で呼び出しできるのですが、 HTML_QuickFormが"HTML/quick_form.php"でfile not foundになってしまいます。 pearのディレクトリをのぞいてみたら空の状態なんですが、いったいどこにHTML_QuickFormはインストールされているのでしょうか。 pearのライブラリはpearの配下にくると思っていたのですが。 呼び出すにはどこのパスを指定すればよいのでしょう・・・。

    • 締切済み
    • PHP
  • php.iniのinclude_pathのデフォル

    php.iniのinclude_pathのデフォルト値にたいして質問です。 現在PHP 5.6.6 をremi-56のリポジトリから、centos6にインストールしました。 そして、phpinfoを確認すると、 「include_path」の欄に「.:/usr/share/pear:/usr/share/php」とありました。 しかし、「php.ini」の中を検索しても、include_pathは、「;include_path = ".:/php/includes"」などのようにすべてコメントアウトされていました。 phpインフォをみたとき、include_pathに「「.:/usr/share/pear:/usr/share/php」が設定されているのは、デフォルトで決まった値なのでしょうか? どこか、設定ファイルにその値がかかれたりしているのでしょうか? httpd.confを検索しても、phpのパスを設定している様子もなく、.htaccessなども設置してないので、一体このデフォルト値はどこから来てるのか不思議です。 分かる方いましたら教えてもらえないでしょうか?

    • ベストアンサー
    • PHP
  • レンタルサーバーでpear

    こんにちは レンタルサーバー「WADAX」の専用サーバーで pearのFile_Archiveを使いたいのですが、 エラーになります。 pearのサイトより使いたいモジュールのファイルをダウンロード FTPでサーバーに「pear」フォルダを作りファイルをアップ 下記のようにinclude_pathを使っています。 ========= $path = $_SERVER["DOCUMENT_ROOT"]."/pear"; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once("Pager/Pager.php"); require_once("File/Archive.php"); ========= 同じようにpearの「Pager」と「File/Archive」をアップしていますが 「Pager」は正常に動き 「File/Archive」はエラーになります。 「File/Archive」は依存ファイルが多いので関連するファイル ■PEAR Package: MIME_Type ■PEAR Package: Mail_Mime (optional) ■PEAR Package: Mail (optional) ■PEAR Package: Cache_Lite 1.5.0 or newer (optional) もpearサイトよりダウンロードしてアップしています。 しかしエラーは相変わらず解消されません。 サーバーへのアップ方法等、どこか違っているのでしょうか? エラー解消はどのようにすればいいかわかる方がいたら 教えていただけないでしょうか? 宜しくお願い致します。

    • 締切済み
    • PHP
  • PHP PEARのWeeks.phpの場所

    Fatal error: require_once() [function.require]: Failed opening required 'Calendar/Month/Weeks.php' (include_path='.:/php/includes:/usr/share/php/smarty') in /opt/lampp/htdocs/samples/chapter6/6-4/calendar_pear.php on line 8 というエラーが出ているので調べています。 PEARのCalendar/Month/Weeks.phpは、デフォルトではどこにインストールされるものなんでしょうか? PEARはインストールしてあって、pear install Calendar-0.5.5もやっていて、 pear install Calendar と打つと pear/Calendar is already installed and is the same as the released version 0.5.5 install failed と、既にインストールされてます、と出ます。 /usr/share/php/PEARが存在することは確認したのですが、find . "Weeks.php"と打っても 「find: `Weeks.php': そのようなファイルやディレクトリはありません」と出ます。 調べる方法があれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • レンタルサーバでのPEAR

    レンタルサーバでPEARを使用しようとしてます。 PEAR自体はインストールされていますが、新規のパッケージをインストールすることができないため、ネットで調べて下記のようにしています。 PEARのCaledarパッケージを /home/xxxx/PEARにコピー (開発環境で使用したパッケージです) PHPのソースにて ini_set('include_path','.:/home/xxxx/PEAR'); include '/Calendar/Month/Weekdays.php'; として実行したところ Warning: include(/Calendar/Month/Weekdays.php) [function.include]: failed to open stream: No such file or directory in /home/xxxx/public_html/php/schedule.php on line 4 Warning: include() [function.include]: Failed opening '/Calendar/Month/Weekdays.php' for inclusion (include_path='.:/home/xxxx/PEAR') in /home/xxxx/public_html/php/schedule.php on line 4 と出てしまいます。 確かにパッケージは存在するのですが・・・・ 参考になるサイトでもかまいませんので、うろしくお願いいたします。

    • ベストアンサー
    • PHP
  • レンタルサーバーで、PHPでのPEARパッケージ

    利用しているレンタルサーバーでPEARパッケージが使えると書いてありました。 ■heteml 利用できる PEAR を教えてください。 http://heteml.jp/support/faq/383.html これはどういう風に使うのでしょうか? ■PEAR - PHP Extension and Application Repository http://pear.php.net/ 上記サイトから必要なPEARをダウンロードしてきて includeするのとは違うのでしょうか?

    • 締切済み
    • PHP
  • PEARのパッケージインストールパス

    PEAR1.9.5を利用しています。安価なレンタルサーバでシェルなどは使えないので、 go-pear.phpを使っております。 文字列の差分を表示したいのでxdiffをPEARでインストールしようと思ったのですが、 以下のエラーで失敗してしまいます。 ERROR: failed to mkdir /usr/share/tests/pecl/xdiff/tests このパスを/home/user/public_html/以下などに設定することはできますでしょうか? 現状はPEAR自体は/home/user/public_html/PEARにおいており、その他のインストール済みモジュールでは可動をしております。 良い方法をご存じの方がいらっしゃいましたらアドバイスをお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう