1

Я обновил свой сервер с Debian squeeze до Debian wheezy. На этом сервере есть несколько apache2 vhost, которые запускают php через mod_fcgid (я также использую mod_suexec, но это не должно быть проблемой). После обновления все мои php-сайты больше не работают, apache2 предоставляет исходный код php, если я запрашиваю сайт, на котором работает php. Все мои файлы журналов

  • apache2/error.log
  • apache2/access.log
  • apache2/suexec.log
  • и ошибки vhosts / журналы доступа

не придумал ни ошибок, ни даже предупреждений. Все необходимые модули установлены и загружены. Я искал возможное решение в течение нескольких часов без каких-либо усилий. Вот пример файла vhost ("конфиденциальные" данные заменены, пользователь / группа и домен):

<VirtualHost *:80>
    ServerName example.com
    SuexecUserGroup john-doe john-doe
    AddHandler fcgid-script .php
    DocumentRoot "/var/www/example.com/data"
    DirectoryIndex index.php index.html

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/example.com/data">
        Options Indexes MultiViews FollowSymLinks +ExecCGI
        FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
        Order allow,deny
        allow from all
        AllowOverride All
    </Directory>
    ErrorLog /var/www/example.com/logs/error.log
    LogLevel warn
    CustomLog /var/www/example.com/logs/access.log combined
    ServerSignature Off
</VirtualHost>

Любые идеи кто-нибудь? Я тоже задавал этот вопрос на serverfault.com , надеюсь, все в порядке.

1 ответ1

1

Теперь я наткнулся на решение самостоятельно. Проблема вызвана обновлением mod_fcgid, которое изменило директивы, используемые в конфигах vhost. Изменения можно увидеть здесь (это то, на что я наткнулся).

Директива

FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

должен быть изменен на

FcgidWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

В документации сказано

Msgstr "Все директивы были переименованы, чтобы использовать общий префикс" Fcgid ". Подчеркивания в именах директив были исключены в пользу CamelCase. Старые имена директив все еще будут работать, но устарели. Для исправления вашей конфигурации вы можете использовать скрипт sed build/fixconf.sed. "

но кажется, что старые имена директив больше не работают. Изменения сделали свое дело для меня, может быть, это поможет кому-то еще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .