Почему php не работает?

Я видел, что этот вопрос ответил много раз, но большинство из них заканчивается либо без ответа, либо, сообщая об этом автору:

<?php phpinfo() ?>

в тестовом файле. Очевидно, если бы это вызвало то, что ожидалось, меня бы здесь не было. Вместо этого я получаю ошибку 404.

Я использую сервер ubuntu 12.04 с Amazon. Установлен Apache, установлен php5, а apache был перезапущен. Я выполнил следующую последовательность:

sudo apt-get install apache2

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5

sudo /etc/init.d/apache2 restart

Каждая из первых трех команд теперь дает мне "apache2 - это уже самая новая версия. 0 обновлено, 0 вновь установлено, 0 удалено и 3 не обновлены. "Очевидно, замените apache2 на php5 и libapache2-mod-php5 для двух других.

Это верный способ сказать мне, что он установлен, правильно? Ну, когда я использую команду "top", php не является одной из служб, которые работают, что говорит мне, что она не работает, правильно?

Перемещение по IP-адресу дает мне Amazon "It Works!" страницу, но переход на любую другую страницу на сервере вызывает ошибку 404.

Любая помощь очень ценится.

Ответ 1

Проверьте конфигурационные файлы apache. Для Debian/Ubuntu theyre в /etc/apache2/sites-available/ для RedHat/CentOS/etc они находятся в /etc/httpd/conf.d/. Если вы только что установили его, файл там, вероятно, называется default.

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

Линия, которую вы ищете в этих файлах, DocumentRoot /path/to/directory.

Для пустой установки ваши php файлы, скорее всего, должны находиться в /var/www/.

Вам также понадобится найти файл php.ini, возможно расположенный в /etc/php5/apache2/php.ini или /etc/php.ini и найти запись для display_errors и переключить его на On.

Ответ 2

Одна большая проблема заключается в том, что PHP по умолчанию отключен в домашних каталогах пользователей, поэтому, если вы тестируете из ~/public_html, он не работает. Проверьте /etc/apache2/mods-enabled/php5.conf

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Кроме того, установка в Ubuntu очень проста, так как все, что вы использовали для добавления в httpd.conf, выполняется автоматически.

Ответ 3

Введите в браузере localhost: 80//test5.php [где 80 - ваш порт, а test.php - имя вашего файла] вместо c://xampp/htdocs/test.php.

Ответ 4

При установке Apache и PHP в Ubuntu 14.04 мне нужно было специально включить php configs, выпуская a2enmod php5-cgi

Ответ 5

Чтобы ответить на оригинальный вопрос "Почему php не работает?" Файл, который запрашивает ваш браузер, должен иметь расширение .php. Если файл имеет расширение .html, php не будет выполнен.

Ответ 6

Вам нужно добавить точку с запятой до конца всех php-объектов, таких как эхо, функции и т.д.

измените <?php phpinfo() ?> на <?php phpinfo(); ?>

Если это не работает, используйте функцию php ini_set для отображения ошибок: ini_set('display_errors', 1);