Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luka Moura

Erro na instalação do Windows

Recommended Posts

Olá!

Estou tentando instalar um sistema em Zend no meu cliente.

O servidor dele é windows, mas com PHP5 instalado.

 

O erro que aparece é esse:

PHP Warning: include(/Zend/Loader.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 56

PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening '/Zend/Loader.php' for inclusion (include_path='C:\PHP\pear;.\;c:\php\includes\d:\http\cliente.com\public_html\ZF\libraryd:\http\cliente.com\public_html\ZF\cliente\application\models') in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 56

PHP Fatal error: Class 'Zend_Loader' not found in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 69

 

O que pode ser? Não sei mais o que testar e o servidor deles por ser windows não ajuda muito não é?

 

Aguardo retorno.

Obrigada!

Luka.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste seu index.php, mas pelo visto você nao configurou direito o include_path

 

<?php
/**
* Arquivo principal da aplicação
* Define todos os caminhos onde os arquivos estão armazenados,
* todos os includes necessários e todos os componentes que a
* aplicação utilizará.
* Responsável por inicializar a aplicação, ele invoca os
* arquivos de controlador que são responsáveis pelo funcionamento
* da aplicação.
*  @filesource
* @author			Luciana de Moura
* @copyright		Copyright 2010 6D
* @package			zendframework
* @subpackage		zendframework.lukaapp
* @version			1.10
*/
/** Configura as mensagens de erro que devem ser apresentadas. */
error_reporting(E_ALL | E_STRICT);

/**
* Identifica o sistema operacional do servidor, considerando que pode
* ser Windows ou Linux.
*/
require('../library/Personal/Config.php');
$bar = Personal_Config::getBar();
$pathSeparator = Personal_Config::getPathSeparator();
$documentRoot =  Personal_Config::getDocumentRoot();
$applicationName = basename(getcwd());

/**
* Configura o caminho a ser procurado em todos os includes.
* Irá procurar no diretório ../library, no application/models
* e no caminho original do PHP.
* É interessante utilizar set_include_path para definir onde se encontram
* todos os arquivos do projeto, pois assim se evita que o mesmo código
* seja escrito várias vezes, gerando menos linhas e facilitando qualquer
* alteração de path.
*/
$path 	= 	$pathSeparator.$documentRoot.$bar.'ZF'.$bar.'library';
$path 	.= 	$pathSeparator.$documentRoot.$bar.'ZF'.$bar.$applicationName.$bar.'application'.$bar.'models';

set_include_path(get_include_path().$path);

/**
* Faz o include do componente Zend_Loader.
* Este include é obrigatório.
* Zend_Loader carrega arquivos, classes e recursos
* dinamicamente em sua aplicação PHP.
* => suporta autocarregamento da SPL (Standard PHP Library)
* => suporta include_path
* => fornece mecanismo de falha baseado em exceção
*/
include('/Zend/Loader.php');

/**
* O registro é um contâiner para armazenar objetos e valores
* no espaço da aplicação. Armazenar um objeto ou valor
* no registro torna o mesmo sempre disponível ao longo
* da aplicação durante o tempo de vida da requisição.
* Este mecanismo é freqüentemente uma alternativa aceitável
* ao uso de variáveis globais.
* => fornece armazenamento acessível globalmente para objetos
* e valores
* => fornece os padrões iterator, array e indexed access
*/
Zend_Loader::loadClass('Zend_Registry');

/** Inclui o suporte a sessões. Só é necessário caso seja usado. */
Zend_Loader::loadClass('Zend_Session');
/** Classe usada para armazenar e recuperar dados da sessão */
Zend_Loader::loadClass('Zend_Session_Namespace');

/** O método loadClass é responsável por incluir o arquivo responsável
* pela classe.
* Este método tenta carregar o arquivo passado como parâmetro
* procurando no path definido com a função set_include_path.
* Caso ele não consiga encontrar o arquivo, é gerada uma exceção que
* indica arquivo inexistente ou sem acesso. O método considera os
* underscores no nome do arquivo como subdiretórios. Por exemplo, o
* comando Zend::loadClass('Zend_Controller_Front') faz a importação
* do arquivo ../ZF/library/Zend/Controller/Front.php.
* Seguir esse padrão facilita o entendimento da estrutura do projeto.
*/
Zend_Loader::loadClass('Zend_Controller_Front'); 	/** Classe de controladores */
Zend_Loader::loadClass('Zend_View'); 				/** Classe das visões */
Zend_Loader::loadClass('Zend_Config_Ini'); 		/** Classe usada para configurações */
Zend_Loader::loadClass('Zend_Db'); 				/** Classe para acesso a base de dados */
Zend_Loader::loadClass('Zend_Db_Table'); 			/** Classe para usar as tabelas como objetos */
Zend_Loader::loadClass('Zend_Filter_Input'); 		/** Classe usada para filtrar os dados */
Zend_Loader::loadClass('Zend_Auth'); 		/** Classe usada para autenticar */
Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable'); 		/** Classe usada para autenticar com banco de dados */
Zend_Loader::loadClass('Zend_View'); 		/** Classe usada para o menu */
Zend_Loader::loadClass('Zend_File_Transfer'); 		/** Classe para uploads */
Zend_Loader::loadClass('Zend_File_Transfer_Adapter_Http'); 		/** Classe para o adaptador uploads */
Zend_Loader::loadClass('Zend_File_Transfer_Exception'); 		/** Classe para os erros de upload */

/** O método set é responsável por armazenar variáveis que podem ser usadas
* pelos aplicativos. Aqui, registrando os arrays post e get com dados vindos do usuário.
* o Zend_Filter limpa os dados.
*/
Zend_Registry::set('post', new Zend_Filter_Input(NULL,NULL,$_POST));
Zend_Registry::set('get', new Zend_Filter_Input(NULL,NULL,$_GET));

/** Parte das visões */
$view = new Zend_View(); 						/** Cria um novo objeto do tipo view */
/** Configura a codificação das páginas */
$view->setEncoding('UTF-8');
$view->setEscape('htmlentities');
$view->setBasePath('./application/views/');	/** Define o diretório onde estarão as visões */
Zend_Registry::set('view', $view); 				/** Registra na memória a variável view que indica a visão */

/** Inicia a sessão global */
Zend_Session::start();

/** Cria o manipulador da sessão */
Zend_Registry::set('session',new Zend_Session_Namespace());

/** Configura o controlador do projeto.
* O Controlador, por acaso, é o index.php
*/
$baseUrl = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], '/index.php'));

/** Cria uma nova instância da classe controladora */
$frontController = Zend_Controller_Front::getInstance();

/** Configura o endereço do controlador do projeto */
$frontController->setbaseUrl($baseUrl);

/** Indica o diretório onde estão os outros controladores da aplicação */
$frontController->setControllerDirectory('./application/controllers');

/** O controlador deve tratar as exceções */
$frontController->throwExceptions(TRUE);

/** Configurações da base de dados.
* Indica onde estão as configurações do projeto.
* Estão no arquivo config.ini na seção database.
*/
$config = new Zend_Config_Ini('./application/config.ini', 'database');

/** Registra na memória a variável config */
Zend_Registry::set('config', $config);

/** Configura a conexão com a base de dados, pegando as variáveis do arquivo
* de configuração.
*/
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table_Abstract::setDefaultAdapter($db);

/** Registra a variável db */
Zend_Registry::set('db', $db);

/** Configura o formato para moeda */
setlocale(LC_MONETARY,'ptb');

/**
* Aqui colocarei todas as minhas configurações para o sistema
*/
/** Registra o diretório base como dirpai no Zend_Registry */
Zend_Registry::set('DIRPAI', $baseUrl);
/** Registra a língua da admin no Zend_Registry */
Zend_Registry::set('LINGUA', 'portugues');

/** Executa o controlador do projeto.
* Ele irá receber todas as requisições e invocar os arquivos correspondentes.
*/
$frontController->dispatch();

?>

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa que index grande, tem muitas linhas desnecessarias, mas primeiro vamos resolver seu problema

 

include('/Zend/Loader.php');

 

tira essa primeira barra deixando assim:

 

include('Zend/Loader.php');

 

se nao resolver da um echo no $path só pra ver o que tem nele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa que index grande, tem muitas linhas desnecessarias, mas primeiro vamos resolver seu problema

 

include('/Zend/Loader.php');

 

tira essa primeira barra deixando assim:

 

include('Zend/Loader.php');

 

se nao resolver da um echo no $path só pra ver o que tem nele

 

Olá

Não resolveu, continuou com o msm problema.

 

O echo do $path é: :D:\http\cliente.com\public_html/ZF/library:d:\http\cliente.com\public_html/ZF/cliente/application/models

 

Obrigada

Luka

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao o problema pode estar ai

 

verifique qual é o caminho real da pasta library, e mude esse $path

 

Será que o problema não pode ser o rewrite?

Porque acabei de testar colocando na linha que chama o Loader o caminho real:

include('d:\http\dascanoas.com\public_html\ZF\library\Zend\Loader.php');

 

E funcionou, mas dentro dá erro 404, que seria o rewrite certo?

 

Mas será que não tenho 2 problemas? no $path e o rewrite?

 

Obrigada!

Luka

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao é que vc deu include só no Loader e o correto é colocar a pasta library toda no include_path para que todos arquivos do zend possam ser carregados.

 

e o mod rewrite vc habilita ele no apache configure o httpd.conf ache a linha

#LoadModule rewrite_module modules/mod_rewrite.so

 

descomente ela e reinicie o apache

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao é que você deu include só no Loader e o correto é colocar a pasta library toda no include_path para que todos arquivos do zend possam ser carregados.

 

e o mod rewrite você habilita ele no apache configure o httpd.conf ache a linha

#LoadModule rewrite_module modules/mod_rewrite.so

 

descomente ela e reinicie o apache

 

Pois é, mas o servidor lá é Windows.

Então me disseram que preciso:

 

Editar o web.config. Com a estrutura:

 

<configuration>

<system.webServer>

<rewrite>

<rules>

<rule>....</rule>

</rules>

</rewrite>

</system.webServer>

</configuration>

 

Vocês já tiveram que editar esse web.config? Quais foram as rules que vcs colocaram?

 

Obrigada!

Luka

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra ter certeza se o problema é este, acesse /endereçoRaizDoSite/index.php. Se abrir, o problema é neste web.config. Se não abrir, o problema é da aplicação. Captou a ideia? Isto só vai funcionar para a página inicial (controller Index, action Index e módulo default, caso exista).

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra ter certeza se o problema é este, acesse /endereçoRaizDoSite/index.php. Se abrir, o problema é neste web.config. Se não abrir, o problema é da aplicação. Captou a ideia? Isto só vai funcionar para a página inicial (controller Index, action Index e módulo default, caso exista).

 

Carlos Eduardo

 

Pois é, então quando testo com index.php dá o erro.

Mas não sei como habilitar isso no web.config, ou seja, não sei fazer um web.config para habilitar o rewrite da aplicação ou dessa página enfim.

 

Luka, mas isso que eu te falei pra você fazer é em Windows mesmo

 

O que você tinha me dito é windows, mas o servidor do meu cliente só deixa eu alterar esse web.config

 

O meu problema agora é que não faço idéia do que colocar nele, para habilitar o rewrite.

 

Vocês tem algum exemplo que possa me ajudar?

 

Obrigada!

Luka

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se com o index.php dá erro, o problema é na aplicação, porque acessando com o index.php não é feito o Rewrite.

 

Habilite a exibição de todos os erros e exceções do Zend Framework e do PHP e vamos ver o que aparece. Você está rodando no IIS ou no Apache? Este web.config é para ser utilizado no IIS. No Apache, mesmo que seja no Windows, utilize o .htaccess.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se com o index.php dá erro, o problema é na aplicação, porque acessando com o index.php não é feito o Rewrite.

 

Habilite a exibição de todos os erros e exceções do Zend Framework e do PHP e vamos ver o que aparece. Você está rodando no IIS ou no Apache? Este web.config é para ser utilizado no IIS. No Apache, mesmo que seja no Windows, utilize o .htaccess.

 

Carlos Eduardo

 

Olha, deve estar rodando no IIS porque o .htaccess está lá e não está funcionando.

Fui ver no phpinfo e o report_zend_debug está on e o display_errors está on tb. É isso?

 

Os erros:

PHP Warning: include(/Zend/Loader.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 53

 

PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening '/Zend/Loader.php' for inclusion (include_path='C:\PHP\pear;.\;c:\php\includes\:D:\http\cliente.com\public_html/ZF/library:d:\http\cliente.com\public_html/ZF/cliente/application/models') in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 53

 

PHP Fatal error: Class 'Zend_Loader' not found in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 66

 

Obrigada!

Luka.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não retirou a barra que o Fabyo falou para retirar. Olha o erro:

 

PHP Warning: include(/Zend/Loader.php)

 

Troque isto

include('/Zend/Loader.php');

por isto:

include('Zend/Loader.php');

 

Primeiro resolva este erro, que nada tem a ver com o mod_rewrite. Depois vamos para os outros erros que acontecerem.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu tinha retirado e depois de alguns testes acabei recolocando sem querer.

Retirei denovo.

 

PHP Warning: include(Zend/Loader.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 53

PHP Warning: include(Zend/Loader.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 53

PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'Zend/Loader.php' for inclusion (include_path='C:\PHP\pear;.\;c:\php\includes\:D:\http\cliente.com\public_html/ZF/library:d:\http\cliente.com\public_html/ZF/cliente/application/models') in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 53

PHP Fatal error: Class 'Zend_Loader' not found in D:\http\cliente.com\public_html\ZF\cliente\index.php on line 66

 

E ai os erros são esses ai de cima..

Obrigada pela ajuda!

Luka

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então. Este problema nem é do Zend Framework ainda. O PHP não está conseguindo localizar o arquivo Zend/Loader.php dentro do path. Caso não consiga ajustar isto, poste a estrutura das pastas, a localização do index.php e a posição da biblioteca do Zend Framework.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então. Este problema nem é do Zend Framework ainda. O PHP não está conseguindo localizar o arquivo Zend/Loader.php dentro do path. Caso não consiga ajustar isto, poste a estrutura das pastas, a localização do index.php e a posição da biblioteca do Zend Framework.

 

Carlos Eduardo

 

Olá, a estrutura das pastas inicial das pastas é:

 

ZF/
 - cliente/
   - application/
   - public/
   - .htaccess
   - index.php
 - library/
   - Personal/
   - Zend/

 

 

Vlw! Luka.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está aqui.

 

$path   =       $pathSeparator.$documentRoot.$bar.'ZF'.$bar.'library';
$path   .=      $pathSeparator.$documentRoot.$bar.'ZF'.$bar.$applicationName.$bar.'application'.$bar.'models';

Veja que, pela estrutura que você passou, o ZF está um nível antes (../) do index.php e fora da pasta public_html. Ajuste o path para ficar desta forma e provavelmente a aplicação funcionará (ou pelo menos este erro será corrigido).

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.