J'utilise Anchor CMS et je viens de passer à la version 0.8. Lorsque j'essaie d'exécuter le programme d'installation, le message d'erreur «Aucun fichier d'entrée spécifié» s'affiche. Je crois que c’est plus que probablement un problème de .htaccess mais je ne suis pas sûr de ce que les paramètres corrects devraient être.
Mon site peut être trouvé ici .
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 en tant que fournisseur d'hébergement si cela peut vous aider.
Le Aucun fichier d'entrée spécifié est un message qui vous est présenté à cause de la mise en œuvre de PHP sur votre serveur, qui indique dans ce cas une implémentation de CGI (peut être vérifiée avec phpinfo()
).
Maintenant, pour bien expliquer cela, vous devez avoir quelques notions de base sur le fonctionnement de votre système avec les URL. Sur la base de votre fichier .htaccess, il semble que votre système de gestion de contenu s’attende à ce que l’URL soit transmise sous forme de variable PATH_INFO
. PATH_INFO
n'est pas disponible dans les implémentations CGI et FastCGI. Par conséquent, lorsque vous essayez de transmettre l'URI, PHP échoue avec ce message.
Nous devons trouver une alternative.
Une option consiste à essayer de résoudre ce problème. En consultant la documentation des directives core php.ini , vous pouvez voir que vous pouvez modifier le fonctionnement de votre implémentation. Cependant, GoDaddy ne vous autorisera probablement pas à modifier les paramètres PHP sur un environnement partagé.
Nous devons trouver une alternative à la modification de PHP paramètres
En regardant 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
, que nous venons d’apprendre ne fonctionnera pas - l’autre étant le REQUEST_URI
.
Cela devrait fondamentalement suffire - mais l'analyse de l'URI transmise vous causera plus de problèmes, car l'URI, que vous pouvez transmettre à la variable REQUEST_URI
, force parse_url()
à ne renvoyer que le chemin de l'URL - retour à zéro.
Maintenant, il ne reste en réalité qu’une possibilité - et cela change le cœur du système de gestion de contenu. La partie détection d'URI est insuffisante.
Ajoutez QUERY_STRING
au tableau de la ligne 40 en tant que le premier élément dans system/uri.php
et modifiez votre .htaccess pour qu'il ressemble à ceci:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Ceci transmettra l'URI que vous avez demandé à index.php
en tant que QUERY_STRING
et permettra à la détection d'URI de le trouver.
En revanche, cela rend impossible la mise à jour du CMS sans modifier les fichiers principaux tant que cela n'a pas été corrigé. Ça craint ...
Besoin d'une meilleure option?
Trouver un meilleur CMS.
Citer 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 "Aucun fichier d'entrée spécifié" dans le panneau de configuration, vous devez créer un fichier
php5.ini
dans votre weboot avec la règle suivante:
cgi.fix_pathinfo = 1
meilleure réponse facile juste un changement de ligne et vous êtes tous ensemble.
recommandé pour l'hébergement GoDaddy.
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 suit:
<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>
Dans mon cas, il y avait une erreur dans la variable open_basedir php.ini.
GoDaddy prend actuellement en charge (février 2013) la modification de FastCGI pour certains comptes utilisant PHP 5.2.x ou une version antérieure. Voir l'article de GoDaddy " Désactivation de FastCGI dans votre compte d'hébergement ".
(Dans mon cas, cela est apparemment nécessaire pour que la version actuelle de LimeSurvey (2.0) devienne active.)
L'ajout de php5.ini ne fonctionne pas du tout… .. Mais voyez la section 'Disable FastCGI' dans cet article sur GoDaddy: http://support.godaddy.com/help/article/5121/changer-vos-hébergements-comptes-extensions-fichiers
Ajoutez ces lignes aux fichiers .htaccess (répertoire d'installation de Webroot et du site Web):
Options +ExecCGI
addhandler x-httpd-php5-cgi .php
Cela me sauve un jour! Salut! Merci Seigneur du dragon !
Exécuter ulimit -n 2048
Et redémarrez php/php-fpm
Cela a fonctionné pour moi..ajouter au fichier .htaccess. Cela désactiverait FastCGI sur le compte d'hébergement partagé de godaddy.
Options + ExecCGI
addhandler x-httpd-php5-cgi .php
La solution pour moi était de supprimer les espaces dans l'un de mes fichiers d'assistance. L'erreur mentionnait deux pages impliquées, un fichier de session CI et l'un de mes assistants personnalisés.