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.
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.
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.
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>
No meu caso, houve um erro na variável open_basedir do php.ini.
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.)
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 !
Executar ulimit -n 2048
E reinicie o php/php-fpm
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
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.