微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-流浪汉虚拟主机/共享文件夹无法访问

我目前在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时,出现此网站无法访问的信息. vagrant.api.local拒绝连接.

我可以ping通此URL并获得肯定的结果,即0%的数据包丢失.

关于如何在此网址上加载/vagrant/api/public/index.PHP文件的任何想法?我究竟做错了什么?

解决方法:

我会回答这个

My goal is to be able to reach the index of the api inside my machine

因此,认情况下您是正确的,vagrant与VM的/ vagrant文​​件夹共享包含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文件夹类型,并使用认的virtualBox sync文件夹机制,该机制将提供(近)实时双向同步.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐