РЕДАКТИРОВАТЬ: Я решил просто стереть мои установки apache и php и начать с нуля. Сейчас все работает, не знаю, почему не было раньше. Я, наверное, установил 30 различных серверов типа LAMP и никогда не сталкивался с этим раньше, думаю, я просто спишу это на безумие.
Оригинальный вопрос выглядит следующим образом:
Приветствую,
Файлы PHP не выполняются должным образом на моем веб-сервере. У меня есть тестовый файл:
<html>
<head>
<title>Testing PHP</title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>
Вот мои установленные пакеты PHP и apache:
$ dpkg -l | grep php ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2 ii php-config 1.10.11-1 ii php-pear 5.2.6.dfsg.1-3ubuntu4.2 ii php5 5.2.6.dfsg.1-3ubuntu4.2 ii php5-cgi 5.2.6.dfsg.1-3ubuntu4.2 ii php5-cli 5.2.6.dfsg.1-3ubuntu4.2 ii php5-common 5.2.6.dfsg.1-3ubuntu4.2 ii php5-mysql 5.2.6.dfsg.1-3ubuntu4.2 $ dpkg -l | grep apache ii apache2-mpm-prefork 2.2.11-2ubuntu2.3 ii apache2-utils 2.2.11-2ubuntu2.3 ii apache2.2-common 2.2.11-2ubuntu2.3 ii libapache2-mod-auth-mysql 4.3.9-11 ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2
Вот мои строки конфигурации, связанные с php:
$ grep -n php /etc/apache2/apache2.conf /etc/apache2/mods-enabled/php5.* /etc/apache2/httpd.conf /etc/apache2/mods-enabled/php5.conf:1: <IfModule mod_php5.c> /etc/apache2/mods-enabled/php5.conf:2: AddType application/x-httpd-php .php .phtml .php3 /etc/apache2/mods-enabled/php5.conf:3: AddType application/x-httpd-php-source .phps /etc/apache2/mods-enabled/php5.load:1: LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
Как видите, модуль php5 загружен. Я могу подтвердить это, поскольку a2enmod указывает, что он уже загружен.
В настоящее время при попытке загрузить файл PHP в браузере он просто отображается как необработанный текст.
Любопытно, что, пытаясь исправить это, я обнаружил, что если я добавлю строку типа «AddType application / x-httpd-php .php .phtml .php3» в конец httpd.conf, то он внезапно начнет просить меня загрузить эти php вместо этого. Это странно, учитывая, что такая строка такая же, как в файле модуля php5.conf.
Очевидно, что и то и другое не является желаемым поведением.
Кроме того, да, apache2 и теперь даже сам сервер перезагружались много раз. Apache без проблем обслуживает обычные HTML-страницы.
Любые идеи?
что short_open_tag
опция установлена в вашем файле php.ini? Я часто упускал это из виду, поэтому я знаю, что вы можете почувствовать. Некоторые сопровождающие пакетов устанавливают для этой опции значение «0» false. Ссылаться на http://www.php.net/manual/en/ini.core.php
Когда я делаю ту же команду grep для своих файлов конфигурации, я получаю одну строчку, которую вы не сделали:
/etc/apache2/mods-enabled/dir.conf:3: DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
Убедитесь, что эта строка в /etc/php5/apache2/php.ini
устанавливается так:
; Включите движок языка сценариев PHP в Apache.
двигатель = Вкл.
Если вы его измените, перезапустите Apache:
sudo apache2ctl restart
Одна только эта команда могла помочь:
sudo apache2ctl restart
Я был в похожей ситуации, и это случилось со мной.