- Не работает index.php в IIS
- PHP на Windows и IIS7
- Установка и настройка PHP для использования с модулем FastCGI.
- Установка и настройка модуля FastCGI на IIS7.
- Рекомендации по настройке PHP на IIS7
- Частота перезапуска процессов PHP
- Использование нескольких версий PHP
- Ошибка PHP: & quot; не указан входной файл. & Quot; в IIS 10.0, PHP 5.6 на локальном сервере разработки
- Обновить
- Обновить
- Обновить
- Решение
- Другие решения
- РЕДАКТИРОВАТЬ
- Отображать ошибки PHP в IIS
- Решение
- Другие решения
Не работает index.php в IIS
Всем доброго дня. Суть задачи установить rouncube используя сервер IIS. Столкнулся с следующей проблемой.
Имею web-сервер IIS (версии 8.5), установил mysql, разархивировал php в необходимую директорию для php.
В корневую папку с сайтом разархивировал rouncube. При переходе по http://127.0.0.1 белый экран(.
Если в index.php вставить
То страница показывает всю инфу о php, значит php работает.
Если ссылаться на то, что в rouncube битый/не рабочий index.php, то нет. На других серверах (apache) он стабильно работает.
Кто нибудь помогите плиз, долблюсь с этим уже больше месяца.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как работает url такого типа index.php/reg/index
Мне интересно как это работает. И в каких случаях это пригодится. Встречал такой url в cms. Я.
Денвера не работает ссылка localhost/Tests/phpnotice/index.php
Здравствуйте, после установки Денвера и переходе по ссылке проверочной страницы.
Не работает код, на открытие в ifraim выбранного из выподающего списка index.php
Всем доброго времени суток. Чуть ниже представлен код. Можете сказать в чем проблема, ибо он у.
Попробуйте выверить настройку своего IIS по статье с хабра
Добавлено через 1 минуту
и посмотрите php.ini. В частности инструкцию display_errors = On сделайте. После отладки выключите
Настроил php как указано на хабре.
Если закинуть файл index.php
index.php:
То выдает лог ошибок:
PHP Warning: phpinfo(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone. in C:\inetpub\wwwroot\mail\index.php on line 3
PHP Warning: phpinfo(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone. in C:\inetpub\wwwroot\mail\index.php on line 5
Хотя до смены настроек, у меня открывался страница с инфой по php.
Источник
PHP на Windows и IIS7
Установка и настройка PHP для использования с модулем FastCGI.
Установка и настройка модуля FastCGI на IIS7.
Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной
системы — Windows Vista? Не угадал, тогда Windows Server 2008! Либо вы хакер и
поставили IIS7 еще-куда-то, но это нестандартное решение и мы его не
поддерживаем ;).
Шаг 1. Установка FastCGI
Хочу обрадовать сразу — в IIS7, идущем с Windows Server 2008 и Windows Vista
Service Pack 1 модуль FastCGI уже включен. Его необходимо лишь подключить в
настройках. Для этого на Vista нужно открыть Control Panel -> Programs и выбрать
«Turn Windows Features On or Off»:
После этого необходимо установить фичу в IIS: Internet Information Services
-> World Wide Web Services -> Application Development Features -> CGI. При этом
будет установлена поддержка и CGI и FastCGI.
На Windows Server 2008 процесс аналогичен: Server Manager -> Roles -> Add
Role Services -> Web Server -> Application Development -> CGI.
Собственно все, что требуется для включения модуля FastCGI.
Шаг 2. Конфигурация IIS7
1. Открыть IIS Manager, выбрать узел (сервер) для которого нужно настроить
поддержку PHP. И далее выбрать Handler Mappings.
2. Выбираем на странице Handler Mappings ссылку Add Module Mapping и
заполняем окно следующими значениями:
Request path: *.php (обработка всех файлов с расширением .php)
Module: FastCgiModule (модуль FastCGI)
Executable: C:\Web\PHP\php-cgi.exe (путь к PHP)
Name: PHP (имя для удобства)
После добавления этой настройки появится окно с вопросом о регистрации
FastCGI приложения для этого обработчика. Подтверждаем.
Описанные выше действия привели к созданию в директории PhpSites следующего
web.config файла:
xml version =«1.0» encoding =«UTF-8» ? >
configuration >
system.webServer >
handlers >
add name =«PHP» path =»*.php» verb =»*»
modules =«FastCgiModule» scriptProcessor =»C:\Web\PHP\php-cgi.exe»
resourceType =«Unspecified»/>
handlers >
system.webServer >
configuration >
* This source code was highlighted with Source Code Highlighter .
Теперь можно переходить к проверке работоспособности PHP.
Шаг 3. Проверяем корректность настройки
В директории узла для которого мы сконфигурировали PHP создаем файл
index.php:
И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
наша карма не испорчена, запрос будет корректно обработан:
Рекомендации по настройке PHP на
IIS7
Частота перезапуска процессов PHP
Поскольку при использовании PHP на
IIS7 с использованием FastCGI
модуля, сам модуль FastCGI берет на себя
управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
процессов (recycling) в PHP
не будет мешать FastCGI. Это легко сделать, если
настроить FastCGI так, чтобы он всегда перезапускал
процессы раньше, чем это сделает PHP.
В настройках FastCGI существует настройка
instanceMaxRequests, определяющая после обработки какого количества запросов,
процесс будет перезапущен. В PHP аналогичный параметр
задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
возможность FastCGI рулить процессом, достаточно
установить instanceMaxRequests fastCgi >
application fullPath =»C:\inetpub\php\php-cgi.exe»
maxInstances =«4» instanceMaxRequests =«10000» >
environmentVariables >
environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >
environmentVariables >
application >
fastCgi >
* This source code was highlighted with Source Code Highlighter .
Использование нескольких версий PHP
fastCgi >
application fullPath =«C:\inetpub\php\php-cgi.exe» >
.
application >
application fullPath =«C:\inetpub\php4\php4.exe» >
.
application >
application fullPath =«C:\inetpub\php41\php41.exe» >
.
application >
fastCgi >
* This source code was highlighted with Source Code Highlighter .
handlers >
add name =«PHP4» path =»*.php» verb =»*» modules =«FastCgiModule»
scriptProcessor =»C:\inetpub\php\php41.exe»
resourceType =«Unspecified»/>
handlers >
* This source code was highlighted with Source Code Highlighter .
Источник
Ошибка PHP: & quot; не указан входной файл. & Quot; в IIS 10.0, PHP 5.6 на локальном сервере разработки
У меня проблема с моим сервером разработки. Запуск Win 10 Pro, IIS 10.0.16299, PHP 5.6 (установлен на C:\Program Files (x86)\PHP\v5.6 ). Это недавняя проблема; Раньше PHP работал нормально, но потом просто перестал работать.
Все мои PHP-приложения теперь возвращают ошибку «Не указан входной файл». Эти приложения находятся в «Веб-сайте по умолчанию», но расположены в другом месте (с моими рабочими материалами). Они настроены в IIS, и совместное использование должно быть настроено правильно (так как все раньше работало).
Вот то, что я попробовал, по всей информации, которую я нашел в Интернете. Ничего не работает, однако:
- Удаление и переустановка IIS из панели управления | Программы и возможности | Включите и выключите функции Windows. После переустановки добавили обработчик FastCGI в IIS, указывая на C:\Program Files (x86)\PHP\v5.6\php-cgi.exe , Также дважды проверил, что PATH включает в себя каталог PHP.
Заменил php.ini (в каталоге 5.6) на копию для разработки и обновил следующие строки:
Сканировал мой диск на наличие ошибок, провел полную проверку на вирусы, проверил мой файл hosts, чтобы убедиться, что ничего не случилось.
Я также прочитал информацию в этом вопросе , но я боюсь, что многое из этого вышло у меня над головой. Я программист, который иногда работает в PHP, я боюсь, не системный администратор.
Еще одно замечание: хотя все мои php-приложения возвращают эту ошибку, C:\inetpub\wwwroot\phpinfo.php файла нет (этот файл имеет одну строку кода: phpinfo(); ). Этот файл работает.
Обновить
Когда я помещаю php-файл «hello world» в C:\inetpub\wwwroot каталог, все работает. Но тот же файл вызывает ошибку на моем сайте: C:\Users\Katie\Documents\Work\Website Working Copy\ , Этот каталог сопоставлен с веб-приложением в «Веб-сайте по умолчанию» в IIS. IUSR и IIS_IUSRS имеют разрешения на эту папку. Есть ли в phpinfo () что-нибудь, что могло бы пролить свет на то, почему это происходит?
Обновить
Я полностью заменил установку PHP на новейшую не поточнобезопасную версию PHP 5.6.
Это файл php.ini сейчас в C:\Program Files (x86)\PHP\v5.6 (минус все прокомментированные вещи):
У меня есть тестовый файл PHP следующим образом:
Итак, повторюсь, проблема в том, что, когда этот файл находится в C: \ inetpub \ wwwroot \, и доступ через Http: //mymachinename/temphello.php , это работает правильно. Но когда он находится в одном из виртуальных каталогов (на самом деле, в приложениях), я настраивал его через IIS под «Веб-сайтом по умолчанию» и доступ через Http: //mymachinename/applicationname/temphello.php , он возвращает «Входной файл не указан».
Мне нужен PHP для работы, независимо от того, где находится виртуальный каталог. Я знаю, что это возможно, потому что он работал годами, вплоть до прошлой недели, когда он загадочным образом перестал работать, как только я очистил кэш приложения.
Обновить
Комментирование doc_root в файле php.ini оказалось шагом в правильном направлении. Теперь он работает в виртуальных каталогах, которые находятся в моей папке «Документы». Но я все еще получаю сообщение об ошибке на своих веб-сайтах для разработчиков, которые находятся в моей папке OneDrive. Полагаю, я мог бы делать копии в своих Документах и использовать их для разработки, но я бы очень хотел этого избежать, если что-то мне не хватает.
Решение
Эта ошибка означает, что ваш PHP не настроен правильно на вашем сервере IIS.
Решение проблемы:
Откройте файл php.ini и просмотрите настройки doc_root.
Примером значения может быть следующая настройка:
Комментарии выше этого параметра говорят:
Если вы используете PHP в режиме ISAPI, а не CGI, попробуйте закомментировать настройки, чтобы они выглядели так:
Затем сохраните php.ini и перезапустите IIS, открыв командную строку (Пуск => Программы => Стандартные => Командная строка) и введите команду:
Это должно решить проблему!
Другие решения
Оказалось, что все, что мне нужно было сделать, это … полная противоположность тому, что говорят все другие онлайн-инструкции. Мне пришлось закомментировать строку doc_root в файле php.ini. Как только я это сделал, проблема была исправлена.
РЕДАКТИРОВАТЬ
Говорил слишком рано. Оказывается, это заставляет его работать на моих тестовых сайтах, но не на моих реальных сайтах разработки, которые находятся на OneDrive. Обновлю мой вопрос с новой информацией. Тем не менее, это шаг в правильном направлении, и, по крайней мере, он открывает возможный обходной путь.
После долгих ударов головой о стену я наконец-то обнаружил, что все это из-за ошибки в PHP и OneDrive. https://bugs.php.net/bug.php?id=75384
Обновил PHP до последней версии, а также отключил параметр OneDrive «Экономьте место и загружайте файлы по мере их использования». Перезагрузился, и это наконец-то сработало.
Источник
Отображать ошибки PHP в IIS
Я пытаюсь заставить отображать ошибки PHP на экране с помощью IIS vrs 8.5 и PHP vrs 5.2.17, но продолжаю получать страницу http об ошибках IIS 500 или пустой экран. Я уже нашел множество сообщений SO, которые предполагали исправления, но ничто в них еще не решило мою проблему. Вот что я попробовал.
- Изменен errorMode на подробный. По-прежнему получаю страницу ошибки 500 вместо ошибки php.
- Удалены все пользовательские ошибки в файле конфигурации IIS по умолчанию в блоке «httpErrors». Все еще появляется страница 500 ошибок IIS.
- Добавлен СуществующийРеспонс = «PassThrough» в мой блок httpErrors в конфигурации IIS по умолчанию. В результате я получаю пустую страницу вместо ошибки php или ошибки IIS 500.
- Я убедился, что ни один из этих параметров не перезаписывается в файлах system.config сайта по умолчанию.
В настоящее время я получаю пустую страницу вместо ошибки IIS 500 на экране. Я уже проверил, что display_errors включен, и error_reporting является правильным. Я также знаю, что страница php работает нормально. Я намеренно вызываю эту ошибку php, удаляя точку с запятой на странице. Так что я уже знаю, что все работает нормально. Ведение журнала ошибок PHP также работает, но я хочу, чтобы ошибки отображались на странице, поэтому мне не нужно просматривать журнал ошибок каждые 5 минут.
Что еще может быть причиной этого?
Решение
ЕСЛИ Вы устанавливаете пользовательскую ошибку на Detailed в настройках функции error pages для веб-сайта и сервера
А ТАКЖЕ если в вашем php.ini файл, который вы установили display_errors = on & error_reporting = E_ALL
ЗАТЕМ есть только одна возможность получить [страница ошибки IIS 500 по умолчанию], что «Ваш PHP не работает из-за неправильной конфигурации».
Требуемые конфигурации:
После настройки Handler Mappings в файл php-cgi.exe (который находится в каталоге установки php) как FastCGI, откройте php.ini файл и изменить следующие строки ИЛИ добавить, если не найден в файле. (если php.ini не существует в вашей директории установки PHP, то переименуйте из существующей php.ini-development ИЛИ php.ini-production)
1) extension_dir = «ext\»
; ext папка будет в установке PHP, если не создать и не забыть окончание \
2) log_errors = On
3) error_log = «C:\inetpub\temp\php-errors.log»
4) cgi.force_redirect = 0
; может быть, вам нужно добавить эту строку, добавить ее куда угодно, например, before ‘; Загрузка файлов; ‘
5) cgi.fix_pathinfo = 1
6) fastcgi.impersonate = 1
7) fastcgi.logging = 0
Даже после правильной настройки PHP может не работать из-за повреждения системы. Вы можете проверить, дважды щелкнув по php-cgi.exe а также php-win.exe он должен работать без ошибок (кроме предупреждений ИЛИ ext/fileName. пропущены сообщения — это нормально).
Замечания: после этих многих других настроек требуется запустить все вещи из php (например, сессия), но с помощью этих ПРОСТЫХ PHP БУДЕТ РАБОТАТЬ, или PHP правильно покажет ошибку за то, что не так (НЕ 500 страниц).
Другие решения
Убедитесь, что вы редактируете правильный файл php.ini. Чтобы проверить, какой файл нужно отредактировать, перейдите в IIS> Отображения обработчиков и найдите PHP. Затем проверьте, в каком каталоге они находятся.
В моем случае у меня было два каталога, и я редактировал неправильный файл php.ini, из-за чего я не смог отобразить ошибки.
У меня была похожая проблема: ошибка 500 вместо ошибки PHP. Я исправил проблему, перейдя в PHP Manager в IIS
Под настройками PHP нажмите настроить отчет об ошибках. Это позволит вам выбирать между разработкой и производством машины. Если вы выберете «Производство», вы не получите подробных ошибок PHP в браузере, вы будете записаны только в лог-файл. Разработка позволит отображать и записывать обе ошибки в лог-файл.
Источник