Я запускаю Anchor CMS, и я просто обновился до версии 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 на общей среде.
Нам нужно найти альтернативу модификации настроек PHP
Заглянув в system/uri.php
в строке 40, вы увидите, что CMS пытается обнаружить два типа обнаружения URI – первый из которых PATH_INFO
, который мы только что узнали, не будет работать, а другой – REQUEST_URI
.
Этого должно быть достаточно, но этого достаточно, но анализ синтаксического анализа URI вызовет у вас больше проблем, поскольку URI, который вы могли бы передать переменной REQUEST_URI
, заставляет parse_url()
возвращать путь URL-адреса, что в основном возвращает вас к нуль.
Теперь на самом деле остается только одна возможность – и это меняет ядро 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, который вы запросите index.php
как QUERY_STRING
и обнаружите обнаружение URI.
Это, с другой стороны, делает невозможным обновление CMS без изменения файлов ядра до тех пор, пока это не будет исправлено. Это отстой …
Нужен лучший вариант?
Найдите лучшую CMS.
Ссылаясь на http://support.statamic.com/kb/hosting-servers/running-on-godaddy :
Если вы хотите использовать GoDaddy в качестве хоста, и вы обнаружите, что в панели управления возникают ошибки «Нет входного файла», вам необходимо создать файл
php5.ini
в своем веб-браузере со следующим правилом:
cgi.fix_pathinfo = 1
лучший простой ответ – только одно изменение линии, и все вы настроены.
рекомендуется для ходьбе.
В настоящее время GoDaddy (Feb '13) поддерживает модификацию FastCGI для некоторых учетных записей с использованием PHP 5.2.x или ранее. См. Статью GoDaddy « Отключение FastCGI в вашей учетной записи хостинга ».
(В моем случае это, по-видимому, необходимо для того, чтобы получить текущую версию LimeSurvey (2.0) в текущем состоянии.)
В моем случае произошла ошибка в переменной php.ini open_basedir.
У меня такая же проблема. Все, что я сделал, чтобы исправить проблему, это изменить файл 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 не работает вообще. Но см. Раздел « Отключить FastCGI » в этой статье на GoDaddy: http://support.godaddy.com/help/article/5121/changing-your-hosting-accounts-file-extensions
Добавьте эти строки в файлы .htaccess (каталог установки веб-сайта и веб-сайта):
Options +ExecCGI addhandler x-httpd-php5-cgi .php
Это спасает меня целый день! Ура! Спасибо DragonLord !
Это сработало для меня..ад поверх файла .htaccess. Это отключит FastCGI для учетной записи хостинга godaddy.
Опции + ExecCGI
addhandler x-httpd-php5-cgi .php
Запустить ulimit -n 2048
И перезапустите php / php-fpm
Решение для меня заключалось в том, чтобы удалить пробел в одном из моих вспомогательных файлов. Ошибка указала на две страницы, файл сеанса CI и один из моих пользовательских помощников.