未指定输入文件
我正在运行AnchorCMS,而我刚刚升级到0.8版。尝试运行安装程序时,出现“未指定输入文件”错误。我相信这很可能是.htaccess问题,但是我不确定应该使用什么正确的设置。
我的网站可以在这里找到。
我的.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用作托管服务提供商。
回答:
未 指定输入文件
是由于服务器上PHP的实现而向您显示的消息,在这种情况下,这表示CGI的实现(可以通过验证phpinfo()
)。
现在,要正确解释这一点,您需要对系统如何与URL一起使用有一些基本的了解。根据您的.htaccess文件,您的CMS似乎希望该URL作为PATH_INFO
变量传递。CGI和FastCGI实现不可PATH_INFO
用,因此当尝试传递URI时,PHP失败并显示该消息。
我们需要找到一个替代方案。
一种选择是尝试解决此问题。查看核心php.ini指令的文档,您会发现可以更改实现的工作方式。尽管GoDaddy可能不允许您在共享环境中更改PHP设置。
展望system/uri.php
第40行,你会看到,CMS尝试两种类型的URI的检测-第一个是PATH_INFO
,我们刚刚得知将无法正常工作-
另一个是REQUEST_URI
。
这基本上就足够了-
但是传递的URI的解析会给您带来更多麻烦,因为您可以传递给REQUEST_URI
变量的URI会强制parse_url()
仅返回URL路径-
基本上使您返回零。
现在,实际上只剩下一种可能性-这正在改变CMS的核心。URI检测部分不足。
将QUERY_STRING
第40行的数组添加为其中 的第一个元素 ,system/uri.php
并将.htaccess更改为如下所示:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
这会将您请求的URI传递为index.php
as QUERY_STRING
,并进行URI检测以找到它。
另一方面,这使得在不解决核心文件问题的情况下,不更改核心文件就无法更新CMS。糟透了…
查找更好的CMS。
以上是 未指定输入文件 的全部内容, 来源链接: utcz.com/qa/435307.html