Сталося те, що синтаксис файлів конфігурації в apache2.4 змінився.
Джерело: Це трапилося і зі мною після того, як я перейшов до 13.10
файли conf.d
Усі файли, в яких було, /etc/apache2/conf.d
слід перемістити в /etc/apache2/conf-available
.
Зараз вони працюють так само sites
і mods
працюють. Просто покладіть свої файли conf у conf-available
папку та ввімкніть потрібний a2enconf <config-file-name>
.
Приклад:
У мене був файл, conf.d/httpd.conf
який мав директиву ServerName.
Щоб зробити цю роботу, мені довелося перемістити її в conf-available
каталог і включити її вручну.
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
файли сайтів
Раніше файли в файлі /etc/apache2/sites-available
не мали розширення. Наприклад /etc/apache2/sites-available/default
. Тепер .conf
потрібне розширення.
Приклад:
Якщо у вас це було /etc/apache2/sites-available/some-site
, в 13.04 ви можете просто включити його за допомогою sudo a2ensite some-site
. Тепер він видасть вам помилку
ПОМИЛКА: деякого сайту не існує!
Щоб виправити це, додайте .conf
до всіх своїх конфігураційних файлів sites-available
. Ви можете зробити те ж саме в sites-enabled
або ви можете видалити всі файли та повторно ввімкнути їх кожен вручну.
Я рекомендую робити їх вручну, оскільки вам, мабуть, потрібно виправити кожен VHost (наступний крок).
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
якщо ви вирішили зробити їх вручну:
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
Директиви щодо віртуального хоста:
дозволити / заборонити проти вимагати
Якщо у вас було таке:
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
Це повинно стати:
<Directory /path/to/your/site/>
Require all granted
</Directory>
Для отримання додаткової інформації, перевірити на коментарі по DaveRandom на якості відповіді на переповнення стека.
Простіше кажучи, якщо ви оновили до apache2.4 і зберегли стару httpd.conf
версію apache2.2, дозволити директиву слід працювати нормально. Якщо ви оновили httpd.conf
(що я б запропонував), ви отримаєте 403 помилки, поки не зміните директиви Order
/ Allow
/ Deny
на їх еквівалент Require
.
Параметри каталогу
Якщо ви були варіанти Directory, до відома , що всі вони повинні передувати +
або -
або жоден з них взагалі. Змішування обох заборонено:
Приклад:
Це дозволено:
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
Так це (Зверніть увагу, що ці приклади не обидва роблять одне і те ж; попередній відключає MultiViews
параметр, наступний - не):
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
Це більше не дозволено:
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
Останній варіант конфігурації видасть синтаксичну помилку:
Або всі параметри повинні починатися з + або -, або жодна опція не може.
Перезапустіть апаш
Після того, як все буде зроблено, вам потрібно перезапустити сервер apache, щоб зміни вступили в силу:
sudo apache2ctl restart
Ви можете знайти докладний посібник з оновлення від 2.2 до 2.4 на офіційній документації.
httpd.conf
файлу чиconf.d
каталогу. Але єapache2.conf
файл. Я спробував перенести його вconf-available
каталог, і при перезапуску apache2: помилка : не вдалося відкрити файл конфігурації /etc/apache2/apache2.conf: Немає такого файлу чи каталогу - Що може бути причиною?