2017-06-08 3 views
0

J'ai un site Web, appelons-le www.main.com, qui se trouve sur le serveur à/home4/username/public_html/main. Ce site fonctionne PHP Phalcon sans problèmes du tout.Phalcon PHP pas de routage pour sous-domaine

Maintenant que j'ai créé un sous-domaine, appelons-le test.main.com, et utilisé cPanel pour définir l'itinéraire du sous-domaine vers/home4/nomutilisateur/testsite/test. C'est là que se trouve le problème.

deux/public_html et/testsite ont leurs propres fichiers .htaccess contenant les éléments suivants:

site d'essai:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ test/public/ [L] 
    RewriteRule ((?s).*) test/public/$1 [L] 
</IfModule> 

site principal:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ main/public/ [L] 
    RewriteRule ((?s).*) main/public/$1 [L] 
</IfModule> 

et tester le site d'essai au niveau local via XAMPP cela fonctionne bien (actuellement juste une page de test très simple Phalcon). Mais quand je télécharge exactement le même site pour les erreurs de Phalcon serveur avec: PhalconException: IndexController handler class cannot be loaded

Le fichier dépêche index.php pour le site sous-domaine de test (non-travail) contient les éléments suivants:

<?php 

try { 
    //Register an autoloader 
    $loader = new \Phalcon\Loader(); 
    $loader->registerDirs(array(
     '../app/controllers/', 
     '../app/models/' 
    ))->register(); 

    //Create a DI 
    $di = new Phalcon\DI\FactoryDefault(); 

    //Setup the view component 
    $di->set('view', function(){ 
     $view = new \Phalcon\Mvc\View(); 
     $view->setViewsDir('../app/views/'); 
     return $view; 
    }); 

    //Setup a base URI 
    $di->set('url', function(){ 
     $url = new \Phalcon\Mvc\Url(); 
     $url->setBaseUri('/test/'); 
     return $url; 
    }); 

    //Handle the request 
    $application = new \Phalcon\Mvc\Application($di); 

    echo $application->handle()->getContent(); 

} catch(\Phalcon\Exception $e) { 
    echo "PhalconException: ", $e->getMessage(); 
    echo "<br /><br /><strong>Trace Stack</strong>: ", $e->getTraceAsString(); 
} 

Maintenant, ce est déconcertant, comme je l'ai dit, il n'y a pas de raison pour que le projet Phalcon soit faux, car cela fonctionne bien localement. Donc, la seule chose à laquelle je peux penser est que le routage du sous-domaine est en train de tout gâcher, mais je n'ai aucune idée de comment, ou comment le réparer?

+0

Faites '/ home4/nom_utilisateur/testsite/test/public/php_info.php' avec le code' 'pour vérifier si apache l'obtient du tout. – Tpojka

+0

@Tpojka Je l'ai fait. Et quand je vais ensuite à l'URL pour ce site: 'test.main.com/php_info.php' la page d'information de php montre bien. – Jakob

+0

Pourrait être un problème 'RewriteBase'. Je vois que vous ne l'avez pas inclus dans les fichiers '.htaccess' mais seulement un (à partir de ce que nous savons - principal) est défini par défaut dans Apache. Essayez quelque chose avec cela - base de réécriture de réglage? – Tpojka

Répondre

0

Donc, il s'est avéré être quelque chose de vraiment simplement stupide. Pour une raison quelconque, l'utilisation locale de phalcon via XAMPP sous Windows m'a permis d'utiliser indexController.php comme nom de contrôleur. Cependant, une fois téléchargé sur le serveur Apache, le nom doit être mis en majuscule dans le cas d'un chameau complet pour que IndexController.php fonctionne.