- 締切済み
Ethnaの設定について
http://oshiete1.goo.ne.jp/qa3200000.html 上記を参考にみましたが、どうしても解決できないので教えてください。 質問内容も同じくWindowsでEthnaを使おうとしていますが、プロジェクトをWebに公開することができません。 ブラウザに下記のような表記が出ます。 ****************************************************************** Warning: main(Ethna/Ethna.php) [function.main]: failed to open stream: No such file or directory in C:\home\ethna\public_html\sample\app\Sample_Controller.php on line 20 Fatal error: main() [function.require]: Failed opening required 'Ethna/Ethna.php' (include_path='.:/usr/local/lib/php/Smarty;C:\home\ethna\public_html\sample/app;C:\home\ethna\public_html\sample/lib') in C:\home\ethna\public_html\sample\app\Sample_Controller.php on line 20 ****************************************************************** ディレクトリ構造は C:\ -- php\ -- PEAR\ -- Ethna、smarty、PEAR等 プロジェクトは C:\ home\ -- ethna\ -- public_html\ -- sample の中に入っており http://localhost/~ethna/sample/www/index.php にアクセスしています。 パスの指定が間違っているのだと思いますが どうしても解決できません。 アドバイスお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
基本的にindex.phpからController、Actionという流れがある以上、 Ethna_Controller等が継承出来る環境でなければなりません。 なので、Controllerのクラス定義前でinclude_pathを書き換えていると思います。 ethnaコマンドからプロジェクトを作成しているならControllerに 以下の記述があると思います。 /** アプリケーションベースディレクトリ */ define('BASE', dirname(dirname(__FILE__))); /** include_pathの設定(アプリケーションディレクトリを追加) */ $app = BASE . "/app"; $lib = BASE . "/lib"; ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . implode(PATH_SEPARATOR, array($app, $lib))); この辺変えてません? もしくはphp.iniで設定しているinclude_pathが '.:/usr/local/lib/php/Smarty' ってなってます。 上記スクリプトは、php.iniで設定されているinclude_pathに、 プロジェクトで利用するライブラリディレクトリ等を追記している 処理です。 なので、パッと見だと、php.iniで設定しているinclude_pathに 誤りがあると思われます。 C:/ php/ PEAR/ Ethna/ Ethna.php というディレクトリ構成と想定すると、 php.ini include_path = '.;C:/php/PEAR' と設定してapacheを再起動すれば良いと思います。