Подтвердить что ты не робот

Не указан входной файл

Я запускаю 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 в качестве хостинг-провайдера, если это помогает.

4b9b3361

Ответ 1

Нет указанного входного файла - это сообщение, которое вы представляете из-за реализации 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.

Ответ 2

Цитирование http://support.statamic.com/kb/hosting-servers/running-on-godaddy:

Если вы хотите использовать GoDaddy в качестве хоста, и вы обнаружите, что на панели управления возникают ошибки "Нет входного файла", вам нужно создать файл php5.ini в своем веб-браузере со следующим правилом:

cgi.fix_pathinfo = 1

Самый простой ответ: просто измените одну строку, и вы все настроены.

рекомендуется для ходьбе godaddy.

Ответ 3

В моем случае произошла ошибка в переменной php.ini open_basedir.

Ответ 4

У меня была та же проблема. Все, что я сделал, чтобы исправить проблему, это изменить файл 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>

Ответ 5

В настоящее время GoDaddy (Feb '13) поддерживает модификацию FastCGI для некоторых учетных записей с использованием PHP 5.2.x или ранее. См. Статью GoDaddy "" Отключение FastCGI в вашей учетной записи хостинга".
(В моем случае это, по-видимому, необходимо, чтобы получить текущую версию LimeSurvey (2.0) в текущее состояние.)

Ответ 6

Добавление 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!

Ответ 7

Это сработало для меня..add поверх файла .htaccess. Это отключит FastCGI для учетной записи хостинга godaddy.

Опции + ExecCGI

addhandler x-httpd-php5-cgi.php

Ответ 8

Выполнить ulimit -n 2048

И перезапустите php/php-fpm

Ответ 9

Решение для меня состояло в том, чтобы удалить пробел в одном из моих вспомогательных файлов. Ошибка указала на две страницы, файл сеанса CI и один из моих пользовательских помощников.

Ответ 10

Обновить

Все предыдущие обзоры были проверены мной, но решения не было. Но я не сдался.

РЕШЕНИЕ

Раскомментируйте следующие строки в моей конфигурации NGINX

   [/etc/nginx/site-avaible/{sitename}.conf]

Тот же код должен следовать в папке включения сайта

  #fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;

И прокомментируйте это:

  fastcgi_param SCRIPT_FILENAME / www / {namesite} / public_html $ fastcgi_script_name;

Я несколько раз менял оригинал:

   #fastcgi_pass unix: /var/php-nginx/9882989289032.sock;

Возвращаясь к этому:

   #fastcgi_pass 127.0.0.1:9007;

И наконец я нашел то, что сработало...

   fastcgi_pass localhost: 8004;

Я также рекомендую эти строки...

   #fastcgi_index index.php;
   #include fastcgi_params;

И даже тайм-аут FastCGI (только для повышения производительности)

  fastcgi_read_timeout 3000;

В ходе этого процесса я проверил журнал NGINX на наличие всех модификаций. (Это очень важно, потому что показывает неправильный параметр.)

В моем случае это так, но это зависит от конфигурации:

  error_log/var/log/nginx/{site}_error_log;

Проверьте конфигурацию NGINX

 nginx -t

Внимание, это один из вариантов... Ну, на том же сервере, что не работает на этом сайте, работает на других... Так что имейте в виду, что настройки зависят от платформы.

В данном случае это было для Joomla CMS.

Ответ 11

В моем случае я исправил это, вставив правила в директиву LocationMatch

<LocationMatch "^/.">
    #your rewrite rules here
</LocationMatch>

/. соответствует любому месту

У меня есть правила перезаписи внутри одного из файлов .conf файла Apache NOT .htaccess.

Я не знаю, почему это работало со мной, это мои текущие настройки

  • Apache версия 2.4
  • PHP 7.2
  • ОС Centos 7
  • PHP-FPM