Installation et configuration de Zend Framework 2 à l'échelle du server et test de conduite ZendSkeletonApplication

J'essaie d'avoir ZF2 installé pour tous mes sous-domaines à la fois (Ubuntu 12.04).

ZF2 vient de lancer sa première version stable, alors je voulais l'installer sur mon server de développement et finalement m'enblouir.

J'ai téléchargé ZF2 et j'ai décompressé les files dans / var / ZF2 / (qui contient maintenant Zend / [tous les composants]).

J'ai alors édité /etc/php5/apache2/php.ini et ajouté le path d'access aux files ZF2:

include_path = ".:/var/ZF2" 

J'ai alors téléchargé ZendSkeletonApplication et l'ai décompressé dans / var / www / skeleton .

Je sais qu'il est suggéré à composer.phar d'installer l'application ZF2, mais:

  • Je ne veux pas faire une installation locale de ZF2 … Je souhaite créer une installation à l'échelle du server pour pouvoir utiliser mes composants Zend sur tous mes domaines / sous-domaines sur mon server de développement.

  • Avant d'utiliser tout process d'installation automatique, j'aimerais vraiment comprendre ce process en le faisant manuellement au début.

Évidemment, quelque chose ne va pas lorsque je lance ZendSkeletonApplication, et je reçois ce qui suit lors de l'URL suivante:

http://www.myDevServer.com/skeleton/public/

 Fatal error: Uncaught exception 'RuntimeException' with message 'Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.' in /var/www/skeleton/init_autoloader.php:48 Stack trace: #0 /var/www/skeleton/public/index.php(9): include() #1 {main} thrown in /var/www/skeleton/init_autoloader.php on line 48 

J'ai parcouru les docs, les tutoriels et autres, mais il n'y a pas de réponse directe à ce type de configuration.

Dans le document officiel, dans le chapitre d'installation (très court), je vois une reference à l'ajout d'un path d'inclusion en PHP. Mais aucun exemple …

http://zf2.readthedocs.org/en/latest/ref/installation.html

Une fois que vous disposez d'une copy de Zend Framework, votre application doit pouvoir accéder aux classs de framework trouvées dans le dossier de la bibliothèque. Bien qu'il existe plusieurs façons d'y parvenir, votre PHP include_path doit contenir le path d'access à la bibliothèque de Zend Framework.

Mais alors, quand j'arrive au chapitre «Mise en route», c'est tout compositeur.phar et rien d'autre …

http://zf2.readthedocs.org/en/latest/user-guide/skeleton-application.html

Je ne suis pas sysAdmin, juste un enthousiaste de Zend. Je suis plutôt sûr que ce problème PEBKAC pourrait être évident pour ceux qui ont déjà eu des bêta précédentes de ZF2. Merci de m'avoir aidé.


MODIFIER:

Le problème a été résolu, grâce à Daniel M.

La configuration de ZF2_PATH dans httpd.conf était tout ce qui était nécessaire.

 SetEnv ZF2_PATH /var/ZF2 

J'ai également supprimé la reference include_path dans php.ini et tout fonctionne très bien. Je ne sais donc pas pourquoi Zend a suggéré de l'inclure dans leurs documents officiels.

Consultez init_autoloader.php dans le directory de base de votre application:

 // Support for ZF2_PATH environment variable or git submodule if (($zf2Path = getenv('ZF2_PATH') ?: (is_dir('vendor/ZF2/library') ? 'vendor/ZF2/library' : false)) !== false) { if (isset($loader)) { $loader->add('Zend', $zf2Path . '/Zend'); } else { include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; Zend\Loader\AutoloaderFactory::factory(array( 'Zend\Loader\StandardAutoloader' => array( 'autoregister_zf' => true ) )); } } 

La manière la plus simple est de configurer le ZF2_PATH env var. Si vous utilisez un server web apache, tout ce que vous devez faire est mod_env . Vous pouvez créer un file .htaccess qui définit la variable.

Dans le cas où il ne fonctionnera toujours pas, vous pouvez déboguer le file init_autoloader.php assez facilement.

Vous pouvez également utiliser pyrus.phar pour l'installer. Lisez les informations sur http://packages.zendframework.com/ pour une installation à l'échelle du système.