Что заставляет страницы PHP постоянно загружаться вместо того, чтобы нормально работать

Что заставляет страницы PHP постоянно загружаться вместо того, чтобы нормально работать

Я запускаю Ubuntu Server на виртуальной машине, чтобы протестировать различные решения веб-форума. Я настроил ~/public_html/, чтобы он был доступен с веб-сервера apache2, и он отлично работает.

Однако когда я захожу в .php-файл в браузере (используя ip-адрес моей виртуальной машины/~имя пользователя/phpfile.php), он не отображается так, как должен. Вместо этого он предлагает сохранить в файл/спрашивает, какой программой его открыть. Интересно, что это диалоговое окно распознает, что это php-файл.


У меня в системе установлена ​​следующая версия php:

PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

И следующий сервер:

Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:19:09


Если кто-то знает, что может быть причиной этого/возможные решения, я буду очень рад :)

EDIT: Оказывается, такое поведение было заметно только для файлов в каталоге ~/public_html/. Все файлы php в /var/www/ работают нормально.

Призы достанутся тому, кто сможет объяснить, почему? :D (И под призами я подразумеваю только хорошую работу, боюсь, никаких настоящих призов не будет.)

решение1

Возможно, у вас в данный момент установлена ​​только cli-версия PHP. Попробуйте

sudo apt-get install php5

и перезапустите апач

sudo apache2ctl restart.

Вы также можете проверить, загружен ли модуль PHP в Apache, выполнив команду

sudo apache2ctl -M

Если модуль загружен, то он должен показать что-то вроде

Loaded Modules:
 ...
 php5_module (shared)
 ...
Syntax OK

решение2

добавьте это в конфигурацию Apache

AddType application/x-httpd-php .php 

решение3

Вам необходимо настроить Apache так, чтобы он запускал интерпретатор PHP при запросе файла .php, а не просто возвращал содержимое файла.

Это нужно сделать в httpd.conf для нужного каталога. Это будет выглядеть примерно так:

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php 

# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

AddType text/html       php

решение4

Проверьте .htaccessстроку AddType. У меня был пользовательский AddType, который вызывал плохой content-type. Firefox помог мне отладить проблему, но вы также можете использовать wget.

Fire Fox Wget

Связанный контент