• ベストアンサー

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
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.2

Smarty.class.phpのパーミッションはどうですか? include_path上にファイルが存在しても、Webサーバを動かしているユーザから読めなければ、ファイルが読めずエラーになります。 一時的に chmod 755 Smarty.class.php としてみてはどうでしょう? これで動くようなら、所有者を変更するかして正しいパーミッションに戻せばよいと思います。

puripuriman
質問者

お礼

回答ありがとうございます。 上の方法を試してみたのですが、やはりうまく読み込めないようでした。 感覚としては、ファイルの種類は問わず、カレントディレクトリやドキュメントルート以下にあるファイルは読めるが、/usr~~などの場所にあるファイルはパスが通っていてもなぜか読めないような感じです。折角アドバイスをくださったのにすいません・・・。

その他の回答 (1)

noname#26650
noname#26650
回答No.1

> その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 このとき、/usr/local/lib/php/Smarty の直下に Smarty.class.php がありましたか? もしかして、/usr/local/lib/php/Smarty/libs の下に Smarty.class.php があったりはしませんでしたか?

puripuriman
質問者

お礼

回答ありがとうございます。 たしかに上のような状況になってました。 そこでinclude_pathを".:/usr/local/lib/php/Smarty/libs"にして再起動してみたんですが、やっぱりうまく動かず・・・。

puripuriman
質問者

補足

エラーには Failed opening required 'Smarty.class.php' (include_path='.:/php/includes:/usr/local/lib/php/Smarty/libs') とinclude_pathが表示されていて、Smarty.class.phpも存在しているにも関わらず読み込めないような感じです。 ちなみに前はApache、PHPともソースをコンパイルして入れていて、その時はうまく動いてたのですが、この度両方を消してパッケージで入れなおしてからエラーがでるようになってしまいました。

関連するQ&A

  • 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
  • OpenPNEについての質問

    OpenPNEについての質問です。インストール時に下記のエラーがでてしまい対処に困っています。どこがどう悪いのか見当がつかない状態です。ご存じの方対処法をお願いします。 Warning: main(PHP/Compat/Function/image_type_to_mime_type.php) [function.main]: failed to open stream: No such file or directory in /home/xxxxxx/webapp/init.inc on line 30 Warning: main() [function.include]: Failed opening 'PHP/Compat/Function/image_type_to_mime_type.php' for inclusion (include_path='/home/xxxxxx/lib/include:/home/xxxxxx/webapp/lib:.:/usr/local/lib/php') in /home/xxxxxx/webapp/init.inc on line 30 Warning: main(Smarty/Smarty.class.php) [function.main]: failed to open stream: No such file or directory in /home/xxxxxx/webapp/lib/OpenPNE/Smarty.php on line 7 Fatal error: main() [function.require]: Failed opening required 'Smarty/Smarty.class.php' (include_path='/home/xxxxxx/lib/include:/home/xxxxxx/webapp/lib:.:/usr/local/lib/php') in /home/xxxxxx/webapp/lib/OpenPNE/Smarty.php on line 7

  • require_onceについて

    MAMPを使用して開発しています。 MAMP/htdocsに入っているa.phpから同一階層にあるb.phpを呼びだそうと思い require_once('b.php'); と記述したのですが Warning: require_once(b.php): failed to open stream: No such file or directory in - on line 13 Fatal error: require_once(): Failed opening required 'b.php' (include_path='.:') in - on line 13 とエラーが表示されます。色々と試してみたもののうまくいかず。 アドバイスを宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのinclude('ファイル名')で指定できてしまうのはなぜ?

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

    • ベストアンサー
    • PHP
  • smartyの設定 include?path以下の設定がわからない

    独学でPHPを学んでいます。 PHPの基本はひととおり理解はできました。 開発環境・最新のXAMPP導入。 windows、OSはVISTA smartyをインストールしましたが、その設定につまずいています。 Smarty.class.phpが存在するパス(D:\xampp\libs)をphp.iniファイル447行目を下記のように設定しましたが、うまくいきません include_path=D:\xampp\libs\ xamppフォルダの下にlibsフォルダを入れたので上のパス指定で問題ないと思うのですが、どこが間違っているのでしょうか。 ちなみに、libs以下の\も不要だろうと思い、消したりして試してみましたが、結果は同じ。下記のように表示がなされます。 Warning: require_once(local/xampp/libs/Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\lesson\smarty1.php on line 3 Fatal error: require_once() [function.require]: Failed opening required 'local/xampp/libs/Smarty.class.php' (include_path='.;D:\xampp\php\pear\') in D:\xampp\htdocs\lesson\smarty1.php on line 3 上の文章ですが、3行目後半”Smarty.class.php' (include_path='.;D:\xampp\php\pear\')”の部分ですが、php.iniからinclude_pathを変更したりしているのですが、一向に表示が変わりません。 もしかしたらphp.iniファイルは二つあったりするのでしょうか。 php.iniのファイルはPHPフォルダに入っているものでよろしいですよね? もちろんアパッチは再起動させています。 なのにできません・ あと、ロジックファイルの require _once()の()内はSmarty.class.phpだけでもよろしいのでしょうか。 もう悩みすぎて頭がおかしくなりそうですね。 ちなみにsmartyがなくても、アプリケーション開発に支障はありませんでしょうか。 あくまで個人で趣味の範囲でアプリケーションを作成したいと感じています。

    • ベストアンサー
    • PHP
  • PHPエラーコードについて

    このようなエラーの場合どうすればいいのでしょうか?どなたか宜しくお願いいたします。 Warning: main(pager/pager.php) [function.main]: failed to open stream: No such file or directory in /home/○○○○/public_html/server/app/○○○○/○○○○.php on line 10 Fatal error: main() [function.require]: Failed opening required 'pager/pager.php' (include_path='../../pear:../../smarty:.:/usr/local/lib/php') in /home/○○○○/public_html/server/app/○○○○/○○○○.php on line 10

    • 締切済み
    • 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
  • さくらインターネットにて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
  • さくらのレンタルサーバーでDB.php読み込み失敗

    下記の環境でPHPを書いています。 ・さくらのレンタルサーバ スタンダード ・PHP 5.2.13 ・php.iniファイルパス /home/******/www/php.ini その中で、require_once("DB.php");と記述をしているのですが、 その部分で下記のエラーが発生します。 Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/www/class/db.class on line 6 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/php/5.2.13/lib/php') in /home/xxx/www/class/db.class on line 6 2ヶ月ほど前に作成した時は間違いなく正常に動作していたのですが・・・。 久しぶりにアクセスしたらこんなエラーが出ていて途方にくれています。 推測できる原因はありますでしょうか?

    • ベストアンサー
    • 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

専門家に質問してみよう