У меня сейчас есть бродячая коробка с 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. С ними можно связаться в папке /vagrant
внутри виртуальной машины.
Код, который я хочу получить, находится в той же папке, что и Vagrantfile. Я могу достичь его внутри виртуальной машины на /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
(на моей машине и на виртуальной машине).
Тем не менее, когда я пытаюсь получить доступ к vagrant.api.local:8081
в браузере, я получаю This site can’t be reached. vagrant.api.local refused to connect.
Я могу пропинговать этот URL и получить положительные результаты, потеря пакета 0%.
Есть идеи, как мне загрузить файл /vagrant/api/public/index.php
по этому URL? Что я делаю не так?