gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:57:15 24 4
gpt4 key购买 nike

我目前有一个装有 CentOS 7 的 vagrant box。在我的 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 位于同一文件夹的同一文件夹内。我可以在 /vagrant/api/ 上的 VM 中访问它。

我的目标是能够访问我机器内的 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 拒绝连接。

我可以 ping 这个 url 并得到肯定的结果,0% 的数据包丢失。

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

最佳答案

我来回答

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

所以默认情况下你是正确的,vagrant 共享包含 Vagrantfile 的本地文件夹的内容与 /vagrant VM 的文件夹。

有一件事是那个盒子覆盖了 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 同步文件夹机制,这将提供(近)实时双向同步。

关于php - 无法访问 Vagrant 虚拟主机/共享文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55517790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com