Я выполнил Zend-проект на своем персональном ноутбуке, который использует fedora, и просто перенес его на официальный сервер, который работает с дистрибутивом CentOs. Когда я запустил его, у меня возникла та же проблема, что и с fedora, а именно:
[Wed Jan 27 21:04:28 2016] PHP Warning: include_once(Zend/Db/Adapter/Pdo/Mysql.php): failed to open stream: No such file or directory in /usr/share/php/Zend/Loader.php on line 134
[Wed Jan 27 21:04:28 2016] PHP Warning: include_once(): Failed opening 'Zend/Db/Adapter/Pdo/Mysql.php' for inclusion (include_path='/var/www/inference_assist/application/../library:/var/www/inference_assist/library:.:/usr/share/pear:/usr/share/php') in /usr/share/php/Zend/Loader.php on line 134
[Wed Jan 27 21:04:28 2016] PHP Warning: include_once(Zend/Db/Adapter/Pdo/Mysql.php): failed to open stream: No such file or directory in /usr/share/php/Zend/Loader.php on line 134
[Wed Jan 27 21:04:28 2016] PHP Warning: include_once(): Failed opening 'Zend/Db/Adapter/Pdo/Mysql.php' for inclusion (include_path='/var/www/inference_assist/application/../library:/var/www/inference_assist/library:.:/usr/share/pear:/usr/share/php') in /usr/share/php/Zend/Loader.php on line 134
[Wed Jan 27 21:04:28 2016] PHP Fatal error: Uncaught exception 'Zend_Exception' with message 'File "Zend/Db/Adapter/Pdo/Mysql.php" does not exist or class "Zend_Db_Adapter_Pdo_Mysql" was not found in the file' in /usr/share/php/Zend/Loader.php:87
Stack trace:
#0 /usr/share/php/Zend/Db.php(263): Zend_Loader::loadClass('Zend_Db_Adapter...')
#1 /usr/share/php/Zend/Application/Resource/Db.php(142): Zend_Db::factory('PDO_MYSQL', Array)
#2 /usr/share/php/Zend/Application/Resource/Db.php(160): Zend_Application_Resource_Db->getDbAdapter()
#3 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php(695): Zend_Application_Resource_Db->init()
#4 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php(638): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('db')
#5 /usr/share/php/Zend/Application/Bootstrap/BootstrapAbstract.php(598): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL)
#6 /usr/share/php/Zend/Application.php(373): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NULL)
#7 /var/www/inference_assist/public/ in /usr/share/php/Zend/Loader.php on line 87
Я решил эту проблему в Fedora, используя этот ответ (Отсутствует /Zend/Db/Adapter/Pdo/Mysql.php)
Но если я попробую то же самое на CentOs, я получу следующую ошибку:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.optus.net
* epel: kdeforge2.unl.edu
* extras: mirror.optus.net
* remi-safe: remi.conetix.com.au
* updates: centos.mirror.crucial.com.au
* webtatic: sp.repo.webtatic.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch 0:1.12.3-1.el6 will be installed
--> Processing Dependency: php-ZendFramework-Db-Adapter-Pdo = 1.12.3-1.el6 for package: php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.3-1.el6.noarch
--> Processing Dependency: php-ZendFramework = 1.12.3-1.el6 for package: php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.3-1.el6.noarch
--> Running transaction check
---> Package php-ZendFramework-Db-Adapter-Pdo.noarch 0:1.12.3-1.el6 will be installed
--> Processing Dependency: php-ZendFramework = 1.12.3-1.el6 for package: php-ZendFramework-Db-Adapter-Pdo-1.12.3-1.el6.noarch
---> Package php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch 0:1.12.3-1.el6 will be installed
--> Processing Dependency: php-ZendFramework = 1.12.3-1.el6 for package: php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.3-1.el6.noarch
--> Finished Dependency Resolution
Error: Package: php-ZendFramework-Db-Adapter-Pdo-Mysql-1.12.3-1.el6.noarch (epel)
Requires: php-ZendFramework = 1.12.3-1.el6
Installed: php-ZendFramework-1.12.17-1.el6.remi.noarch (@remi)
php-ZendFramework = 1.12.17-1.el6.remi
Available: php-ZendFramework-1.12.3-1.el6.noarch (epel)
php-ZendFramework = 1.12.3-1.el6
Error: Package: php-ZendFramework-Db-Adapter-Pdo-1.12.3-1.el6.noarch (epel)
Requires: php-ZendFramework = 1.12.3-1.el6
Installed: php-ZendFramework-1.12.17-1.el6.remi.noarch (@remi)
php-ZendFramework = 1.12.17-1.el6.remi
Available: php-ZendFramework-1.12.3-1.el6.noarch (epel)
php-ZendFramework = 1.12.3-1.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Я попытался использовать —skip-broken, чтобы обойти проблему, но безрезультатно и ввести rpm -Va —nofiles —nodigest, похоже, ничего не делает.
Кто-нибудь может предоставить решение / объяснение вышеуказанной ошибке?
После пары часов поисков и экспериментов я нашел ответ:
Я должен был бежать: —
yum --enablerepo=remi,remi-php54 install php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch
вместо просто: —
yum install php-ZendFramework-Db-Adapter-Pdo-Mysql
Благодаря этому ответу (https://stackoverflow.com/a/21935770/4064854)
Других решений пока нет …