У меня cmsplus.dev
под /etc/apache2/sites-available
со следующим кодом,
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.cmsplus.dev
ServerAlias cmsplus.dev
DocumentRoot /var/www/cmsplus.dev/public
LogLevel warn
ErrorLog /var/www/cmsplus.dev/log/error.log
CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>
Теперь, когда я использую sudo /usr/sbin/a2ensite cmsplus.dev
, я получаю ошибку,
ERROR: Site cmsplus.dev does not exist!
Мой веб-сервер Apache/2.4.6 (Ubuntu)
Как решить эту проблему?
Устранил проблему, добавив расширение .conf
в файлы конфигурации сайта.
Apache a2ensite
приводит к:
Ошибка! Сайт не существует
Проблема; Если вы обнаружили ошибку при попытке включить сайт, используя:
sudo a2ensite mysite.com
но он возвращает:
Ошибка: mysite.com не существует
a2ensite
- это просто perl script, который работает только с именами файлов, заканчивающимися .conf
Поэтому мне нужно переименовать файл настроек для mysite.com
в mysite.com.conf
, как это может быть достигнуто следующим образом:
mv /etc/apache2/sites-available/mysite.com /etc/apache2/sites-available/mysite.com.conf
Success
Вероятно, вы обновили свою установку Ubuntu, и одно из обновлений включало обновление Apache до версии 2.4.x
В Apache 2.4.x файлы конфигурации vhost, расположенные в каталоге /etc/apache 2/sites-available, должны иметь расширение .conf.
Используя терминал (команда mv), переименуйте все существующие файлы конфигурации и добавьте расширение .conf ко всем из них.
mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf
Если вы получили ошибку "Разрешить отказ", добавьте "sudo" перед вашими командами терминала.
Вам не нужно вносить какие-либо изменения в файлы конфигурации.
Включить vhost (ы):
a2ensite cmsplus.dev.conf
И затем перезагрузите Apache:
service apache2 reload
Теперь ваши сайты должны быть запущены и запущены.
UPDATE: как упоминалось здесь, дистрибутив Linux, который вы установили, изменил конфигурацию только на Include *.conf. Поэтому он не имеет ничего общего с Apache 2.2 или 2.4
Там другой хороший способ, просто отредактируйте файл apache2.conf
theres в конце в конце
IncludeOptional sites-enabled/*. conf
просто удалите .conf
в конце, например
IncludeOptional sites-enabled/*
и перезагрузите сервер.
(Я пробовал это только в Ubuntu 13.10, когда я его обновил.)
.conf
к файлам конфигурации
У меня была такая же проблема. Я бы сказал, что это не имеет никакого отношения к apache.conf.
a2ensite должен быть изменен - строка 532 - это строка, которая обеспечивает суффикс .conf:
else {
$dir = 'sites';
$sffx = '.conf';
$reload = 'reload';
}
Если вы измените его на:
else {
$dir = 'sites';
#$sffx = '.conf';
$sffx = '';
$reload = 'reload';
}
... он будет работать без суффикса.
Конечно, вы не захотите изменить a2ensite script, но изменение суффикса файла conf является правильным способом.
Вероятно, это просто способ принудительного использования .conf -suffix.
Итак.. Самый быстрый способ - переименование имен конфигурации сайта, заканчивающихся на ".conf"
mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf
a2ensite mysite.conf
другие примечания по предыдущим комментариям:
IncludeOptional не был введен до тех пор, пока apache 2.36 - внесение изменений выше, а затем перезапуск на 2.2 оставит ваш сервер!
также, версия 2.2 a2ensite не может быть взломана, как описано
так как ваш доступный на вашем сайте файл на самом деле является файлом конфигурации, он должен быть назван таким образом в любом случае.
В общем случае не перезапускайте службы (веб-серверы являются одним из видов услуг):
Серверы могут работать в течение многих лет - обновление в реальном времени, перезагрузка конфигурации и т.д.
Облако не означает, что вам нужно перезагрузить файл конфигурации.
При изменении конфигурации службы используйте "перезагрузить", а не "перезапустить".
перезапуск останавливает службу, а затем запускает службу - при возникновении каких-либо проблем в вашем изменении конфигурации, служба не перезагружается.
reload выдаст ошибку, но служба никогда не выключается, давая вам возможность исправить ошибку конфигурации, которая может быть только плохим синтаксисом.
debian или ubunto [имя службы для этого потока - apache2]
service {service-name} {start} {stop} {reload} ..
другие os оставлены как excersize для читателя.
Работал после добавления .conf
в файл конфигурации
Я только что обновил версию Ubuntu Server с 12.04 LTS до 14.04 LTS.
В самом деле, как сказано выше, расширение .conf для Apache 2.4.x необходимо для файлов vhost веб-сайтов, которые находятся в каталоге, доступном на сайтах.
Прежде чем прочитать этот вопрос, я не понял, что происходит с сервером.
Довольно приятное решение.
Просто подведя итоги, я сделал следующие шаги в терминале:
1) Папка с доступом к сайтам с поддержкой
$ cd /etc/apache2/sites-enabled
2) Поскольку команда a2dissite не будет работать с устаревшими файлами (без .conf), удалите старые файлы веб-сайтов, которые были опубликованы
$ sudo rm <my-old-website-without-.conf>
3) Переименуйте файлы vhost веб-сайта, изменив расширение, добавив .conf в конец
$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf
4) Переиздайте новый и правильный файл vhost
$ sudo a2ensite mywebsite.conf
5) Проверьте сайт в браузере и получайте удовольствие!:)
В моем случае с Ubuntu 14.04.3 и Apache 2.4.7 проблема заключалась в том, что я скопировал site1.conf, чтобы сделать site2.conf доступным, и, скопировав, что-то случилось, и я не мог a2ensite site2.conf с ошибкой описанный в потоке.
Решение для меня состояло в том, чтобы переименовать site2.conf в site2, а затем снова переименовать site2 в site2.conf. После этого я смог a2ensite site2.conf.
Я понимаю, что это не так, но это может кому-то помочь, проверьте, что вы не создали файл conf в /etc/apache2/sites-enabled по ошибке. Вы получаете ту же ошибку.
Попробуйте вот так.
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.cmsplus.dev
ServerAlias cmsplus.dev
DocumentRoot /var/www/cmsplus.dev/public
LogLevel warn
ErrorLog /var/www/cmsplus.dev/log/error.log
CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>
и добавьте запись в /etc/hosts
127.0.0.1 www.cmsplus.dev
перезапустить apache..
It works
страницы вместо настроек.