Сайт не существует ошибки для a2ensite
У меня 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)
Как решить эту проблему?
Ответы
Ответ 1
Решил проблему, добавив расширение .conf
в файлы конфигурации сайта.
Apache a2ensite
приводит к:
Ошибка! Сайт не существует
Проблема; Если вы обнаружили ошибку при попытке включить сайт с помощью:
sudo a2ensite example.com
но возвращается:
Error: example.com does not exist
a2ensite
- это просто скрипт на Perl, который работает только с именами файлов, заканчивающимися .conf
Поэтому мне нужно переименовать файл настроек для example.com
в example.com.conf
, что может быть достигнуто следующим образом:
mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf
Успех
Ответ 2
Вероятно, вы обновили свою установку 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
Ответ 3
Там другой хороший способ, просто отредактируйте файл apache2.conf
theres в конце в конце
IncludeOptional sites-enabled/*. conf
просто удалите .conf
в конце, например
IncludeOptional sites-enabled/*
и перезагрузите сервер.
(Я пробовал это только в Ubuntu 13.10, когда я его обновил.)
Ответ 4
У меня была такая же проблема. Я бы сказал, что это не имеет никакого отношения к 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.
Ответ 5
Итак..
Самый быстрый способ - переименование имен конфигурации сайта, заканчивающихся на ".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 не может быть взломана, как описано
так как ваш доступный на вашем сайте файл на самом деле является файлом конфигурации, он должен быть назван таким образом в любом случае.
В общем случае не перезапускайте службы (веб-серверы являются одним из видов услуг):
- люди не могут найти их, если они не работают! Подумайте, Linux не MS Windows..
Серверы могут работать в течение многих лет - обновление в реальном времени, перезагрузка конфигурации и т.д.
Облако не означает, что вам нужно перезагрузить файл конфигурации.
-
При изменении конфигурации службы используйте "перезагрузить", а не "перезапустить".
-
перезапуск останавливает службу, а затем запускает службу - при возникновении каких-либо проблем в вашем изменении конфигурации, служба не перезагружается.
-
reload выдаст ошибку, но служба никогда не выключается, давая вам возможность исправить ошибку конфигурации, которая может быть только плохим синтаксисом.
debian или ubunto [имя службы для этого потока - apache2]
service {service-name} {start} {stop} {reload} ..
другие os оставлены как excersize для читателя.
Ответ 6
Работал после добавления .conf
в файл конфигурации
Ответ 7
В моем случае с Ubuntu 14.04.3 и Apache 2.4.7 проблема заключалась в том, что я скопировал site1.conf, чтобы сделать site2.conf доступным, и, скопировав, что-то случилось, и я не мог a2ensite site2.conf с ошибкой описанный в потоке.
Решение для меня состояло в том, чтобы переименовать site2.conf в site2, а затем снова переименовать site2 в site2.conf. После этого я смог a2ensite site2.conf.
Ответ 8
Я только что обновил версию 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) Проверьте сайт в браузере и получайте удовольствие!:)
Ответ 9
Я понимаю, что дело не в этом, но это может кому-то помочь.
Дважды проверьте, что вы не создали файл conf в /etc/apache2/sites-enabled по ошибке. Вы получаете ту же ошибку.
Ответ 10
Попробуйте вот так.
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..