Я запускаю 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