2

Я на Ubuntu 12.04 box, недавно установил одно обновление apache2, и с тех пор все виртуальные хосты не указывают на правильные каталоги, теперь он указывает на локальный хост по умолчанию. Также я получаю сообщение об ошибке при перезапуске apache2:

shafox@shafox:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message [ OK ]. 

Я знаю, что я не установил имя сервера не localhost, но почему перед сообщением об ошибке стоит штамп AH00558? Это мои сайты, доступные в моей системе:

/etc/apache2/sites-available$ ls
000-default.conf       default-ssl.conf  localbox-local
000-default.conf.dpkg-new  devbox-dev        sites-si

Ранее это было так:

/etc/apache2/sites-available$ ls
000-default  default-ssl  localbox-local  devbox-dev   sites-si

Например, один из файлов виртуального хоста выглядит так:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName localbox.local
        DocumentRoot /home/shafox/Localbox
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /home/shafox/Localbox/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Я не хочу снова создавать все эти виртуальные хосты. Я следовал инструкциям, описанным в этом руководстве, чтобы создать все эти виртуальные хосты.

Вот мой файл /etc /hosts:

127.0.0.1       localhost
127.0.1.1       shafox
127.0.1.1       devbox.dev
127.0.1.1       localbox.local
127.0.1.1       sites.si

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Журналы ошибок из apache2 error.log Ссылка на журнал ошибок

3 ответа3

1

Технически это не "ошибка" ... но это предупреждение. Предыдущие сценарии init.d просто помещали это предупреждение в журналы и ничего не сообщали при перезапуске. Сообщение является точным в том смысле, что Apache не может идентифицировать fqdn сервера на основе доступной информации. Вы можете просто добавить запись интерфейса петли в файл hosts следующим образом:

127.0.1.1       servername server.fully.qualified.name.tld

или укажите директиву ServerName, как показано в предупреждении в apache.conf:

ServerName www.example.com

Кроме того, если вы решили использовать Ubuntu, вам действительно следует использовать команды upstart для управления такими службами, как apache, вместо сценариев init.d. Как это:

sudo restart apache2
0

У меня тоже была эта проблема, но я решил ее, используя тот же ответ, что и Диоген. Чтобы быть конкретным, есть заменяемый синтаксис.

из https://httpd.apache.org/docs/trunk/upgrading.html

В этом примере все запросы отклонены.

2.2 конфигурация: заказ отказать, разрешить запретить от всех

Конфигурация 2.4: требовать все отказано

В этом примере все запросы разрешены.

2.2 конфигурация: разрешить заказ, запретить разрешить от всех

Конфигурация 2.4: Требуется все предоставлено

В следующем примере всем хостам в домене example.org разрешен доступ; всем остальным хостам запрещен доступ.

2.2 Конфигурация: Заказать Запретить, Разрешить Запретить из всех Разрешить с example.org

Конфигурация 2.4: Требуется хост example.org

0

У меня возникла та же проблема после обновления до Apache 2.4 для многопользовательской системы разработки Drupal. Mod_rewrite не работал вообще. Ключом была директива в файле виртуального хоста:

<Directory /whatever-path/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

Обратите внимание, что AllowOverride All и Require all предоставлено, что отличается от Apache 2.2

Надеюсь это поможет.

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