четверг, 28 ноября 2013 г.

Недоступен веб сайт после обновления Ubuntu до версии 13.10


После обновления Ubuntu до версии 13.10 (посмотреть версию Ubuntu можно командой - lsb_release –a или cat /etc/lsb-release) мой локальный сайт atlant.test перестал открываться. Apache обновился до версии 2.4. Все виртуальные хосты Apache на обновленном Ubuntu стали не доступны. При входе на atlant.test показывает только страницу основного сервера.
Стал разбираться, что же произошло.
Cервер Apache запускается и работает.
$ ps aux |grep apache

Смотрю запущенную конфигурацию  Apache:
$ apache2ctl –S

- в конфигурации присутствует только default server

Смотрю наличие конфигурации моего сервера:
$ ls /etc/apache2/sites-available/


сравниваю его с резервной копией (пригодилась) - файл есть, содержимое не изменилось

Запускаю добавление сайта в конфигурацию Apache:
$ sudo a2ensite atlant.test
ERROR: Site atlant.test does not exist!

Ничего не понимаю. Что значит, нет сайта? Пошел искать на просторах интернета и нашел. Ситуация следующая:
В Apache 2.4 настройки из /etc/apache2/conf.d переместились в /etc/apache2/conf-available
Т.е. в Apache 2.4 нет каталога /etc/apache2/conf.d и если у вас, например был там httpd.conf, то надо все переместить этот файл в /etc/apache2/conf-available и потом применить конфигурацию командой
sudo a2enconf httpd

Теперь все файлы сайтов в /etc/apache2/sites-available/ должны иметь расширение .conf . С расширением, конечно, правильней смотрится, но почему нельзя было оставить и предыдущий синтаксис без .conf?
Переименовываю файл конфигурации моего сервера:
$ mv /etc/apache2/sites-available/atlant.test /etc/apache2/sites-available/atlant.test.conf

Добавляю сайт в конфигурацию Apache:
$ sudo a2ensite atlant.test

Получаю положительный ответ:
Enabling site atlant.test.
To activate the new configuration, you need to run:
  service apache2 reload

Перезапускаю apache:
$ sudo service apache2 reload
 * Reloading web server apache2
 

Если у вас много сайтов, которым нужно будет добавить расширение .conf, то вот вам команда:
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \

После переименования захожу на сайт и опять сайт не доступен – не хватает прав
Forbidden
You don't have permission to access /accounts/login/ on this server.
________________________________________
Apache/2.4.6


Разбираюсь с правами на доступ к сайту. Изменилась конфигурация настройки доступа. Теперь вместо
<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

надо писать следующее:
<Directory /path/to/your/site/>
    Require all granted
</Directory>


У меня после внесенных изменений и перезапуска Apache все заработало. Если у вас все еще есть вопросы, то можете посмотреть документацию http://httpd.apache.org/docs/2.4/upgrading.html
 



Комментариев нет:

Отправить комментарий