簡體   English   中英

無法訪問Vagrant虛擬主機/共享文件夾

[英]Vagrant virtual hosts/shared folders not accessible

我目前有一個帶有CentOS 7的流浪盒。在我的Vagrantfile中,我有以下配置:

config.vm.box = "centos/7"
config.vm.provision :shell, path: "provision.sh"
config.vm.network "private_network", ip: "192.168.50.4"
# config.vm.synced_folder ".", "/vagrant"

我知道默認情況下,vagrant共享包含Vagrantfile的文件夾的內容。 可以在VM內的/vagrant文件夾中找到它們。

我想要訪問的代碼位於與Vagrantfile相同的文件夾中。 我可以在VM上的/vagrant/api/

我的目標是能夠達到我機器內的api索引。 我正在嘗試為此效果創建一個虛擬主機。

在我的配置文件中,我有以下內容:

if [ $(grep -c 'api' /etc/httpd/conf/httpd.conf) -eq 0 ]; then
cat >> /etc/httpd/conf/httpd.conf <<EOM
<VirtualHost *:8081>    
    DocumentRoot "/vagrant/api/public"
    <Directory "/vagrant/api/public">
        Options +Indexes +FollowSymLinks
        DirectoryIndex index.php
        Order allow,deny
        Allow from all
        AllowOverride All
        Require all granted

        Header set Access-Control-Allow-Origin "*"
        Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding"
        Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT, UPDATE"
        Header merge  Vary "Origin"
    </Directory> 

    ServerName vagrant.api.local:8081
    ServerAlias vagrant.api.local
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</VirtualHost>
EOM
fi

service httpd restart;

我將192.168.50.4 vagrant.api.local添加到/etc/hosts文件中(在我的機器上和VM上)。

然而,當我嘗試在瀏覽器上訪問vagrant.api.local:8081時,我得到了This site can't be reached. vagrant.api.local refused to connect. This site can't be reached. vagrant.api.local refused to connect.

我可以ping這個url並獲得正面結果,0%丟包。

關於如何在此網址上加載/vagrant/api/public/index.php文件的任何想法? 我究竟做錯了什么?

我會回答這個問題

我的目標是能夠達到我機器內的api索引

因此默認情況下你是正確的,vagrant與包含VM的/vagrant文件夾的Vagrantfile包含Vagrantfile本地文件夾的內容。

但有一件事就是盒子覆蓋Vagrantfile的配置,以及centos/7盒子的情況。

如果你查看$HOME/.vagrant.d/boxes/centos-VAGRANTSLASH-7/<box_version>/virtualbox你會發現Vagrantfile框聲明了

Vagrant.configure("2") do |config|
  config.vm.base_mac = "525400261060"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end

由於文件夾是rsync類型,它只能從運行到Vagrant啟動的機器的一次性單向同步。

最簡單的方法是刪除rsync文件夾類型並使用默認的虛擬框同步文件夾機制,該機制將提供(接近)實時雙向同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM