PHP не работает в Apache2 после обновления системы

14

Недавно обновил мою систему от Karmic до Lucid. Я полагаю, это связано с обновлением Apache и PHP.

Теперь мой сервер не может обрабатывать файлы PHP, любая навигация к ним запускает загрузку, а не разбор.

Модуль PHP по-прежнему загружается в модулях с поддержкой Apache, и у меня есть AddType application/x-httpd-php .php в моем httpd.conf.

В сообщениях доступа Apache или журналах ошибок нет значимых сообщений, поэтому я не уверен.

Любая помощь будет оценена по достоинству. Спасибо.

    
задан Jivings 30.08.2011 в 13:53
источник

3 ответа

17

/var/log/apache2/error.log должна показывать строку, как показано ниже, если PHP был успешно загружен:

  

[Вт 30 авг 12:53:36 2011] [уведомление] Apache / 2.2.14 (Ubuntu) PHP / 5.3.2-1ubuntu4.9 с настройкой Suhosin-Patch - возобновление обычных операций

Обратите внимание на дату, если это что-то с 2009 года, вы что-то неправильно сконфигурировали.

AddType бесполезно, вам нужно использовать:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

См. также инструкции по установке на php.net для Apache 2.x .

Вам не нужно добавлять это вручную, пакет libapache2-mod-php5 устанавливает /etc/apache2/mods-available/php5.conf , содержащий:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # 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_value engine Off
        </Directory>
    </IfModule>
</IfModule>

Так как это conffile, возможно, он не установлен с обновлением. Чтобы исправить эту очистку и затем снова установить:

sudo apt-get purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5

Чтобы включить PHP, вам нужно запустить:

sudo a2enmod php5

Перезагрузите веб-сервер после:

sudo /etc/init.d/apache2 restart

Другие вещи, которые нужно сделать:

  • проверьте конфликтующие настройки в /etc/apache2 .
  • Вы создали Apache из источника?
  • Запустите sudo apache2ctl configtest , чтобы проверить конфигурацию для синтаксических ошибок.
  • Откройте Ссылка , чтобы проверить загруженную конфигурацию и модули. Для этого должен быть загружен модуль status . Если вы используете удаленный сервер, вам нужно добавить себя в список Allow from в /etc/apache2/mods-enabled/status.conf и затем перезапустить сервер.
ответ дан Lekensteyn 30.08.2011 в 14:14
источник
3

Ну, после того, как ничего не сработало, и Apache очень запутался, я, наконец, просто очистил все пакеты Apache и переустановил их.

Кажется, сейчас хорошо работает, кто знает, что с ним не так ....

ИЗМЕНИТЬ

Я выяснил, что было не так, когда я снова настраивал свои настройки конфигурации Apache. [Эта запись в блоге] [1] объясняет это.

Оказывается, что хотя модуль userdir активно не используется, остальные файлы сайтов находятся в папке ~ / public_html, а php отключается для всего, что там есть.

Я предполагаю, что это, должно быть, последнее дополнение к модулю php, которого нет в настройках Karmic.

    
ответ дан Jivings 31.08.2011 в 10:55
1

Файл php5.conf в /etc/apache2/mods-enabled имеет несколько строк внизу, которые не позволяют php выполнять внутри пользовательского каталога, поэтому в зависимости от вашей конфигурации это может быть и вашей проблемой. Вы можете просто прокомментировать эти строки и перезагрузить apache2

    
ответ дан Jeff 17.11.2014 в 01:36