2013-11-21 4 views
0

Так что в основном у меня возникают проблемы с созданием субдомена на моем сервере. Я запускаю apache2 на сервере Ubuntu 12.04 и динамический IP настроен с No -IP.com.Создание субдоменов на сервере apache2 с динамическим IP

У меня есть mydomain.com, но вы хотите создать test.mydomain.com, направляясь к подпапке в моем/var/www/каталоге (где все для моего сайта находится).

Я изменил код на apache vhosts examples page и поместить это в моем файле httpd.conf:

# Ensure that Apache listens on port 80 
Listen 80 

# Listen for virtual host requests on all IP addresses 
NameVirtualHost localhost:80 

<VirtualHost localhost:80> 
DocumentRoot /var/www/ 
ServerName mydomain.com 

# Other directives here 

</VirtualHost> 

<VirtualHost localhost:80> 
DocumentRoot /var/www/test 
ServerName test.mydomain.com 

# Other directives here 

</VirtualHost> 

Когда я пытаюсь и перезапустить службу:

sudo /etc/init.d/apache2 restart 

* Restarting web server apache2                                           apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 
no listening sockets available, shutting down 
Unable to open logs 
Action 'start' failed. 
The Apache error log may have more information. 

Любая помощь очень ценится. Пожалуйста, дайте мне знать, если я забываю включить любую необходимую информацию.

Обновление Я пробовал использовать *: 80, но у меня все еще есть ошибка, поэтому я переключился на localhost.

sudo /etc/init.d/apache2 restart 
* Restarting web server apache2                                           apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
[Thu Nov 21 15:03:51 2013] [warn] NameVirtualHost *:80 has no VirtualHosts 
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 
[Thu Nov 21 15:03:51 2013] [warn] NameVirtualHost *:80 has no VirtualHosts 
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 
no listening sockets available, shutting down 
Unable to open logs 
Action 'start' failed. 
The Apache error log may have more information. 

UPDATE я понял, что происходит. У меня была соответствующая запись конфигурации в файле ports.conf. Как только я удалил это, все сработало нормально.

ответ

0

Ваш apache conf кажется правильным, если вы замените localhost на *. Это означает, что вы должны использовать NameVirtualHost *:80 и <VirtualHost *:80>

Однако вы должны указать DNS-серверу пересылать поддомены в динамический IP-адрес. Поскольку у вас есть домен .com из платной службы DNS, вы должны войти в свой DNS-провайдер и настроить записи A или CNAME на свой IP-адрес (добавьте те же настройки, что и в вашем основном домене .com). Если вы используете ddclient или аналогичный клиент для автоматического обновления доменов, вы также можете настроить его для обновления субдомена.

В любом случае используйте команду nslookup yourdomain.com и nslookup subdomain.domain.com, чтобы узнать, успешно ли подтвержден субдомен. Обратите внимание, что обновления в DNS могут занять несколько часов до их фактического ввода в действие.

EDIT:

К сожалению только заметил: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80. Это означает, что кто-то еще использует порт 80, поэтому сервер Apache не может привязываться к этому адресу. Используйте sudo netstat -anltp | grep :80, чтобы узнать, какая программа имеет связанный порт 80. Также проверьте свои файлы conf, чтобы убедиться, что у вас нет более NameVirtualHost *:80 директив.

Последний, apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName не ошибка, это просто предупреждение, так что вы не должны беспокоиться об этом

+0

Я пробовал использовать *: 80, но у меня все еще есть ошибка, поэтому я переключился на localhost. – Gino

+0

Apache .... tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16644/apache2 – Gino

+0

Итак, apache работает? Попробуйте использовать 'sudo apache2ctl restart' вместо' sudo /etc/init.d/apache2 restart' – foibs

0

Возможно, что служба с использованием порта: 80 Попробуйте netstat -tulpn |grep :80 в командной строке, чтобы увидеть, какие услуги оккупирует этот порт. В моем случае это был nginx. Я остановил службу, а затем начал ту, которую я хотел использовать (apache2).