2010-11-18 15 views
1

Je ne comprends pas pourquoi je ne peux pas inclure le framework Zend dans mon projet. La documentation n'est pas claire sur la façon de configurer l'environnement (ou n'ont pas trouvé où c'est). Regardé ce fil: How to configure Zend Framework on linux machine? mais pas de chance. Dans le phpinfo() je vois Zend configuré mais pourquoi je ne peux pas l'utiliser? A cherché de la documentation sur la façon d'ajouter cela à PEAR/PECL, pas de chance.Pourquoi est-ce que je ne peux pas configurer Zend-framework?

Je ne vois ce poste: http://devzone.zend.com/article/4683 mais ne fonctionne toujours pas

Ce que j'ai essayé:

Option 1

require_once('/usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php'); 
Zend_Loader_Autoloader::getInstance(); 

Option 2

sudo vi /etc/php5/apache2/php.ini 

changé cette ligne:

;include_path = ".:/usr/share/php" 

à:

include_path=".:/usr/share/php:/usr/share/pear:/usr/share/php/libzend-framework-php" 

redémarrés Apache

Obtenir cette erreur:

Warning: require_once(Zend/Loader.php): failed to open stream: No such file or directory in /usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php on 
line 24 

Call Stack: 
    0.0002  61600 1. {main}() /var/www/webservice/zend/server.zend.xmlrpc.php:0 
    0.0009  174412 2. require_once('/usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php') /var/www/webservice/zend/server.zend.xmlrpc.php:2 


Fatal error: require_once(): Failed opening required 'Zend/Loader.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/share/php/libzend-framework-p 
hp/Zend/Loader/Autoloader.php on line 24 

Call Stack: 
    0.0002  61600 1. {main}() /var/www/webservice/zend/server.zend.xmlrpc.php:0 
    0.0009  174412 2. require_once('/usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php') /var/www/webservice/zend/server.zend.xmlrpc.php:2 
+0

dans cette erreur, et pour résoudre rapidement, procédez comme suit: stackoverflow.com/a/36577021/2873507 –

Répondre

1

je suggère à

chmod 775 /usr/share/php/libzend-framework-php -R comme suggestion BarZik Ran. et vérifiez les autorisations de l'utilisateur apache.

alors un lien symbolique à la bibliothèque de votre application en utilisant ceci:

ln -s /var/www/webservice/library/Zend /usr/share/php/libzend-framework-php/ 
+0

idée intéressante, je pourrais essayer cela. Merci –

+0

Merci, cela a fini par fonctionner le mieux pour moi. Maintenant, il essaie juste de faire fonctionner le service –

+0

Heureux que cela a aidé! :) – tawfekov

1

I; ai installé Zend FW sur de nombreux systèmes Linux et si je rencontrais des problèmes qu'il était sur la inclure le chemin défini incorrectement ou le problème d'autorisation.

Peut-être que le chemin n'est pas correct, essayez 'vi /usr/share/php/libzend-framework-php/Zend/Loader/Autoloader.php' ou tout autre éditeur de texte que vous aimez. Est-ce que ça marche? Peut-être est un problème d'autorisation, essayez de changer/usr/share/php/libzend-framework-php/755:

chmod 775 /usr/share/php/libzend-framework-php -R 
+0

Merci J'ai validé le chemin et c'est correct ainsi que les autorisations sont 775 avec root: mon utilisateur en tant que propriétaire. –

+0

Il ya maintenant une liste de contrôle de dépannage pour cette erreur fréquente ici: stackoverflow.com/a/36577021/2873507 –

0

Selon les messages d'erreur, votre include_path mis à jour n'est pas détecté.

Qu'est-ce que phpinfo() a à dire à propos de votre include_path?

Et si vous set_include_path(get_include_path . ':/usr/share/php/libzend-framework-php'); avant votre inclusion?

Je suppose ici que/usr/share/php/libzend-framework-php/Zend existe ...

+0

Oui, il existe, je vais définir le chemin manuellement et tester, merci –

+0

Il est maintenant une liste de contrôle de dépannage pour cette erreur fréquente ici: stackoverflow.com/a/36577021/2873507 –

0

Essayez de déplacer la bibliothèque zend:

cd /usr/share/php/libzend-framework-php 
mv library/Zend /usr/share/php/ 

nous revenions include_path à l'original:

include_path = ".:/usr/share/php" 

Redémarrez apache

+0

Je ne sais pas si cela est logique pour moi de le faire, mais c'est une option que je vais garder à l'esprit, merci –

+0

Il y a maintenant un liste de contrôle de dépannage pour cette erreur fréquente ici: stackoverflow.com/a/36577021/2873507 –

0

Après avoir frappé ma tête contre le mur pendant quelques jours, je pense que je compris. En regardant cette page: http://devzone.zend.com/article/4683 J'ai compris que j'avais besoin d'ajouter le chemin zend dans le fichier php.ini. Je l'ai fait sans effet. Après avoir regardé ma configuration PHP, j'ai remarqué dans /etc/php5/conf.d/ que je pouvais charger zend en décommentant le chemin de la bibliothèque dans le fichier zend-framework.ini que PHP charge comme un module supplémentaire/ini