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',
)
どこを確認すればよいかのサッパリわからず投稿させていただきました。
何卒よろしくお願いします。
補足
エラーメッセージ---------------------------------------------- Warning: require_once(Zend/Http/Client/Cookie.php) [function.require-once]: failed to open stream: No such file or directory in /virtual/~/application/editor/controllers/WebController.php on line 12 Fatal error: require_once() [function.require]: Failed opening required 'Zend/Http/Client/Cookie.php' (include_path='.:/usr/local/lib/php') in /virtual/~/application/editor/controllers/WebController.php on line 12 ------------------------------------------------------------ コントローラのソース------------------------------------------- 1:<?php 2:require_once APP.'/editor/models/Web.class.php'; 3:require_once 'Zend/Http/Client.php'; 4:require_once 'Zend/Http/Client/Exception.php'; 5:require_once 'Zend/Http/Client/Adapter/Curl.php'; 6:require_once 'Zend/Http/Client/Adapter/Exception.php'; 7:require_once 'Zend/Http/Client/Adapter/Interface.php'; 8:require_once 'Zend/Http/Client/Adapter/Proxy.php'; 9:require_once 'Zend/Http/Client/Adapter/Socket.php'; 10:require_once 'Zend/Http/Client/Adapter/Stream.php'; 11:require_once 'Zend/Http/Client/Adapter/Test.php'; 12:require_once 'Zend/Http/Client/Cookie.php'; 13:require_once 'Zend/Http/Client/CookieJar.php'; 14:require_once 'Zend/Http/Client/Exception.php'; 15:require_once 'Zend/Http/Client/Response.php'; ------------------------------------------------------ require_onceをなくした時のエラーメッセージ----------------------------------- Fatal error: Uncaught exception 'Zend_Controller_Action_Exception' with message 'Action "error" does not exist and was not trapped in __call()' in /virtual/~/public_html/Zend/Controller/Action.php:485 Stack trace: #0 /virtual/~/public_html/Zend/Controller/Action.php(515): Zend_Controller_Action->__call('errorAction', Array) #1 /virtual/~/public_html/Zend/Controller/Dispatcher/Standard.php(289): Zend_Controller_Action->dispatch('errorAction') #2 /virtual/~/public_html/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #3 /virtual/~/public_html/index.php(35): Zend_Controller_Front->dispatch() #4 {main} thrown in /virtual/~/public_html/Zend/Controller/Action.php on line 485 ------------------------------------------------------------------ index.phpの末端部分でエラーが発生しているので、 どこかのソースが間違っているということなんでしょうか?