Файлы PHP загружаются браузером, а не обрабатываются локальным сервером разработки (MAMP) - PullRequest
12 голосов
/ 23 февраля 2010

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

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

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

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

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

Ответы [ 9 ]

13 голосов
/ 08 мая 2012

У меня была похожая проблема пару раз, и переименование файла не помогло мне. С 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.

5 голосов
/ 23 февраля 2010

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

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

AddType application/x-httpd-php5 .php

EDIT: Как вы уже указали, модули кэширования загружены, вы можете прочитать о caching и htcacheclean (чтобы очистить кэш диска). Вы также можете временно использовать директиву CacheDisable . Еще одна вещь, которую вы также можете попробовать - переименовать запрошенный вами файл (например, index.php -> index.bak), запросить файл снова в браузере (должен теперь 404), затем вернуться и повторить попытку. *

4 голосов
/ 04 октября 2018

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

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

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

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

2 голосов
/ 23 февраля 2010

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

1 голос
/ 04 октября 2011

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

работает нормально! попробовать

0 голосов
/ 07 июня 2019

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

GLHF

0 голосов
/ 12 апреля 2017

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

Лучший

0 голосов
/ 06 июня 2013

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

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

0 голосов
/ 23 февраля 2010

Сначала проверьте, работает ли ваш сервер 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 не запускается. Чтобы выяснить, почему он не запускается, вы должны найти каталог журнала apache и изучить файл error.log (может, вы недавно обновили свой php?). Если вы обнаружите прослушивающую линию 0.0.0.0:80, но там прослушивается какое-то другое программное обеспечение (у вас работает IIS?), То вам следует удалить / перенастроить эту программную среду, чтобы освободить порт 80. Если у вас есть прослушивание apache на порту 80, но вы все еще не можете открыть ваш сайт, и вы не можете выяснить, что является причиной проблемы, изучив файлы журнала Apache, то это может быть проблема с базой данных. Проверьте, работает ли ваш mysql и слушает, используя ту же команду, но вы должны искать

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

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

...