Почему 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);