Файлы PHP загружаются браузером вместо обработки локальным dev-сервером (MAMP)

Все отлично работало, пока я не добавил AddHandler application/x-httpd-php5s .php в файл .htaccess в своем корневом документе локального сервера (который я часто меняю в зависимости от сайта, с которым я работаю). Поскольку я это делал, когда я посещал http://localhost:8888, мой браузер просто загружает index.php, и он вообще не обрабатывается, а только необработанный код. Теперь я удалил эту строку из файла .htaccess, но у меня все еще есть эта проблема.

Я обнаружил, что если я добавлю альтернативную запись в файл моих хостов для 127.0.0.1, новая запись будет вестись как "localhost". Но если я добавлю строку выше в мой .htaccess, она выбивает и этот новый хост. Я попытался переустановить MAMP и очистить свои кэши и все временные файлы, которые я мог найти. Я просмотрел файл Apache httpd.conf без проблем.

Итак, чтобы быть ясным: http://localhost:8888 испытывает вышеуказанную проблему. Если я добавлю новую запись в файл моих хостов для 127.0.0.1, скажите 'goomba', и указанная выше строка не находится в корневом .htaccess(и никогда не была для этого хоста/псевдонима/независимо), тогда я могу получить доступ к http://goomba:8888 просто отлично. Но если я добавлю эту строку в .htaccess, тогда мне нужно добавить еще одну запись в мой файл hosts, чтобы обойти ее, даже если я удалю эту строку из файла .htaccess.

Я в порядке с использованием другого 127.0.0.1-псевдонима (хост-то, что называется?), но это подталкивает меня к тому, что это все еще сломано.

Просто, чтобы быть ясным, я нахожусь в Mac OS Leopard (но я не использую встроенную установку Apache, но MAMP).

Ответ 1

Вы применяете mimetype там, где должен быть обработчик (см. Документацию по обработчикам)

Попробуйте это вместо:

AddType application/x-httpd-php5 .php

РЕДАКТИРОВАТЬ: Как вы указали, загружаются модули кэширования, вы можете прочитать о кэшировании и htcacheclean (чтобы очистить кэш диска). Вы также можете временно использовать директиву CacheDisable. Еще одна вещь, которую вы также можете попробовать - переименовать запрошенный вами файл (например, index.php → index.bak), запросить файл снова в браузере (должен теперь 404), затем вернуться и повторить попытку.

Ответ 2

У меня была аналогичная проблема пару раз, и переименование файла не сработало для меня. С OS X Lion я нашел правильную конфигурацию:

<IfModule php5_module>
    AddType application/x-httpd-php .php
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.php index.html
    </IfModule>
</IfModule>

Магия, которая заставила его работать для меня, - это часть SetHandler application/x-httpd-php.

Конечно, отредактируйте <IfModule php5_module> в вашей версии php.

Ответ 3

Просто обратите внимание, что у вас нет файла htaccess из вашей среды, случайно загруженного с другими файлами. Кроме того, убедитесь, что вы соответствуете своей версии PHP при редактировании htaccess. Неправильная версия вызывает ту же проблему - неправильные настройки.

Вот пример для запуска PHP7:

application/x-httpd-ea-php71.php.php7.phtml

Я надеюсь, что эта информация может помочь - это случилось со мной через 8 лет после создания билета :)

Ответ 4

Возможно, вы хотите application/x-httpd-php5 вместо application/x-httpd-php5s? (Обратите внимание на отсутствие s в конце.)

Ответ 5

Для той же проблемы я удалил приложение "5" AddType application/x-httpd-php.php.htm.html

его работая отлично! попробуйте

Ответ 6

Сначала проверьте, запущен ли сервер Apache. Пуск- > Выполнить- > cmd, а затем выполните команду:

netstat -abn

Найдите результат для строки следующим образом:

TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 600 [apache.exe]

Если вы не можете найти что-либо, прослушивающее порт 8888 (нет линии 0.0.0.0:8888), ваш апач не запускается. Чтобы узнать, почему он не работает, вы должны найти каталог журнала apache и изучить файл error.log(возможно, вы обновили свой php повторно). Если вы находите линию прослушивания 0.0.0.0:80, но там прослушивается какое-то другое программное обеспечение (у вас работает IIS?), Вы должны удалить/перенастроить эту мягкость на свободный порт 80. Если у вас есть апаш, прослушивающий порт 80, но все же не могу открыть ваш сайт, и вы не можете понять, что вызывает проблему, рассматривая файлы журнала Apache, тогда это моя проблема с базой данных. Убедитесь, что ваш mysql запущен и прослушивается с использованием одной и той же команды, но вы должны искать

TCP 0.0.0.0:3306 0.0.0.0:01 LISTENING [mysqld-nt.exe]

Если вы не можете найти такую ​​строку, ваш сервер mysql не будет работать - проверьте файлы журнала mysql на наличие ошибок. Если оба сервера запущены и вы не можете получить какой-либо вывод в своем браузере, тогда проверьте свой брандмауэр и антивирус - они могут заблокировать ваши запросы. Надеюсь, это поможет;)

Ответ 7

У меня действительно была очень похожая проблема. Все мои файлы php загружались, когда я пытался проверить, работают ли php и apache. Оказывается, они не работали вместе.

Мне пришлось удалить php, я бы рекомендовал тот же курс действий, а затем переустановил php, просто используя загрузку zip файла на php.net, вместо того, чтобы устанавливать его с помощью MAMP. Я думаю, моя проблема в том, что я использовал установщик php. Я не рекомендую это использовать.

Этот сайт мне очень помог, у меня возникла проблема с запуском apache, и пока это не ваша проблема, этот сайт решил как apache не запускать, так и загружать проблемы с файлами php, и даже если вы находитесь на mac это также может помочь вам http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

Надеюсь, что все работает! Удачи!

Ответ 8

в моем случае удаление или комментирование "AddHandler php56-cgi.php" в моем корневом каталоге затрагивает файлы htacces, которые он разрешил

Лучшие

Ответ 9

Если у кого-то снова возникнет проблема такого рода, сначала сделайте что-то самое важное. Я имею ввиду использовать приватную навигацию (без кеша). Я потратил впустую свое время из-за этого.

GLHF