2016-04-19 5 views
0

Моя цель состоит в размещении 2 разных сайтов с одной и той же виртуальной машины и на порту 80. Один из них - сайт Wordpress на домене.com, а другой - веб-приложение на сайте app.domain.com. Если этого не может быть сделано, то моя альтернативная цель - получить только сайт Wordpress, работающий на порту 80. domain.com.Как я могу запустить 2 сайта на Apache? Сложная ситуация

Мой регистратор - 1and1.com, а настройки DNS - это как показано ниже. Обратите внимание, что они не позволяют запись CNAME для основного домена, только для субдомена. Вот мой Запись A (IP-адреса и доменные имена в этом посте не мои настоящие):

Type: A Record Value: 123.456.789.10 

Мой хозяин Azure, где у меня есть виртуальная машина работает с виртуальным IP-адресом 123.456. 789,10. Это Azure VM имеет конечных точек, настроенных так:

TCP Public Port 8080 Private Port 8080 
    TCP Public Port 80  Private Port 80 
    TCP Public Port 2121 Private Port 21 
    TCP Public Port 22  Private Port 22 

На Лазурном есть зона DNS настроена так:

Name: www Type: A TTL: 3600 Value: 123.456.789.10 

Мой файл Apache по умолчанию настроен так :

# FOR WORDPRESS WEBSITE (DOMAIN.COM) 
     Listen 80 
     <VirtualHost *:80> 
     DocumentRoot /var/www/html/wordpress/ 
     <Directory "/var/www/html/wordpress/"> 
      AllowOverride All 
     </Directory> 
     </VirtualHost>   
# FOR APPLICATION (APP.DOMAIN.COM) 
     <VirtualHost *:80> 
     DocumentRoot /var/www/application/ 
     <Directory "/var/www/application/"> 
      AllowOverride All 
     </Directory> 
     </VirtualHost> 

Мой файл .htaccess в корневой папке Wordpress настроен так:

# BEGIN WordPress 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
    </IfModule> 
# END WordPress 
    <IfModule mod_suphp.c> 
    AddHandler application/x-httpd-php54 .php .php5 .php4 .php3 
    </IfModule> 

Wordpress конфигурационный файл:

It's totally standard and the site was running last week without 
    issue while on port 8090, but I wanted to use port 80 instead. 

Ubuntu хостов файл:

127.0.0.1 localhost 
    ServerName domain.com 
# The following lines are desirable for IPv6 capable hosts 
    ::1 ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
    ff02::3 ip6-allhosts 

В настоящее время я получаю сообщение об ошибке в браузере >> Этот сайт не может быть достигнуто domain.com слишком долго, чтобы ответить. ERR_CONNECTION_TIMED_OUT, но иногда при настройке моих настроек (выше) я бы получил список каталогов в браузере, в котором указана директория по умолчанию apache/var/www.

Мое ощущение, что мне нужно больше настроек записей A и CNAME, но я не знаю, t точно знать, как их настроить. Я уже провел 5 полных дней, работая над этим и решениями Googling, которые не работали для меня. Любые указатели были бы замечательными!

ответ

0

Вы пытались ServerName? И добавив это в файл hosts.

<VirtualHost *:80> 
    ServerName domain.com 
    DocumentRoot /var/www/html/wordpress/ 
    ErrorLog /var/www/html/wordpress/error.log 

<VirtualHost *:80> 
    ServerName app.domain.com 
    DocumentRoot /var/www/application/ 
    ErrorLog /var/www/application/error.log 

+0

Да, я попробовал это и попробовал снова, чтобы быть уверенным. Это не исправляет мою проблему. – user3035649

+0

Можете ли вы добавить запись в файл hosts? Теперь у вас есть только localhost 127.0.0.1 –

+0

Я добавил запись в файл моих хостов. Теперь он показывает список каталогов, когда я указываю имя домена в браузере. Но это, конечно, показывает/var/www/вместо/var/www/html/wordpress, хотя мой конфигурационный файл Apache явно дает второй путь. Также обратите внимание, что я не могу пинговать виртуальный IP-адрес из Ubuntu или из командной строки Windows, хотя я могу легко подключиться к этому IP через SSH (порт 22). – user3035649

0

Я не знаю Azure, но вам нужно будет открыть порт 80 публично - это выглядит, как только 8080 настроен в данный момент.

Кроме того, вам обязательно нужен:

ServerName 

директив.

Если вы можете предоставить свое реальное доменное имя, мы можем проверить DNS/порты и т. Д. Для вас.

+0

Кроме того, я открыл порт 80 публично. – user3035649

+0

Вы должны отредактировать свой вопрос, чтобы показать это - он не указан в разделе «конечные точки». Порт 80 открыт, поэтому вы должны хотя бы увидеть ошибку от apache, если она все еще не работает? –

+0

OK Я обновил свой вопрос, чтобы отразить это. Чтобы ответить на ваш вопрос, нет ошибки, но я получаю список каталогов (неправильный каталог). Он показывает/var/www/вместо/var/www/html/wordpress, хотя мой конфигурационный файл Apache для этого номера порта явно дает второй путь. Помогите! – user3035649

0

У меня есть это! Этот сайт был создан из копии другого сайта, и я заметил, что когда я скопировал содержимое моей папки Wordpress непосредственно в/var/www /, адресная строка не загрузила сайт, но покажет domain.com:8090 (где «domain.com» - мой новый сайт, а «8090» - это номер порта, который ранее использовался ранее) в адресной строке НЕОБХОДИМО, хотя эта директива не содержалась в моем конфигурационном файле apache. Это дало мне представление о том, что по какой-то причине некоторые строки кода направляются на этот порт. Таким образом, через phpmyadmin я изменил значения Wordpress «имя сайта» и «url» (который содержал этот номер порта) в моей базе данных, чтобы соответствовать моему новому домену без номера порта и альта. Для меня это не имеет смысла, почему это помогло, но в любом случае сайт затем загрузился отлично! Но это была только половина проблемы, потому что мне не нужно было размещать свой контент Wordpress непосредственно в/var/www, но вместо этого я хочу чего-то еще.

Вторая половина проблемы была решена, когда мой коллега решил скопировать мой файл «/ etc/apache2/sites-available/default» в новый файл «/etc/apache2/sites-enabled/default.conf «по причинам, которые я не понимаю. По его словам, это привело к тому, что apache начал прослушивать мои директивы в файле/etc/apache2/sites-available/default, и поэтому шестерни начинают поворачиваться снова. Для меня это бессмысленно, потому что это противоречит другим серверам apache, которые у меня запущены, поэтому я получу разъяснения и отправлю сообщение, если стоит.