PEARを使ったメール送信でのincudeパスについて

このQ&Aのポイント
  • サーバーは某有名レンタルサーバーを用いています。ドキュメントルートの同階層にPEARディレクトリが配置されており、メール送信を行うPHPファイルも同じディレクトリに存在しています。しかし、Mail.phpとMail/Mail.phpをincludeする部分で処理が止まってしまいます。
  • Mail.phpとMail/Mail.phpは/a/b/PEARディレクトリ内に存在しています。includeパスが間違っているのでしょうか?
  • ご教示いただきたいです。
回答を見る
  • ベストアンサー

PEARを使ったメール送信でのincudeパスについて

サーバーは某有名レンタルサーバーを用いています。 下記のように、ドキュメントルート(public_html、web、wwwなど) と同階層に、PEARディレクトリが配置されています。 また、メール送信を実行するPHPファイも、 ドキュメントルートと同階層のディレクトリ配下に存在します。 /a/b/public_html/公開ファイル /a/b/PEAR/ /a/b/xxx/yyy/メール送信実行ファイル メール送信実行ファイル内で、Mail.phpとMail/Mail.phpを用いて メール送信を行おうとしているのですが、 ソースの上部で下記のように記述すると、 どうもその部分で処理が止まってしまうようです。 set_include_path( "/a/b/PEAR" ); include('Mail.php'); include('Mail/mime.php'); コマンド上で php /a/b/xxx/yyy/メール送信実行ファイル として実行させてます。 Mail.phpとMail/Mail.phpは下記パスに存在します。 /a/b/PEAR/Mail.php /a/b/PEAR/Mail/Mail.php includeパスが間違っているのでしょうか? ご教示お願いいたします。

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

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

set_include_pathを使うときは、必ずget_include_path()で、以前の設定を取得して、繋げた上で設定しなければなりません。 公式のオンラインマニュアルを見れば、その説明と使用方法(サンプルファイル)書かれているので、初めて使う関数を使う前に参照は必須です。 set_include_path(get_include_path() . PATH_SEPARATOR ."/hogehoge"); http://www.php.net/manual/ja/

参考URL:
http://www.php.net/manual/ja/
chibibichi
質問者

お礼

ありがとうございます。できました。

関連するQ&A

  • PEARのメールが突然使えなくなりました

    Warning: include_once(Net/SMTP.php): failed to open stream: No such file or directory in ○○○/PEAR/Mail/smtp.php on line 348 Warning: include_once(): Failed opening 'Net/SMTP.php' for inclusion (include_path='.:/usr/local/php/5.5/lib/php') in ○○○/PEAR/Mail/smtp.php on line 348 Fatal error: Class 'Net_SMTP' not found in ○○○/PEAR/Mail/smtp.php on line 349 メールフォームを作って使っていたのですが、昨日の夕方頃から上記のようなエラーメッセージが出て利用できなくなりました。 どうやらNetディレクトリ内のSMTP.phpというファイルが見つからないという内容のように見えますが、ちゃんと該当のディレクトリもファイルも存在しています。 ただ、include_onceで指定しているパスが"Net/SMTP.php"となっているので、これだとMailディレクトリのsmtp.phpで呼び出している以上、Mailディレクトリの中にあるNetディレクトリのSMTP.phpでないといけないような気がするんですが、NetディレクトリはMailディレクトリが置かれているディレクトリにあります。 これが原因? でも、今までこの状態で使ってきたはずだし、昨日の昼頃まで普通に使えていました。 それがファイルを書き換えるどころか、サーバーにアクセスしてすらいないのに、なぜ突然このような状態になってしまったのかがわかりません。 単純にNetディレクトリをMailディレクトリの中に移し替えれば良いのでしょうか? ただ、PEARはインストールツールみたいなものでインストールしたので、手動で勝手にディレクトリの位置を変えて良いのか分からず、怖くてできません。 最初からPEARをインストールし直した方が良いのでしょうか? 何かお分かりになる方がいらっしゃいましたら、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • pearライブラリのインクルードについて

    PEARへのパスの通し方の方法を教えていただきたいと思います。 私はハッスルサーバーを使っており、以前に以下のサイトを参考にしてPEARをインストールしました。(PHPのバージョンは5.2です。) http://funweb.sblog.jp/blog/article/%E3%83%8F%E3%83%83%E3%82%B9%E3%83%AB%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%B8%E3%81%AEPEAR%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB その後、XML-RPCを使用したPHPプログラムを作成し、 以下の場所に配置しました。 <ドキュメントルート配下> ・pear(フォルダ)   ・bin(フォルダ)   ・PEAR(フォルダ)   ・pear.conf   ・phpプログラム ←配置したプログラム ・wp(フォルダ) phpプログラムにはrequire_once("XML/RPC.php"); と記述しているのですが実行すると以下のエラーが出ます Warning: require_once(XML/RPC.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public/www/pear/xxx.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'XML/RPC.php' (include_path='“.:/home/xxx/public/www/pear/PEAR”') in /home/xxx/public/www/pear/xxx.php on line 2 php.iniのインクルードパスには「 include_path = ".;/home/xxx/public/www/pear/PEAR";」と記述しています。 問題はパスの記述か、XMLフォルダの存在の有無かのどちらかだろうと判断し、 XMLフォルダの存在を確認するためにphpプログラムの方を以下のように フルパスで記述しました。 require_once("/home/xxx/public/www/pear/PEAR/XML/RPC.php"); すると今度は以下のエラーが出ました。 Warning: include_once(PEAR.php) [function.include-once]: failed to open stream: No such file or directory in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 594 Warning: include_once() [function.include]: Failed opening 'PEAR.php' for inclusion (include_path='.;/home/xxx/public/www/pear/PEAR') in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 594 Fatal error: Class 'PEAR' not found in /home/xxx/public/www/pear/PEAR/XML/RPC.php on line 596 これでXMLフォルダが存在することは分かったのであとはインクルードパスの問題と判断しました。 しかし、インクルードパスは何度確認しても「/home/xxx/public/www/pear/PEAR」と合っているように思います。 他に心当たりがある方がいらっしゃいましたら教えていただければと思います。 宜しくお願い致します。

    • 締切済み
    • 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コマンドが使えなくなってしまいました。シェルで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 include_pathについて

    はじめまして。色々と調べてみたのですが解決できずにいます。誰か助けて頂けると助かります。学校の部活で「PEARのXML_RSSでRSSを取得してみよ」という課題が出ました。私の家では全てのPCがマックなのでMAMPをつかって以下のような環境でやっています。そこで http://o-ume8.com/junsdiary2/archives/2006/08/20060806_1726.phpを参考に課題に取りかかろうとして試しにPEAR_Infoを試してみたのですが Warning: require_once(PEAR/Info.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/pear_info.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'PEAR/Info.php' (include_path='.:/Applications/MAMP/bin/php5/lib/php') in /Applications/MAMP/htdocs/pear_info.php on line 2 の様なエラーが出てしまいます。 pathが通ってないのでしょうか? それとターミナルでphp -v と打つともとのOSの4.4.4と出ます。 phpinfoではちゃんと5.2.0と出ます。 ご教授お願いいたします。 =====環境==== MAMP 1.5 beta 1 PPC os osx 10.4.8 Apache/2.0.59 php 5.2.0 <php.ini> include_path = ".:/Applications/MAMP/bin/php5/lib/php"

    • 締切済み
    • PHP
  • include_pathの設定

    .htaccessでインクルードパスの設定をしたいのですが、 500 internal server error がでます。 どうしたらエラーが出ず正しくできるのでしょうか。 よろしくお願いします。 ・下記は.htaccessファイルに書き込んだ内容 php_value include_path ".:/home/u62/public_html/PEAR" ・下記はPEARフォルダの配置場所 /home/u62/public_html/PEAR ・下記は現在のinclude_path include_path .:/opt/php-5.3/pear

    • ベストアンサー
    • PHP
  • Windows上でpear/symfonyのpathがきかない

    現在、WindowsXP上に、サーバーを構築しましてsymfonyを動かそうとしています。 一応一通りインストール出来た様なのですが、phpはパスは通っていますが どうも、pearのパスが通ってないようです。 そのため、pearのある所でないとコマンドがききませんし symfonyのコマンドも同じ所でしか動きません。 この状態では、使い勝手が悪いのでpathを通したいのですが ご存知の方がいらっしゃいましたら、よろしくお願いします。 ------------------------------------------------ 【環境】 ・WindowsXP ・apache2.0/php5.2.0/pear1.7.1/symfony1.1.11 php.iniの抜粋分 ;***** Added by go-pear include_path=".;c:\php\includes;c:\php\PEAR\pear" ;*****

    • 締切済み
    • PHP
  • PEARの参照先

    PHP5環境下でPEARモジュールをインストールしましたが、実行時にモジュールがないというエラーメッセージが表示され、対応をしています。 お助けください。 1.現象  PHP5のプログラム実行時にエラーとなってしまい、下記のメッセージが表示されました。 Warning: require_once(Cache/Lite.php) [function.require-once]: failed to open stream: No such file or directory in ・・・ Fatal error: require_once() [function.require]: Failed opening required 'Cache/Lite.php' (include_path='.:/home/example/share/pear5') in ・・・ 2.環境  ・さくらインターネット(FreeBSD)でPHP5を独自にインストールしPEARライブラリも導入済です。    PHP5実行ファイルのインストール先 /home/example/www/cgi-bin  ・phpinfo()で確認した、include_pathは下記の通りです。    .:/home/example/share/pear5  ・pear config-show で確認した結果は、下記の通りです。    pear config-set bin_dir /home/example/share/pear5/bin    pear config-set doc_dir /home/example/share/pear5/PEAR/docs    pear config-set ext_dir /home/example/share/pear5/PEAR/extensions    pear config-set php_dir /home/example/share/pear5/PEAR    pear config-set cache_dir /home/example/share/pear5/PEAR/cache    pear config-set data_dir /home/example/share/pear5/PEAR/data    pear config-set php_bin /home/example/www/cgi-bin    pear config-set test_dir /home/example/share/pear5/PEAR/tests    pear config-set download_dir /home/example/share/pear5/temp/download    pear config-set temp_dir /home/example/share/pear5/temp  ・pear list で確認した結果は、下記の通りです。    Archive_Tar 1.3.2 stable    Cache_Lite 1.7.2 stable    Console_Getopt 1.2.2 stable    HTML_Templete_IT 1.2.1 stable    Net_UserAgent_Detect 2.2.0 stable    PEAR 1.5.1 stable    PEAR_Frontend_Web 0.5.1 alpha    Structures_Graph 1.0.2 stable ・Cache_Liteの所在     /home/example/share/pear5 の中で、Cache_Lite らしきモジュールを     探してみたところ、下記のディレクトリにありました。          /home/example/share/pear5/PEAR/Cache        Lite.php      /home/example/share/pear5/PEAR/Cache/Lite        File.php        Function.php        Output.php      /home/example/share/pear5/PEAR/tests/Cache_Lite/tests        拡張子.phptのファイルが多数   ・PEARおよび、モジュールのインストールは下記のサイトを参照して実行しています。    http://zenryokuhp.com/server/sakura_pear.htm 3.疑問点   ・モジュールは、include_pathで指定されている、      /home/example/share/pear5    の直下に置かなければならないのでしょうか。   ・現在、モジュールは /home/example/share/pear5/PEAR に存在しているのですが、    include_pathで指定した位置よりも、1階層下に置いてはいけないのでしょうか。   ・再度、PHP5とPEARのインストールをやり直し、pear config-set コマンドにて、      pear config-set php_dir /home/example/share/pear5/    と設定し、モジュール"Cache_Lite"をインストールしようとしましたが、      "Cannot install, php_dir for channel "pear.php.net" is not writeable the current user"    と表示されて、インストールが出来ませんでした。    /home/example/share/pear5/ ではインストール出来ず、    /home/example/share/pear5/PEAR ではインストール出来るというのは、    PHP5をインストールしたときに同時に登録される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
  • PEARについて

    いつも拝見させていただいております。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) この度、PHPをソースからインストールしました。 PEARを使いたいと思っておりますが、何からすればいいのか分からずに困っています 。 include_path は、「.:/usr/local/lib/php」となっており インストールディレクトリで # pear をすると Warning: main(Console/Getopt.php): Failed to open syream: No such file or directory in System.php on line 27 Fatal error: main(): Failed opening required 'Console/Getopt.php' (include_path='/usr/local/lib/php') in /usr/local/lib/php/System.php on line 27 とエラーになってしまいます。 ご教授お願いいたします。

    • 締切済み
    • PHP