44 votes

Aucun fichier d'entrée n'a été spécifié

Je suis en train de courir Anchor CMS et je viens de passer à la version 0.8. Lorsque j'essaie d'exécuter le programme d'installation, j'obtiens l'erreur "No input file specified". Je pense qu'il s'agit plus que probablement d'un problème de .htaccess, mais je ne suis pas sûr des paramètres à utiliser.

Mon site peut être trouvé aquí .

Mon .htaccess est réglé sur :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase {base}

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ {index} [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>

J'utilise également un GoDaddy comme fournisseur d'hébergement si cela peut aider.

121voto

Repox Points 6921

El Aucun fichier d'entrée n'a été spécifié est un message qui vous est présenté en raison de l'implémentation de PHP sur votre serveur, qui dans ce cas indique une implémentation CGI (peut être vérifié avec phpinfo() ).

Pour bien expliquer cela, vous devez avoir des notions de base sur la façon dont votre système fonctionne avec les URL. D'après votre fichier .htaccess, il semble que votre CMS s'attende à ce que l'URL soit transmise sous forme de PATH_INFO variable. Les implémentations de CGI et FastCGI n'ont pas de variables de type PATH_INFO disponible, donc lorsque vous essayez de passer l'URI, PHP échoue avec ce message.

Nous devons trouver une alternative.

Une option est d'essayer de réparer cela. En regardant dans la documentation de directives de base du php.ini vous pouvez voir que vous pouvez modifier le fonctionnement pour votre mise en œuvre. Cependant, GoDaddy ne vous permettra probablement pas de modifier les paramètres PHP dans un environnement partagé.

Nous devons trouver une alternative à la modification des paramètres PHP.
Regarder dans system/uri.php à la ligne 40, vous verrez que le CMS tente deux types de détection d'URI - le premier étant PATH_INFO dont on vient d'apprendre qu'elle ne fonctionne pas - l'autre étant la REQUEST_URI .

Cela devrait suffire - mais l'analyse de l'URI passé vous causera plus de problèmes, car l'URI, que vous pourriez passer à REQUEST_URI variable, forces parse_url() pour ne renvoyer que le chemin d'accès à l'URL - ce qui vous ramène à zéro.

Maintenant, il ne reste qu'une seule possibilité, celle de changer le cœur du CMS. La partie détection des URI est insuffisante.

Ajouter QUERY_STRING au tableau de la ligne 40 comme le premier élément en system/uri.php et changez votre .htaccess pour qu'il ressemble à ceci :

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?/$1 [L]

Ceci passera l'URI que vous demandez à index.php como QUERY_STRING et avoir la détection de l'URI pour le trouver.

D'autre part, cela rend impossible la mise à jour du CMS sans modifier les fichiers de base jusqu'à ce que cela soit corrigé. Ça craint...

Vous avez besoin d'une meilleure option ?
Trouvez un meilleur CMS.

26voto

chetan Points 261

Citant http://support.statamic.com/kb/hosting-servers/running-on-godaddy :

Si vous souhaitez utiliser GoDaddy en tant qu'hôte et que vous obtenez des erreurs "No input file specified" dans le panneau de configuration, vous devrez créer un fichier php5.ini dans votre weboot avec la règle suivante :

cgi.fix_pathinfo = 1

La meilleure réponse facile : un seul changement de ligne et tout est prêt.

recommandé pour l'hébergement godaddy.

14voto

jbaylina Points 1241

Dans mon cas, il y avait une erreur dans la variable open_basedir du php.ini.

6voto

webicy Points 26

J'ai eu le même problème. Tout ce que j'ai fait pour résoudre le problème a été de modifier mon fichier htacces comme ceci :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /crm/

Options +FollowSymLinks 

RewriteCond %{HTTP_HOST} ^mywebsite.com [NC] 

RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301] 

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]

RewriteRule ^index.php/(.*)$ [L]
</IfModule>

3voto

DragonLord Points 1334

GoDaddy supporte actuellement (février 13) la modification de FastCGI pour certains comptes utilisant PHP 5.2.x ou antérieur. Voir l'article de GoDaddy " Désactiver FastCGI dans votre compte d'hébergement ".
(Dans mon cas, cela est apparemment nécessaire pour aider à amener la version actuelle de LimeSurvey (2.0) vers un état de fonctionnement).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X