2013-07-15 2 views
2

Я пытаюсь создать локальную среду разработки, чтобы я мог работать на моем сайте matthewfedak.co.uk.Доступ к веб-сайту, размещенному на локальном vagrant vm

Я использую бродягу и виртуальную коробку.

Вот мой бродяга файл:

Vagrant.configure("2") do |config| 
    config.vm.box = "lucid32" 
    config.vm.provision :shell, :path => "localhost.sh" 
    config.vm.network :forwarded_port, host:4567, guest: 80 
    config.vm.network :forwarded_port, host: 3306, guest: 3306 
    config.vm.synced_folder "/Users/mfedak/sites", "/var/www/vhosts", :owner => "www-data", :group => "www-data" 
end 

Вот мой/и т.д./хосты файл:

## 
# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
#127.0.0.1  localhost 
#255.255.255.255  broadcasthost 
#::1   localhost 
#fe80::1%lo0 localhost 
127.0.0.1:4567 matthewfedak.co.uk 
127.0.0.1:4567 www.matthewfedak.co.uk 

Вот мой ВХост для сайта в/и т.д./apache2/сайты с поддержкой/matthewfedak.co.uk

бродячую @ lucid32: ~ $ Sudo ВИМ /etc/apache2/sites-enabled/matthewfedak.co.uk

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName matthewfedak.co.uk 
     ServerAlias www.matthewfedak.co.uk 
     DocumentRoot /var/www/vhosts/matthewfedak.co.uk/httpdocs/ 
     ErrorLog /var/www/vhosts/matthewfedak.co.uk/logs/error.log 
     CustomLog /var/www/vhosts/matthewfedak.co.uk/logs/access.log combined 
</VirtualHost> 

Звучит просто, но мне становится скучно заниматься этим. Я установил множество серверов Ubuntu раньше, поэтому не думаю, что это с этим, просто для того, чтобы связать хост/удаленный доступ.

+0

Не вопрос StackOverflow. Попробуйте [serverFault] (http://serverfault.com) –

+0

Возможно, произошла ошибка межсетевого экрана или прослушивания порта в VM? – cmur2

+0

Я использую прокси-плагин для хром-канарейки под названием SwitchySharp, и если я просматриваю с прокси-сервером IP: 127.0.0.1, порт: 4567 работает нормально. Но сайту matthewfedak.co.uk, возможно, потребуется вытащить изображения с других сайтов, и я не хочу, чтобы прокси-сервер применял их. Я могу делать определенные исключения, основанные на regex's в SwitchySharp, но я в идеале этого не хочу. Я просто хочу, чтобы URL-адрес моего сайта был сопоставлен с моей локальной версией через файл хоста, все остальное из Интернета. Я делал это в течение многих лет на окнах без проблем. –

ответ

2

По умолчанию Vagrant использует NAT-режим для работы в сети, что требует много сопоставлений портов, если вы тестируете полный стек. Более того, в связи с ограничением режима NAT VirtualBox в:

портов Forwarding хозяевах < 1024 невозможно:

На хостах Unix-приложений (например, Linux, Solaris, Mac OS X) не представляется возможным связать к портам ниже 1024 из приложений, которые не выполняются root. В результате, если вы попытаетесь настроить такую ​​переадресацию портов, виртуальная машина откажется запускать.

Вот почему вы используете порт 4567 на хосте, не так ли?

Теперь первопричины находится в вашем /etc/hosts

127.0.0.1:4567 matthewfedak.co.uk 
127.0.0.1:4567 www.matthewfedak.co.uk 

hosts Файл представляет собой простой текстовый файл, который связывает IP-адреса с именами хостов, по одной строке на IP-адрес. Он НЕ работает с номерами портов.

Чтобы обойти, рассмотрите возможность использования мостового режима или private network брандмауэра, чтобы вы могли получить доступ к гостю с использованием IP-адреса вместо использования шлейфа хоста.

+1

«На хостах на базе Unix (например, Linux, Solaris, Mac OS X) невозможно подключиться к портам ниже 1024 из приложений, которые не выполняются с помощью root.». Это неправда. В Solaris вы можете назначить привилегию «PRIV_NET_PRIVADDR» (позволяет привязываться к привилегированному порту) любому пользователю, а затем он сможет привязываться к порту <1024. Однако в Solaris чаще назначается эта привилегия для службы SMF (демона, если хотите), а не для пользователя.В общем случае утверждение «вам нужно быть root to ...» - это то, что происходит из мира Linux. Он не применяется в Solaris. – peterh

+0

Спасибо, что указали это. Я думаю, что владельцам VirtualBox необходимо обновить VirtualBox [руководство пользователя] (http://www.virtualbox.org/manual/ch06.html#nat-limitations), см. Часть ограничений NAT. –

+0

Да, вы видите подобные заявления повсюду. Я думаю, это просто проще написать, как если бы Solaris также требовала root для этого. Затем вы можете писать такие заявления, как: «В Unix/Linux вам нужно быть root ...», не выдумывая слишком много. По правде говоря, эта способность не дошла до Solaris до 2005 года (с Solaris 10). – peterh

Смежные вопросы