Instalando e configurando o Zend Framework 2 em todo o servidor [Ubuntu] e testando o ZendSkeletonApplication

1

Estou tentando ter o ZF2 instalado para todos os meus subdomínios de uma só vez (Ubuntu 12.04).

O ZF2 acaba de lançar sua primeira versão estável, então eu queria instalá-lo no meu servidor de desenvolvimento e finalmente colocar a mão na massa.

Eu baixei o ZF2 e descompactei os arquivos em / var / ZF2 / (que agora contém Zend / [todos os componentes]).

Eu editei o /etc/php5/apache2/php.ini e adicionei o caminho para os arquivos ZF2:

include_path = ".:/var/ZF2"

Eu então baixei o ZendSkeletonApplication e o descompactei em / var / www / skeleton .

Eu sei que é sugerido para composer.phar para instalar o aplicativo ZF2, mas:

  • Eu não quero fazer uma instalação local do ZF2 ... Eu quero fazer uma instalação em todo o servidor ser capaz de usar meus componentes do Zend em todos os meus domínios / subdomínios no meu servidor de desenvolvimento.

  • Antes de usar qualquer processo de instalação automática, eu realmente gostaria de entender esse processo fazendo isso manualmente no início.

Obviamente, algo dá errado quando disparo no ZendSkeletonApplication, e recebo o seguinte quando clico no seguinte URL:

link

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

Eu folheei os documentos, tutoriais e afins, mas não há uma resposta direta para esse tipo de configuração.

No documento oficial, no (muito curto) capítulo de instalação, vejo uma referência à adição de um caminho de inclusão no PHP. Mas nenhum exemplo ...

link

Once you have a copy of Zend Framework available, your application needs to be able to access the framework classes found in the library folder. Though there are several ways to achieve this, your PHP include_path needs to contain the path to Zend Framework’s library.

Mas quando chego ao capítulo "Primeiros passos", é tudo composer.phar e nada mais ...

link

Não sou sysAdmin, apenas um entusiasta do Zend. Tenho certeza que esse problema do PEBKAC pode ser óbvio para quem já entrou nos betas anteriores do ZF2. Obrigado por me ajudar.

EDITAR:

O problema foi resolvido graças a Daniel M.

Apenas a configuração do ZF2_PATH no httpd.conf era tudo o que era necessário.

SetEnv ZF2_PATH /var/ZF2

Eu também removi a referência include_path no php.ini e tudo funciona bem. Então eu não tenho idéia do porquê Zend sugeriu incluí-lo em seus documentos oficiais.

    
por kinologik 14.09.2012 / 00:14

2 respostas

1

Verifique init_autoloader.php no diretório base do seu aplicativo:

// 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
            )
        ));
    }
}

A maneira mais simples é definir o ZF2_PATH env var. Se você estiver executando um servidor web apache, tudo que você precisa fazer é mod_env . Você pode criar um arquivo .htaccess que define a variável.

Caso ainda não seja executado, você pode depurar facilmente o arquivo init_autoloader.php .

    
por 14.09.2012 / 10:12
1

Você também pode usar pyrus.phar para instalar. Leia as informações no link para uma instalação ampla do sistema.

    
por 10.10.2012 / 11:04