2011-01-15 3 views
1

J'ai créé un site il y a longtemps en utilisant zend et smarty. Le site est hébergé sur une machine virtuelle avec centOS. Maintenant, je veux créer un site similaire, donc j'ai créé un autre hôte virtuel, un utilisateur ftp etc etc sur la même machine.zend et smarty site clone probleme

J'ai modifié le fichier ini qui contenait les chemins: paths.base =/var/www/html/new_path
paths.data =/var/www/html/new_path/données
paths.templates =/var/www/html/new_path/templates
paths.cache =/var/www/html/new_path/data/tmp/cache
paths.public =/var/www/html/new_path/public_html

Le problème est que lorsque j'essaie d'accéder à zend/loader.php (j'essaie de charger un objet de base de données), on utilise le chargeur de l'ancien chemin (/ var/www/html/oldp ath/include/zend/loader.php) donc naturellement je ne peux pas accéder à tous les nouveaux objets que je crée pour le nouveau site ( Attention: include_once (DatabaseObject/New.php) [function.include-once]: échec de l'ouverture du flux: Aucun fichier ou répertoire dans/var/www/html/old_path /include/Zend/Loader.php en ligne 146

Attention: include_once() [function.include]: Failed opening « DatabaseObject/New.php 'pour l'inclusion (include_path ='.:/var/www/html/ancien chemin/include:/usr/share/pear/') dans/var/www/html/old_path /include/Zend/Loader.php sur la ligne 146

Erreur fatale: Class 'DatabaseObject_Chat' introuvable dans/var/www/html/new_path /include/Controllers/ChatController.php sur la ligne 8 ).

Aucun autre chemin n'est défini. La mise en cache est désactivée. Il se produit sur différents ordinateurs, navigateurs, etc n'est donc pas un problème local (valeur résiduelle de certains-type).

Pour tous les détails, il suffit de demander ... Je suis coincé.

Répondre

0

Zend_Loader se penche sur les répertoires include définis dans votre public/index.php. Le include path doit être correctement défini pour contenir à la fois les anciens répertoires et les nouveaux. Notez l'ordre respectif spécifié par votre chemin d'inclusion.

Le code en public/index.php devrait ressembler à ce qui suit, en supposant l'utilisation de ZF1:

<?php 
... 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../../project_name/path_for_inclusion'), 
    get_include_path(), 
))); 
... 

Le include_path peut être réglé aussi dans votre .htaccess:

php_value include_path "/var/www/path:/var/www/second_path:/var/www/third" 

ou vous pouvez obtenir l'effet en général sans code spécifique à ZF:

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);