没有指定input文件

我正在运行Anchor CMS ,我刚刚升级到0.8版本。 当我尝试运行安装程序时,出现“没有指定input文件”错误。 我相信这很可能是一个.htaccess的问题,但我不知道什么是正确的设置。

我的网站可以在这里find。

我的.htaccess被设置为:

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

如果有帮助,我也使用GoDaddy作为托pipe服务提供商。

指定Noinput文件是由于服务器上PHP的实现而呈现的消息,在这种情况下表示CGI实现(可以使用phpinfo()进行validation)。

现在,为了正确地解释这个,你需要对你的系统如何使用URL有一些基本的了解。 根据您的.htaccess文件,您的CMS似乎期望URL作为PATH_INFOvariables传递。 CGI和FastCGI实现没有PATH_INFO可用,所以当试图传递URI时,PHP会因为这个消息而失败。

我们需要find一个替代scheme。

一个select是尝试解决这个问题。 看看核心php.ini指令的文档,你可以看到你可以改变你的实现工作。 虽然,GoDaddy可能不会允许您在共享环境中更改PHP设置。

我们需要find修改PHP设置的替代方法
查看第40行的system/uri.php ,你会看到CMS尝试两种types的URI检测 – 第一种是PATH_INFO ,我们刚刚学到的将不起作用 – 另一种是REQUEST_URI

这基本上应该足够了 – 但是传递的URI的parsing会给你带来更多的麻烦,因为你可以传递给REQUEST_URIvariables的URI会强制parse_url()返回URLpath – 这基本上可以让你回到零。

现在,实际上只剩下一个可能性 – 这正在改变CMS的核心。 URI检测部分是不够的。

QUERY_STRING添加到第40行的数组中作为system/uri.php 的第一个元素 ,并将.htaccess更改为如下所示:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 

这会将您请求的URI作为QUERY_STRINGindex.php ,并通过URI检测来find它。

另一方面,这使得在不更改核心文件之前更新CMS是不可能的,直到这个问题得到解决。 这太糟糕了…

需要更好的select?
find更好的CMS。

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

如果您想使用GoDaddy作为主机,并且您发现自己在控制面板中出现“没有指定input文件”错误,则需要使用以下规则在您的weboot中创build一个php5.ini文件:

cgi.fix_pathinfo = 1

最简单的答案只是一个线路的变化,你全部设置。

推荐为godaddy托pipe。

GoDaddy目前(2013年2月)支持使用PHP 5.2.x或更早版本修改某些帐户的FastCGI。 请参阅GoDaddy文章“ 禁用您的托pipe帐户中的FastCGI ”。
(就我而言,这显然是帮助将当前版本的LimeSurvey(2.0)转换为运行状态所必需的。)

在我的情况下,在php.ini open_basedirvariables中有一个错误。

我有同样的问题。 我所做的只是修改我的htacces文件,如下所示:

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

添加php5.ini根本不起作用。 但请参阅GoDaddy本文中的“ 禁用FastCGI ”部分: http : //support.godaddy.com/help/article/5121/changing-your-hosting-accounts-file-extensions

将这些行添加到.htaccess文件(webroot和网站安装目录)中:

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

这节省了我一天! 干杯! 谢谢DragonLord !

它为我工作..添加.htaccess文件。 这将禁用Godaddy共享托pipe帐户上的FastCGI。

选项+ ExecCGI

addhandler x-httpd-php5-cgi .php

运行ulimit -n 2048

并重新启动php / php-fpm

我的解决scheme是删除我的助手文件中的空白。 错误列出了两个页面,CI会话文件和我的一个自定义助手。