2016-07-20 40 views
1

我花了半天的時間解決這個問題,但沒有成功。zf2 Zend ServiceManager Exception ServiceNotCreatedException

我正在做EC2的設置,centos 6/64位。安裝了LAMP。在另一個主機上,我的zf2解決方案工作正常,所以我已經在php模塊中安裝了搜索問題(最後列出)。

當zf2試圖獲得我的自定義服務的實例時,也發生了這個錯誤,還有wasabi郵件。

\ Zend的\配置\ application.config.php

'config_glob_paths' => array(
     './config/autoload/{,*.}{global,local}.php', 
    ), 

\ Zend的\配置\自動加載\ global.php

 'service_manager' => array(
    'factories' => array(
     'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 

     'Zend\CustomLogger' => function ($sm) { 
      $auth = $sm->get('zfcuser_auth_service'); 

      $customLogger = new \Application\Service\CustomLogger(
        $sm->get('Request'), 
        $sm->get('ZendLog'), 
        new \Zend\Session\SessionManager(), 
        $auth->getIdentity(), // $user 
        $sm->get('Mail')); 

      return $customLogger; 
     }, 

控制器

<?php 
namespace Foo\Controller; 
    use Zend\Mvc\Controller\AbstractActionController; 
    use Zend\View\Model\ViewModel; 
    use Doctrine\ORM\EntityManager; 
    use MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\stdClass; 

    class FooController extends AbstractActionController 
    { 
     protected $customLogger; 

     private function getCustomLogger() 
     { 
      if (null === $this->customLogger) { 
       $this->customLogger = $this->getServiceLocator()->get('Zend\CustomLogger'); 
      } 
      return $this->customLogger; 
     } 

     public function indexAction() 
     { 
      $this->getCustomLogger(); 

      $this->customLogger->controllerLog("ENTER IN Foo\Controller\FooController\index", "info"); 


      // .... other code 
     } 
    } 

錯誤

Zend\ServiceManager\Exception\ServiceNotCreatedException 
File: 
/var/www/solutions/mysolution/zend/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:930 
Message: 
An exception was raised while creating "Zend\CustomLogger"; no instance returned 

PHP模塊安裝在PHP INI

extension=/usr/lib64/php/5.5/modules/php_bz2.so 
extension=/usr/lib64/php/5.5/modules/php_curl.so 
extension=/usr/lib64/php/5.5/modules/php_fileinfo.so 
extension=/usr/lib64/php/5.5/modules/php_gd2.so 
extension=/usr/lib64/php/5.5/modules/php_intl.so 
extension=/usr/lib64/php/5.5/modules/php_mbstring.so 
extension=/usr/lib64/php/5.5/modules/php_mysql.so 
extension=/usr/lib64/php/5.5/modules/php_mysqli.so 
extension=/usr/lib64/php/5.5/modules/php_openssl.so 
extension=/usr/lib64/php/5.5/modules/php_pdo_mysql.so 
extension=/usr/lib64/php/5.5/modules/php_soap.so 
extension=/usr/lib64/php/5.5/modules/php_xmlrpc.so 
extension=/usr/lib64/php/5.5/modules/php_xsl.so 

回答

1

所以,簡單的解決方案使

bz2.so  curl.so fileinfo.so iconv.so mbstring.so  mysqlnd.so  pdo_sqlite.so shmop.so  sqlite3.so sysvshm.so xmlreader.so xsl.so 
calendar.so dom.so ftp.so  intl.so mysqlnd_mysqli.so pdo_mysqlnd.so phar.so  simplexml.so sysvmsg.so tokenizer.so xml.so  zip.so 
ctype.so  exif.so gettext.so json.so mysqlnd_mysql.so pdo.so   posix.so  sockets.so sysvsem.so wddx.so  xmlwriter.so 

拓...許可對日誌目錄和其他一些目錄是錯誤的。恢復目錄上的正確權限,用戶和組(例如數據/日誌,數據/緩存...)

+0

當您發現自己的解決方案時,您可以接受自己的錯誤:) – Fge

+0

謝謝!是的,但stackoverflow說:「你明天可以接受你自己的答案」;) – gmaccario

相關問題