Я только что обновил Ubuntu 8.04 до последней версии, и мои виртуальные хосты внезапно перестали работать. Я не уверен, что изменилось, но я знаю, что когда я localhost
он не попадает в каталог, который я ожидал (вероятно, по умолчанию /var /www /, но это не то место, где я храню свои проекты), и набираю имя одного из моих виртуальных хостов перенесет меня туда же. Как мне заставить его работать снова?
4 ответа
Оказывается, обновление вроде сброса вещей обратно к умолчанию. Вот что я сделал, чтобы заставить его работать (у меня это работало в Ubuntu 9.10 Karmic Koala):
Каталог localhost был установлен в
/var/www
поэтому для изменения вам потребуется отредактировать файл конфигурации виртуального хоста по умолчанию в /etc /apache2 /sites-available. Обязательно измените значенияDocumentRoot
и<Directory >
.sudo nano /etc/apache2/sites-available/default
Чтобы создать виртуальный хост, создайте файл в /etc /apache2 /sites-available
sudo nano /etc/apache2/sites-available/mysite
Вот пример того, что вы должны поместить в файл виртуального хоста:
<VirtualHost *:80> ServerName myvirtualhostname ErrorLog /var/log/apache2/myvirtualhostname-error.log CustomLog /var/log/apache2/myvirtualhostname-access.log combined DocumentRoot /home/name/Projects/myvirtualhostname/public <Directory /home/name/Projects/myvirtualhostname/public> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost>
Далее вы захотите включить свой виртуальный хост. Вы можете сделать это, запустив команду "Apache 2 Enable Site" с именем файла, созданного вами на
sites-available
:sudo a2ensite mysite
Вам также может понадобиться добавить имя вашего виртуального хоста в файл
/etc/hosts
.Теперь перезапустите Apache, чтобы он вступил в силу:
sudo /etc/init.d/apache2 restart
Бонус! Если вы хотите избавиться от этого сообщения, которое говорит:«Не удалось определить полное доменное имя сервера, используя 127.0.0.1 для ServerName», вы можете создать файл конфигурации в /etc/apache2/conf.d/
именем fqdn
со значением ServerName localhost
. Вы можете сделать это одной командой:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
За дополнительной информацией обращайтесь к настройке Apache, PHP и MySQL в Ubuntu.
Возможно, вы добавили свои виртуальные хосты в /etc/apache2/httpd.conf
или что-то вроде этого, и файл был перезаписан при обновлении (вам было предложено!). Проверьте, есть ли у вас виртуальные хосты в /etc/apache2/sites-available
(по одному хосту на файл) и имеются ли допустимые разрешаемые символические ссылки в /etc/apache2/sites-enabled
: это правильный способ добавить их в Ubuntu ( Я полагаю, что во всех системах Unix это распространено: отличная идея, чтобы разделить их, а не накапливать в одном файле!).
У меня нет для вас конкретного ответа для Ubuntu, но вам просто нужно проверить ваш httpd.conf для DocumentRoot и установить его по мере необходимости. Если ваши виртуальные конфиги не будут стерты, вам придется их воссоздать.
Это также может быть связано с DNS.
Так, что это говорит, когда вы говорите конкретно http://localhost://