• ベストアンサー

さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました

さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 タイトル通りなんですが、 さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定し ソース.php内で require_once'DB.php'; を書き込むとエラーになってしまいます。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定しなければちゃんと表示されます。 phpinfo()で .:/home/ユーザー名/smarty と .:/usr/local/bin/php が表示されていれば問題無いと思い、色々設定しましたが全てアウトでした。 smartyをphp.ini内にてインクルードしたのが原因だと思われるのですが、元々あったphpのコマンドパス /usr/local/bin/php がインクルードにより反映されなくなったのが原因だと思うのですが、 1ヶ月経っても分からず縋る思いで書き込みました。 何卒宜しく御願いします。 参考 http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml

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

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

  • ベストアンサー
  • wish46
  • ベストアンサー率78% (29/37)
回答No.4

DB.phpとは恐らくPEARのことでしょう。 /usr/local/bin/phpの下に PEAR/ があるか確かめてみてください。 さくらインターネットでは標準でPEARがインストールされているらしいので。 もし分からなければ管理人に問い合わせてみてください。

参考URL:
http://zenryokuhp.com/server/sakura_pear.htm
0000109502
質問者

お礼

メールで問い合わせた所 /usr/local/bin/php/ で動作する事ができました。 色々とご教授頂きまして有り難う御座いました。

その他の回答 (3)

  • wish46
  • ベストアンサー率78% (29/37)
回答No.3

DB.phpってどこにあります? Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/bin/php') は、指定されたフォルダ(ディレクトリ)にそのファイルが存在しないというエラーです。 一度DB.phpまでのパスを確かめてみてください。 参考までに include_path=".:/home/ユーザー名/smarty:/home/ユーザー名/(DB.phpのあるフォルダまのでのパス)" ではいかがでしょう。

0000109502
質問者

補足

DB.phpの場所が調べても特定できませんでした。 /usr/local/bin/php 内をftpソフトを使い調べましたがDB.phpが見当たりませんでした。 後はどの様にDB.phpが格納されている場所を調べる事ができるかご教授願えないでしょうか?

  • racci
  • ベストアンサー率64% (9/14)
回答No.2

include_path=".:/home/ユーザー名/smarty:/usr/local/lib/php" のようにしてもダメですか? /usr/local/lib/php は Pear がインストールされているディレクトリです。

0000109502
質問者

補足

include_path=".:/home/ユーザー名/smarty:/usr/local/lib/php" このように設定した場合、ソース.php内で require_once'DB.php'; と書いたファイルのみエラーとなります。 エラーの内容は Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/bin/php') です smartyのテストファイルは問題なく表示できています。 試しに include_path=".:/usr/local/bin/php" と設定してみましたが、これで設定してもエラー表示になってしまいました。 多分、 .:/usr/local/bin/php のパスに問題が有ると思うのですがどう設定すればよいのか分からない状態です。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

> require_once'DB.php'; > を書き込むとエラーになってしまいます。 どんなエラーメッセージが出ますか?

0000109502
質問者

補足

記載漏れ失礼しました エラーメッセージは Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/bin/php') と表示されます。

関連するQ&A

  • 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
  • require_once()でファイルが読み込めません

    すいません、色々やったみたのですがよく分からなかったので教えてください。 PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。 その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 failed to open stream: No such file or directoryや Failed opening required 'Smarty.class.php' というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。 ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。 環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • Smartyの設定について

    FedoraCore 4 MySQL 4.1.14 PHP 5.0.4    を使ってます。 Smartyを入れようと思い、Web上でいろいろ調べてやっているのですが、うまく動きません。 解凍したSmartyをフォルダごと /usr/local/lib/php/Smarty に移動し、 /etc/php.ini の中のinuclude_pathを include_path = ".:/usr/local/lib/php:/usr/local/lib/php/Smarty" としました。 そして、Demoフォルダを /var/www/html/demo/に移動してブラウザ上でdemoを見ているのですが、下記のエラーがでてしまいます。 Warning: main(/usr/local/lib/php/Smarty/Smarty.class.php) [function.main]: failed to open stream: No such file or directory in /var/www/html/demo/index.php on line 3 Fatal error: main() [function.require]: Failed opening required '/usr/local/lib/php/Smarty/Smarty.class.php' (include_path='.:/usr/local/lib/php/Smarty') in /var/www/html/demo/index.php on line 3 エラーの内容を見てみると Smarty.class.phpを呼び出すには /usr/local/lib/php/Smarty/lib/Smarty.class.phpとなっていないとおかしいと思うのですが、このあたりどう設定してよいのかわかりません。 Smartyの基本的な設定を何卒ご教授ください。

    • ベストアンサー
    • PHP
  • PHP CLIでのphp.iniのパスを設定したい

    CLIモードで読み込まれるphp.iniのデフォルト値(/usr/local/lib)を「php -c path/file」を使わず、インストール時のconfigureオプションなどで指定することは可能なのでしょうか? 環境 CentOS 6.0 PHP5.3.9 (変な場所にインストールされているのは、他の開発環境もあるので隔離するためです。) configure時オプション --prefix=/home/user/local/php --with-config-file-path=/home/user/local/php/lib/ ↑これで自動的に/home/user/local/php/lib/php.iniが読み込まれると思ったのですが $ /home/user/local/php/bin/php -v PHP 5.3.9 (cli) (built: Jan 17 2012 17:22:45) $ /home/user/local/php/bin/php -i Configuration File (php.ini) Path => /home/user/local/php/lib/ Loaded Configuration File => /usr/local/lib/php.ini  なぜかデフォルト(/usr/local/lib/php.ini)が読み込まれてしまう $ /home/user/local/php/bin/php -c /home/user/local/php/lib/php.ini -i Configuration File (php.ini) Path => /home/user/local/php/lib/ Loaded Configuration File => /home/user/local/php/lib/php.ini  cオプションで指定するともちろん問題なし ちなみにブラウザで見るとConfiguration File (php.ini) PathとLoaded Configuration Fileが等しくなっています。 apacheのhttpd.confに PHPIniDir "/home/user/local/php/lib/" を記載しているからだと思いますが。 www.sample.com/index.php Configuration File (php.ini) Path/home/user/local/php/lib/ Loaded Configuration File/home/user/local/php/lib/php.ini

    • ベストアンサー
    • PHP
  • さくらインターネットのCron設定、PHPが実行されない

    当方、さくらインターネットのスタンダードプランを利用しております。 特定のphpを定期的に実行したい為、Cron設定を行ってみました。 以下、使用した実行コマンドです。 /usr/local/bin/php -f/home/[アカウントID]/www/[PHPのパス] しかし、先ほど確認してみたところphpが実行されていませんでした。 今年の2月ごろに設定、4月24日までは毎時稼動してたようです。 Cronの設定自体は残っており、高負荷な為さくらインターネットより停止させられたという感じではありません。警告のメール等も確認できませんでした。 一応、同様のコマンドで別のphpを試しにcronで実行させてみましたが、正常に動作しませんでした。(ブラウザでアクセスすると正常に動作する。) コマンドが間違っているのでしょうか? ご回答いただけると助かります。

    • ベストアンサー
    • PHP
  • php.iniのinclude_path名の取得方法について

    php.ini内で設定するinclude_pathの取得方法がありましたらどなたか教えてください。 よろしくお願いします σ(^_^)

    • ベストアンサー
    • PHP
  • さくらインターネットでphp.iniの設定が反映されない

    いつもお世話になっています。 さくらインターネットの共用サーバにPHP5,PEARをインストールし、 PHPプログラムにて、mb_convert_encoding()を実行すると、 Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in ・・・ と表示されました。 php.iniの設定内容を疑って、内容を確認したところ、 さくらインターネットのコントロールパネルからphp.iniを更新しているのですが、 phpinfo()で見るとmbstringの設定項目が反映されていないのです。 ■phpinfo()の表示内容: Multibyte Support enabled Multibyte string engine libmbfl Multibyte (japanese) regex support enabled Multibyte regex (oniguruma) version 4.4.4 Multibyte regex (oniguruma) backtrack check On Directive Local Value Master Value ------------------------------------------------------------- mbstring.detect_order no value no value mbstring.encoding_translation Off Off mbstring.func_overload 0 0 mbstring.http_input pass pass mbstring.http_output pass pass mbstring.internal_encoding ISO-8859-1 no value mbstring.language neutral neutral mbstring.strict_detection Off Off mbstring.substitute_character no value no value ■php.iniの中の下記の設定項目が反映されていることは確認できました。 cgi.fix_pathinfo=1 register_long_arrays = on ■mbstringのphp.iniでの設定は下記の通りです。 mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translastion = On mbstring.detect_order = auto mbstring.substitute_character = none; ■phpinfo()で表示したその他の項目 ・PHP Version 5.2.1 ・FreeBSD ・Configuration File (php.ini) Path /home/example/www/php.ini -------------------------------------------------------------- さくらインターネットのコントロールパネルからphp.iniを更新すると通常は実行時に反映されるのですが、 なぜ、mbstringに関しての設定が反映されないのか、どうすれば反映されるようになるか、わかる方がいらしたら教えてください。

    • 締切済み
    • PHP
  • さくらにsmartyをセットアップする

    http://www.mogutan-blog.com/?eid=283 さくらサーバーと格闘しています。 上記ブログやその他ブログを見ながらパスは通りましたが、やりたい方法とちがうので改めてこちらでお聞きします。 私の方法 1.smartyをwww以下にアップ 2.アップしたフォルダをlibsと改名 3.index.phpでrequire_once '../libs/smarty/Smarty.class.php'; としてokでした。 しかし、php.iniを使って、 require_once './Smarty.class.php'; とパスを編集するには、php.iniをどのように書けばよろしいでしょうか? 現在は、include_path=".:/home/アカウント名/libs/" としており、どのように書けばパスが通るでしょうか? ちなみに簡略フォルダー展開ですが、 ルート ├ libs(smarty)- Smarty - Smarty.class.php ├ php.ini ├ www ┬ index.php     

    • ベストアンサー
    • PHP
  • 空メール受信時 php8 さくらインターネット 

    phpを8.0にバージョンアップしたら空メール受信時のphp起動が稼働しなくなりました。 稼働しなくなった理由や原因など教えていただきたいです。 よろしくお願いします。 過去のバージョン時に参考にしたサイトは以下の通りのものです http://www.aiwake.co.jp/modules/bulletin/index.php?page=article&storyid=3 -------------reply.php------------------------ #!/usr/local/bin/php -q <?php // PEARのパスを設定 $path = '/home/{さくらアカウント名}/pear/PEAR/'; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once 'Mail/mimeDecode.php'; // 受信メールから読み込み $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $params['input'] = file_get_contents("php://stdin"); $params['crlf'] = "\r\n"; if (!$params['input']) { // 読み込み失敗 exit(); } $structure = Mail_mimeDecode::decode($params); // Fromフィールド(会員のアドレス)の取得 $fromField = $structure->headers['from']; $fromField = addslashes($fromField); $fromField = str_replace('"','',$fromField); $fromField = preg_replace('/(^.*<|>$)/', '', $fromField); // 会員のアドレスを暗号化 $addr = base64_encode($fromField); // Subjectフィールド(広告コード)の取得 $subjectField = $structure->headers['subject']; $subjectField = mb_convert_encoding($subjectField,"UTF-8","JIS"); $ad = $subjectField; // メール作成 $to = $fromField; $fromAddr = "{メールアドレス}"; $from = "From: $fromAddr"; $subject = "{メールタイトル}"; $body = "{メール内容}"; // メール送信 if (mb_send_mail($to, $subject, $body, $from)) { exit(); } else { echo "メールの送信に失敗しました。\n"; exit(1); // エラーコード 1 を返す } ?> -------------reply.php------------------------   to "| /usr/local/bin/php -q /home/gayhiroba/MailBox/{さくらアカウント名}/reply.php" exit

  • PHPのinclude('ファイル名')で指定できてしまうのはなぜ?

    お世話になります。 Smartyでテンプレートを用いながらPHPで開発を行っております。 たとえば、あるファイルからSmarty.class.phpをincludeする時 にinclude('Smarty.class.php')でどうやらincludeできている ようなのですが、、なぜ!?なのでしょうか? イメージ的には、include('パス')もしくはphp.iniに設定されている ディレクトリ直下のファイルというイメージなのですが。。 php.iniをのぞいてみるとinclude_pathはコメントアウトされている のですが・・ 疑問です。 ご教授お願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう