web-dev-qa-db-pt.com

Nenhum arquivo de entrada especificado

Estou correndo Anchor CMS e acabei de atualizar para a versão 0.8. Quando tento executar o instalador, recebo um erro 'Nenhum arquivo de entrada especificado'. Acredito que seja mais do que provável que seja um problema do .htaccess, mas não sei quais devem ser as configurações corretas.

Meu site pode ser encontrado aqui .

Meu .htaccess está definido como:

<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>

Eu também estou usando um GoDaddy como o provedor de hospedagem, se isso ajuda. 

28
Cole Roberts

O Nenhum arquivo de entrada especificado é uma mensagem que é apresentada devido à implementação de PHP em seu servidor, que neste caso indica uma implementação CGI (pode ser verificada com phpinfo() ).

Agora, para explicar isso corretamente, você precisa ter algum conhecimento básico sobre como seu sistema funciona com URLs. Com base no seu arquivo .htaccess, parece que o seu CMS espera que o URL seja transmitido como uma variável PATH_INFO. As implementações CGI e FastCGI não têm PATH_INFO disponível, portanto, ao tentar passar o URI, PHP falha com essa mensagem. 

Precisamos encontrar uma alternativa.

Uma opção é tentar consertar isso. Examinando a documentação das diretivas core php.ini você pode ver que você pode mudar o funcionamento de sua implementação. Embora, o GoDaddy provavelmente não permita que você altere as configurações PHP em um ambiente compartilhado.

Precisamos encontrar uma alternativa para modificar as configurações PHP
Examinando system/uri.php na linha 40, você verá que o CMS tenta dois tipos de detecção de URI - o primeiro sendo PATH_INFO, que acabamos de aprender não funciona - o outro sendo REQUEST_URI.

Basicamente, isso deve ser suficiente - mas a análise do URI transmitida causará mais problemas, pois o URI, que você pode passar para a variável REQUEST_URI, força parse_url() para retornar apenas o caminho da URL - o que basicamente coloca você de volta a zero.

Agora, há apenas uma possibilidade - e isso está mudando o núcleo do CMS. A parte de detecção de URI é insuficiente.

Adicione QUERY_STRING ao array na linha 40 como o primeiro elemento em system/uri.php e mude seu .htaccess para ficar assim:

RewriteEngine On 

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

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

Isso passará o URI que você solicita para index.php como QUERY_STRING e terá a detecção de URI para encontrá-lo.

Isso, por outro lado, torna impossível atualizar o CMS sem alterar os arquivos principais até que isso seja corrigido. Isso é uma droga ...

Precisa de uma opção melhor?
Encontre um CMS melhor.

106
Repox

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

Se você quiser usar o GoDaddy como um host e perceber que está recebendo erros de "Nenhum arquivo de entrada especificado" no painel de controle, será necessário criar um arquivo php5.ini em seu weboot com a seguinte regra:

cgi.fix_pathinfo = 1

melhor resposta fácil apenas uma mudança de linha e está tudo pronto.

recomendado para hospedagem godaddy.

19
chetan

Eu tive o mesmo problema. Tudo o que fiz para corrigir o problema foi modificar meu arquivo htacces assim:

<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>
6
webicy

No meu caso, houve um erro na variável open_basedir do php.ini. 

6
jbaylina

O GoDaddy está atualmente (em fevereiro de 2013) suportando a modificação do FastCGI para algumas contas usando o PHP 5.2.x ou anterior. Veja o artigo do GoDaddy " Desabilitando o FastCGI na sua conta de hospedagem ".
(No meu caso, isto é aparentemente necessário para ajudar a obter a versão atual do LimeSurvey (2.0) para um estado de execução.)

3
DragonLord

Adicionar php5.ini não funciona de todo. Mas veja a seção 'Disable FastCGI' neste artigo no GoDaddy: http://support.godaddy.com/help/article/5121/changing-your-hosting-accounts-file-extensions

Adicione estas linhas aos arquivos .htaccess (diretório de instalação webroot & website):

Options +ExecCGI
addhandler x-httpd-php5-cgi .php

Isso me poupa um dia! Felicidades! Obrigado DragonLord !

2
jondinham

Executar ulimit -n 2048

E reinicie o php/php-fpm

2
Yarin Gold

Funcionou para mim..adicionar em cima do arquivo .htaccess. Desabilitaria o FastCGI na conta de hospedagem compartilhada do godaddy.

Opções + ExecCGI

addhandler x-httpd-php5-cgi .php

2
user2060571

A solução para mim foi remover o espaço em branco em um dos meus arquivos auxiliares. O erro listou duas páginas envolvidas, um arquivo de sessão do IC e um dos meus ajudantes personalizados. 

0
jason