2011-02-23 4 views
4

J'ai donc un site écrit en utilisant le cadre CI. Cela a bien fonctionné sur l'hôte d'origine (Apache). Cela fonctionne bien localement (IIS 7 Express). Nous venons d'acheter un nouveau VPS (Windows Server 2008 R2) et php était pré-installé (PHP version 5.2.10) maintenant quand je vais sur le site, j'ai une page blanche.CodeIgniter écran vide après la migration

Après le débogage en imprimant simplement « OK » jamais si souvent je résolus CodeIgniter.php est failling plus sur:

$CI = new $class(); 

maintenant pour essayer de résoudre le problème, je suis entré dans config.php et définir:

$config['log_threshold'] = 4; 

Cependant, je ne reçois même pas de fichiers journaux. J'ai remarqué que les permissions n'étaient pas activées pour l'écriture, je suis donc passé à "c: \ inetput \ wwwroot" et j'ai défini les permissions max pour l'utilisateur "IIS_IUSRS"

Malheureusement, aucun fichier journal n'est créé. "index.php" est toujours vide donc je suis totalement confus. C'est la première fois que je travaille avec une application CI. S'il vous plaît aider!

Edit: MySQL installé et Assurer MySQL activé PHP

Merci Chris

+2

Assurez-vous que php-mysql est installé (avec phpinfo()). J'ai rencontré un problème similaire et tout cela était dû au fait que php-mysql n'était pas installé. Je ne sais pas comment l'installer sur un système Windows, cependant. – Trevor

+0

Je pense que vous pouvez être là. J'ai vu la bibliothèque php mysql (.dll), mais en regardant de plus près phpinfo(), je ne peux pas voir mysql n'importe où donc c'est probablement pas activé. Je vais jeter un coup d'oeil et mettre à jour. Je n'ai même pas encore commencé à installer le serveur mysql! Je voulais voir l'erreur "ne peut pas se connecter à la base de données" d'abord: -P – Chris

+0

malheureusement même après l'installation du serveur mysql et l'activation de mysql pour php et redémarrer iis (vérifié et testé) CI produit toujours une page blanche et aucun journal n'est créé :( – Chris

Répondre

0

Il y a probablement une erreur générée, mais non affiché en raison du réglage de rapports d'erreur par défaut. Je change généralement la mise en rapport d'erreur sur mon développement machine (dans le index.php CI) comme ceci:

if ($_SERVER['HTTP_HOST'] == "localhost") { 
    error_reporting(7); 
    } else { 
    error_reporting(E_ERROR); 
    } 
+0

J'ai essayé ceci et aucune erreur n'est produite, le code arrête simplement à $ CI = new $ class(); - Je suppose que l'erreur est supprimée mais encore je ne peux pas obtenir CI pour produire des journaux d'erreur – Chris

0

Change $ config [ 'de uri_protocol'] à "REQUEST_URI".

0

AUTO RÉPONSE: La cause était des espaces blancs (HAD reformater tout le code en ouvrant chaque fichier dans l'éditeur FTP et re-sauver)

+0

expliquez-en un peu plus pour que les autres puissent le faire aussi: où étaient les espaces blancs, comment les avez-vous enlevés? – Nir

6

Trevor est exact. J'ai eu le même problème et il a été résolu juste après l'installation de php-mysql. Je cours ceci sur CentOS 6.2 et j'ai fait installer yum php-mysql et cela a fonctionné.

2

Avait exactement le même problème. Dans mon cas, php-mysql était installé mais n'apparaissait pas dans phpinfo(). J'utilise php-FPM (avec nginx) et la raison est que nécessaire php-fpm être redémarré

sudo /etc/init.d/php5-fpm restart 
0

J'ai eu ce même problème. C'était à cause des paramètres de la base de données. Vérifiez les paramètres de votre base de données. Mon problème était, j'utilise le moteur d'expression, et le site deviendrait vide à la même ligne que vous avez mentionné. J'utilise Vagrant, donc j'ai dû définir le port correct dans les paramètres de configuration de la base de données pour Expression Engine, puis cela a fonctionné.

0

J'ai eu le même problème.

Pour activer l'affichage des erreurs, changer
define('ENVIRONMENT', 'production');
à
define('ENVIRONMENT', 'development');
dans index.php.

Il montre: Fatal error: Cannot redeclare class Xml in /www/.../application/libraries/Items/Xml.php on line 3

Ajout si avant la déclaration de classe:
if (!class_exists('Xml')) { class Xml extends XmlElement {...}
résolu ce problème

En outre, le travail avec
if (true) { class Xml extends XmlElement {...}
magique! :)

P.S. Je migre de php 5.4.36 à 5.6.6-2 Je pense que le problème se développe à partir de la version php

0

J'ai eu le même problème que l'OP (exécution arrêtée à "$ CI = new $ class();" en CodeIgniter.php provoquant une page blanche), mais je l'ai trouvé ma réponse ici: http://forum.codeigniter.com/thread-60436.html

ligne 257 à système/core/common.php était

return $_config[0] =& $config; 

je l'ai changé

$_config[0] =& $config; 
return $_config[0]; 

et le problème est parti. Cela s'est produit après la migration de PHP 5.4 à 5.6, en exécutant CodeIgniter 2.1.