2016-09-15 44 views
0

我正在运行vagrant scotch box 2.0,我在该框中添加了多个域。如何使用scotch box从外部计算机访问多个站点2

我已经加入了IP到我的hosts文件

192.168.33.11 site1.local 
192.168.33.11 site2.local 

的域是从本地机的工作。

我所想要做的就是让从另一台计算机的网络

我又增加了一个端口着流浪的文件上访问这些网站,而这部作品在单个域环境。

但是有没有办法以某种方式将域绑定在外部计算机上,他们可以通过简单地添加不同的端口号或其他方式来访问这两个域,或者通过其他方式使两个站点在外部工作?

我不知道这是否相关,但现在我在mac上运行scotch box,但我需要解决方案也可以在windows系统上工作。

这里是我的无业游民文件

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure("2") do |config| 

config.vm.box = "scotch/box" 
config.vm.network "private_network", ip: "192.168.33.11" 
config.vm.network "forwarded_port", guest: 80, host: 8080 
config.vm.hostname = "scotchbox" 
config.vm.synced_folder "/Users/acc/Documents/vagrant/site1", "/var/www/site1.local/public",id:"1", :mount_options => ["dmode=777", "fmode=666"] 
config.vm.synced_folder "/Users/acc/Documents/vagrant/site2", "/var/www/site2.local/public",id:"2", :mount_options => ["dmode=777", "fmode=666"] 
config.vm.provision "shell", inline: <<-SHELL 

    ## Only thing you probably really care about is right here 
    DOMAINS=("site1.local" "site2.local") 

    ## Loop through all sites 
    for ((i=0; i < ${#DOMAINS[@]}; i++)); do 

     ## Current Domain 
     DOMAIN=${DOMAINS[$i]} 

     echo "Creating directory for $DOMAIN..." 
     mkdir -p /var/www/$DOMAIN/public 

     echo "Creating vhost config for $DOMAIN..." 
     sudo cp /etc/apache2/sites-available/scotchbox.local.conf /etc/apache2/sites-available/$DOMAIN.conf 

     echo "Updating vhost config for $DOMAIN..." 
     sudo sed -i s,scotchbox.local,$DOMAIN,g /etc/apache2/sites-available/$DOMAIN.conf 
     sudo sed -i s,/var/www/public,/var/www/$DOMAIN/public,g /etc/apache2/sites-available/$DOMAIN.conf 

     echo "Enabling $DOMAIN. Will probably tell you to restart Apache..." 
     sudo a2ensite $DOMAIN.conf 

     echo "So let's restart apache..." 
     sudo service apache2 restart 

    done 

SHELL 

# Optional NFS. Make sure to remove other synced_folder line too 
#config.vm.synced_folder ".", "/var/www", :nfs => { :mount_options => ["dmode=777","fmode=666"] } 

end 

回答

0

答案是,附加域需要去不同的端口,然后工作

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure("2") do |config| 

config.vm.box = "scotch/box" 
config.vm.network "private_network", ip: "192.168.33.11" 
config.vm.network "forwarded_port", guest: 80, host: 8080 
config.vm.network "forwarded_port", guest: 81, host: 8081 
config.vm.network "forwarded_port", guest: 82, host: 8082 
config.vm.hostname = "scotchbox" 
config.vm.synced_folder "/Users/acc/Documents/vagrant/main", "/var/www/public",id:"3", :mount_options => ["dmode=777", "fmode=666"] 
config.vm.synced_folder "/Users/acc/Documents/vagrant/site1", "/var/www/site1.local/public",id:"1", :mount_options => ["dmode=777", "fmode=666"] 
config.vm.synced_folder "/Users/acc/Documents/vagrant/site2", "/var/www/site2.local/public",id:"2", :mount_options => ["dmode=777", "fmode=666"] 
config.vm.provision "shell", inline: <<-SHELL 

    ## Only thing you probably really care about is right here 
    DOMAINS=("site1.local" "site2.local") 

    IPS=("81" "82") 

    ## Loop through all sites 
    for ((i=0; i < ${#DOMAINS[@]}; i++)); do 

     ## Current Domain 
     DOMAIN=${DOMAINS[$i]} 

     MYIP=${IPS[$i]} 

     echo "Creating directory for $DOMAIN..." 
     mkdir -p /var/www/$DOMAIN/public 

     echo "Creating vhost config for $DOMAIN..." 
     sudo cp /etc/apache2/sites-available/scotchbox.local.conf /etc/apache2/sites-available/$DOMAIN.conf 

     echo "Updating vhost config for $DOMAIN..." 
     sudo sed -i s,scotchbox.local,$DOMAIN,g /etc/apache2/sites-available/$DOMAIN.conf 
     sudo sed -i s,/var/www/public,/var/www/$DOMAIN/public,g /etc/apache2/sites-available/$DOMAIN.conf 

    sudo sed -i s,80,$MYIP,g /etc/apache2/sites-available/$DOMAIN.conf 

    sudo sed -i s,'<VirtualHost',"Listen $MYIP \\n<VirtualHost",g /etc/apache2/sites-available/$DOMAIN.conf 



     echo "Enabling $DOMAIN. Will probably tell you to restart Apache..." 
     sudo a2ensite $DOMAIN.conf 

     echo "So let's restart apache..." 
     sudo service apache2 restart 

    done 

SHELL 

# Optional NFS. Make sure to remove other synced_folder line too 
#config.vm.synced_folder ".", "/var/www", :nfs => { :mount_options => ["dmode=777","fmode=666"] } 

end 
相关问题