Почему IIS не выполняет код PHP моего корневого файла index.php моего сайта? - PullRequest
3 голосов
/ 09 октября 2008

IIS буквально отправляет код <?php ... ?> в браузер, а не выполняет его.

Но, только для корневого http://domain.com/index.php файла.

Все остальные файлы .php в этой папке и файлы index.php во вложенных папках выполняются должным образом.

Как мне заставить мой корневой код index.php выполняться?


Обновление: "index.php" является документом по умолчанию для моего веб-сайта ...

альтернативный текст http://img412.imageshack.us/img412/4130/defaultdocumentmt9.gif

Ответы [ 4 ]

4 голосов
/ 07 октября 2011

У меня возникла эта проблема, и в конце концов я нашел источник кодирования файла PHP. По-видимому, я настроил свой редактор для использования Unicode (2-байтовый Unicode, а не UTF-8) в качестве кодировки. Это приводит к тому, что PHP не видит теги <?, но браузер, похоже, может читать файл Unicode просто отлично, поэтому при просмотре исходного кода отображается фактический код PHP. (Несмотря на то, что файл имел метатег content-type = utf-8!) Сохранение файла PHP в кодировке ANSI или UTF-8 решило проблему.

Много отладки ушло на то, чтобы найти это простое решение, поэтому я решил добавить его сюда для всех, у кого есть эта проблема.

Интересным побочным эффектом этой проблемы было то, что Firefox и Chrome не загружали файл CSS. После дальнейшего изучения я обнаружил, что браузеры должны использовать ту же кодировку для CSS, что и для HTML, если это явно не указано в файле CSS. Просмотр CSS в Chrome или Firefox показал бы китайские символы! На самом деле это помогло мне прийти к решению.

4 голосов
/ 09 октября 2008

Кажется, вы правильно настроили свои обработчики. Если вы используете <? ... ?>, убедитесь, что у вас есть short_open_tag = On в вашем php.ini.

3 голосов
/ 10 октября 2008

ОБНОВЛЕНО: Я нашел несколько возможных обходных путей для PHP 5 и IIS 7. Если эти решения не работают, предоставьте более подробную информацию о настройке index.php, IIS или попробуйте использовать совместимость с IIS 6.

2 голосов
/ 10 октября 2008

Вы пытались отскочить (остановить / перезапустить) IIS? Может быть, даже перезагрузить машину? Я знаю, что были случаи, когда я вносил некоторые изменения в конфигурацию IIS, которые я бы поклялся, что для вступления в силу необходим только отскок, который не срабатывал до полного перезапуска компьютера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...