• 締切済み

Zend Frameworkでoracle接続

Zend Frameworkを勉強しようと思い始めたばかりのものです。 oracleに繋がらずどこをチェックすればよいのかさっぱりわかりません。 どなたかご教授願えないでしょうか? zfツールを使い雛形を作って、module で分けてみたり、ヘッダー、フッターをlayoutを使って分けたりと少し前進しました。 次はDB接続だと思い始めたのですが繋がりません。 ■環境 CentOS release 5.6 (Final) ■やったこと 1)oracle接続モジュール oci8 をインストール # export ORACLE_HOME=/opt/oracle/product/10.2.0/db # pecl install oci8 php.ini に追記 # vi /etc/php.ini extension=oci8.so 2)ローカルで接続テスト これは問題なく接続できてるみたいなのです。 # more test.php <?php putenv("ORACLE_HOME=/opt/oracle/product/10.2.0/db"); putenv("LD_LIBRARY_PATH=:/opt/oracle/product/10.2.0/db/lib"); // Zend_Dbライブラリの読み込み require_once 'Zend/Loader.php'; require_once 'Zend/Db.php'; $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); echo 'OK'; $db->closeConnection(); # php test.php OK 3)Zend Frameworkで接続テスト IndexController.php の indexAction でやってみたのですがダメなのです。 public function indexAction() { $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); $db->getConnection(); echo 'OK'; $db->closeConnection(); } ※/etc/sysconfig/httpdに以下を追加しました export ORACLE_HOME=/opt/oracle/product/10.2.0/db export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db/lib 実行するとどうしてもエラーとなります。 ■エラーメッセージ An error occurred Application error Exception information: Message: Unknown exception Stack trace: #0 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Db/Adapter/Abstract.php(315): Zend_Db_Adapter_Oracle->_connect() #1 /home/www/zf/application/modules/default/controllers/IndexController.php(30): Zend_Db_Adapter_Abstract->getConnection() #2 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Action.php(516): IndexController->indexAction() #3 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('indexAction') #4 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #5 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #6 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #7 /home/www/htdocs/shopping/necs/zf/index.php(29): Zend_Application->run() #8 {main} Request Parameters: array ( 'controller' => 'index', 'action' => 'index', 'module' => 'default', ) どこを確認すればよいかのサッパリわからず投稿させていただきました。 何卒よろしくお願いします。

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

みんなの回答

  • nataraja
  • ベストアンサー率0% (0/0)
回答No.2

Zend は使ったことが無いのでよくわかりませんが、少し気になった部分を記載しますので、一度確認してみてください。 > export ORACLE_HOME=/opt/oracle/product/10.2.0/db > export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db/lib 上記の環境変数の設定ですが、下記が正解では?と考えます。 export ORACLE_HOME=/opt/oracle/product/10.2.0/client export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/client/lib ORACLE_HOMEのパスがDBになっていますが、Oracle DBに接続する為に利用するのは「Client」ですのでORCLE_HOMEのパスにはClientのディレクトリを指定するのがセオリーと認識しています。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

#回答ではありません とりあえず相互リンクしておきますね http://www.phppro.jp/qa/3639

関連するQ&A

  • zendのcontrollersについて

    Zendを始めたばかりのものです。 サーバ:XPで自営 Apache2,php5 Zendをダウンロードし、Cドライブのルートに「ZendFramework-1.9.0」 という名前で配置しました。 php.iniのinclude_pathの設定も変更し、 htdocsの直下にindex.phpを作成し <?php require_once 'Zend/Version.php'; //ライブラリの読み込み echo Zend_Version::VERSION; //現在のZend Frameworkのバージョンを表示 とすると、正常にバージョンが表示されます。 zendappsというフォルダーをhtdocsの中に作成し、index.phpに <?php require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::run('../zendapps/controllers'); とするとエラーになります。(エラーは長いので後述) '../zendapps/controllers'の部分かとも思いますが、 お分かりになる方、教えていただけると幸いです。 エラーの内容 Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php:242 Stack trace: #0 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch() #2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\zendapps\index.php(3): Zend_Controller_Front::run('../zendapps/con...') #3 {main} thrown in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php on line 242

    • ベストアンサー
    • PHP
  • PHP5+Oracle10gのconfigureについて

    Linuxで、configureをして、PHP5+Oracle10gをインストールしようと思っていますが、Webなどで検索して、 # export ORACLE_HOME=/home/oracle/product/10.2.0/db_1 # configure --with-oci8=$ORACLE_HOME ・・・・ というように、記述があったのですが、WebサーバとDBサーバを 分ける場合は、--with-oci8の記述は、どうすればよいのでしょうか?

    • 締切済み
    • PHP
  • ZendFramework-1.0.2の環境設定

    IndexController.php以外の Controllerファイルが起動いたしません。 以下のようなエラーが出力されます。どのように対処したらよいでしょうか。よろしくお願いいたします。 Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\zend\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php:194 Stack trace: #0 C:\zend\ZendFramework\library\Zend\Controller\Front.php(920): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\zend\ZendFramework\library\Zend\Controller\Front.php(224): Zend_Controller_Front->dispatch() #2 C:\Apache Group\Apache2.2\htdocs\zdb1\index.php(10): Zend_Controller_Front::run('./application/c...') #3 {main} thrown in C:\zend\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php on line 194

    • ベストアンサー
    • PHP
  • ZendFrameworkのindex.phpで

    【環境】 ZendFramework Version 1.11 PHP 5.3.8 ZendFrameworkの学習をしているのですが、見るサイトによってindex.phpが異なりそれらの違いが分かりません。 下記の3種類の実装はどのような違いが有り、どのようなときに使用するべきなのでしょうか? 1.Zend_Applicationのインスタンスを使用するもの $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run(); 2.Zend_Controller_Front::run()を使用するもの Zend_Controller_Front::run('../application/controllers'); 3.$front->dispatch();を使用するもの $front = Zend_Controller_Front::getInstance(); $front->setControllerDirectory('../application/controllers'); $front->dispatch();

    • ベストアンサー
    • PHP
  • Zend Frameworkが機能しなくて

    困っています。 Fedora11にZendFrameworkをDLして解凍して /usr/local/ZendFramework-1.9.3PL1 として入れました。 /etc/php.ini: ......... include_path = ".:/usr/local/ZendFramework-1.9.3PL1/library" ......... と設定し /etc/httpd/conf/httpd.conf: ......... LoadModule rewrite_module modules/mod_rewrite.so ......... <Directory "/var/www/html/zend/public"> AllowOverride All </Directory> と設定し /var/www/html/zend/public/.htacess: RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php と設定し /var/www/html/zend/public/index.php: <?php require_once 'Zend/Version.php'; echo Zend_Version::VERSION; とし #service httpd restart とアパッチを実行し Firefoxブラウザのアドレス欄に http://localhost/index.php を入力しアクセスしたところブラウザに Not Found The requested URL /index.php was not found on this server. Apache/2.2.13 (Fedora) Server at localhost Port 80 と404エラーがでます。 ちなみに http://localhost/zend/public/index.php にアクセスすれば 1.9.3PL1 が問題なく表示されます。 しかしこれではZendフレームワークでWebアプリを組めません。 どうすれば解決できるでしょうか?

    • ベストアンサー
    • PHP
  • ZendFrameworlkでZend_Sessionがつかえません

    表題の通り、Zend_Sessionが使えません。 $session = new Zend_Session_Namespace('global'); と記述すると、下のエラーがでます。インスタンスを生成する部分を除けば 正常に動作し、他のZendFrameworlkコンポーネントは使える状態です。同じソースでもレンタルサーバ上では思い通りに動くので私のローカル環境の設定がおかしいと思うのですが、何を見たらいいでしょうか。 環境はWindowsVista、Apache 2.2.6、PHP 5.2.4(xampp)、ZendFramework1.0.3です。 Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Session must be started before any output has been sent to the browser; output started in C:\xampp\htdocs\index.php/1' in C:\xampp\ZendFramework\library\Zend\Session.php:359 Stack trace: #0 C:\xampp\ZendFramework\library\Zend\Session\Namespace.php(116): Zend_Session::start(true) #1 C:\xampp\htdocs\index.php(22): Zend_Session_Namespace->__construct('global') #2 {main} thrown in C:\xampp\ZendFramework\library\Zend\Session.php on line 359

    • ベストアンサー
    • PHP
  • PHPとOracleの接続について

    oracle関数を使用したいのですが 『php.ini』の『extension=php_oci8.dll』を有効にして、ブラウザでPHPにアクセスしたら以下のような2つの警告が出ました。 1.プロシージャエントリポイントOCILobFreeTemporaryがダイナミックリンクライブラリOCI.dllから見つかりません。 2.Unknown():Unable to load dynamic library 'd:\php\extensions\php_oci8.dll'-指定されたプロシージャが見つかりません。 extension=php_oci8.dll』を無効にすればPHPは動きます。 環境は下記を使用しています。 NT:4.0 PHP:4.3.0 ORACLE:8.0.6 APACHE:1.3.27 ご存知の方はよろしくお願いいたします。

    • 締切済み
    • PHP
  • ZendFremeworkインストールについて

    index.phtmlが設置されていない等でのエラーが表示されるケースはgoogleなどで表示されるのですが、 Broker.phpに関するエラー表示が見つかりませんでしたので、質問させて頂きました。 今回新しい案件で、ZendFremeworkに関して作成出来るようになるべく、 ZendFremeworkに関連するサイトを閲覧しながら、インストールしました。 html/index.phpに下記のように、コードを挿入し、バージョン確認を行った所、 正常に動作しました。 require_once 'Zend/Version.php';  //ライブラリの読み込み echo Zend_Version::VERSION;     //現在のZend Frameworkのバージョンを表示 ですが、下記の分に変更した所、エラーが発生しました。 require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::getInstance()->setParam('noViewRenderer', true); Zend_Controller_Front::run('../zend_app/controllers'); [エラー内容] ============================================================== Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in (略)\Zend\Controller\Dispatcher\Standard.php:248 Stack trace: #0 (略)\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 (略)\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch() #2 (略2)\Zend\index.php(11): Zend_Controller_Front::run('../zend_app/con...') #3 {main} Next exception 'Zend_Controller_Exception' with message 'Invalid controller specified (error)#0 (略)\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 (略)\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch() #2(略)\Zend\Controller\Plugin\Broker.php on line 336 ============================================================= バージョンが表示できているので、インストール自体は出来ていると思うのですが、 実際にコントローラーを設定した時には、何を行ってもこの現象が起こってしまいます。 いくら検索しても、見つからなかったので、質問させて頂きました。 どうぞ宜しくお願いします。 [ 開発環境 ] XAMMP (PHP5.3.1) Windows7(64bit) 下記のようなフォルダ構成となっております。 ===================================== /Zend(公開エリア)    .htaccess    index.php /zend_app(アプリケーションエリア)    /controllers       IndexController.php    /models    /views       /scripts          /index             index.phtml /ZendFramework(フレームワーク本体)    /library /Zend /Controller ======================================

    • 締切済み
    • PHP
  • Zend_Aclアクセス制限

    Zend_Acl というライブラリを使って、アクセス制限をしたいと考えています。 参考: http://framework.zend.com/manual/ja/zend.acl.html この場合、product.phpというページをstaffという権限に アクセス許可する場合は、どうしたら良いのでしょうか? 各ページに記述すれば良いのでしょうか? どこに何と記述するのでしょうか? 丸投げですみませんが、よろしくお願いします。 また、 $acl->add(new Zend_Acl_Resource('product.php')); と記述した場合、product.phpには、誰がアクセス許可されるのでしょうか?

    • ベストアンサー
    • PHP
  • ロリポップでZendを導入できますか?

    ロリポップでZendを導入しようとしていますが、エラーが出て困っています。 Zendの場所はユーザから見たら一番上のルート、つまり/home/sites/lolipop.jp/users/***/web/Zend としています。エラーは下記です。(***は私のユーザ名、/aaa/index.phpを実行しています。) Warning: require_once(Zend/Controller/Action.php) [function.require-once]: failed to open stream: No such file or directory in /home/sites/lolipop.jp/users/***/web/aaa/index.php on line 4 Fatal error: require_once() [function.require]: Failed opening required 'Zend/Controller/Action.php' (include_path='.:/usr/local/php5/php') in /home/sites/lolipop.jp/users/***/web/aaa/index.php on line 4 また、.htaccessにはphpのパスを通すため、下記のように書いています。 php_value include_path ".:/usr/local/php5/php:/home/sites/lolipop.jp/users/***/web/Zend/" .htaccessの場所は、Zendフォルダと同じくルートディレクトリです。(つまり/home/sites/lolipop.jp/users/***/web/ の下です。) また、念のため、.htaccessに下記の記述も試しましたが、だめでした。 php_value include_path ".:/usr/local/php5/php:/home/sites/lolipop.jp/users/***/web/" 何が悪いのでしょうか?あるいはそもそもロリポップへのZendの導入は無理なのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう