Vagrant Share — доступ к виртуальным хостам и доступ к тем, которые не находятся в корневом веб-сайте по умолчанию.

У меня установлен Vagrant и работает CentOS 6.5 x64, и он отлично работает. Нет проблем с запуском нескольких сайтов на одной виртуальной машине. Все сайты запускаются из папки /var/www/public, за исключением PhpMyAdmin, который запускается из папки /var/www/html. Я пытаюсь использовать vagrant share, чтобы получить доступ к любому из запущенных сайтов vhost. Проблема в том, что vagrant share отображает только содержимое папки /var/www/html.

Есть ли что-то еще, что мне нужно сделать, чтобы получить доступ к моей недавно созданной папке /var/www/public? Я попытался отредактировать файл hosts на другом компьютере, чтобы узнать, могу ли я перенаправить любой из URL-адресов, которые я назначил этим сайтам, на текущий адрес «бродячего общего ресурса», но это не работает. Я просто лично в недоумении, что мне делать дальше.

Это моя базовая установка. Vagrant версии 1.5.4, VirtualBox версии 4.3.8, Windows 7 x64, файл конфигурации от PuPHPet, но сильно настроенный после загрузки для добавления файлов vhosts, ssh config, mysql и bash.

Надеюсь, кто-то еще, возможно, столкнулся с этой проблемой. У кого-нибудь есть хорошее направление, в котором я могу повернуть?

Спасибо всем,

c0p


САМООБНОВЛЕНИЕ

У меня есть значительный прогресс в моем собственном вопросе. Смысл того, что я делаю, - разрешить доступ к чужому сайту с моей машины Vagrant. Мне не нужно, чтобы они постоянно имели полный доступ, а просто просматривают вещи как есть и сообщают мне о любых изменениях, которые им могут понадобиться. Вы знаете, стандартные вещи разработчиков. Итак, вот что я придумал.

Изучая Интернет в целом, я наткнулся на эту ссылку: https://groups.google.com/forum/#!topic/vagrant-up/IcEl9-V9wsU

Этот парень использует Nginx и, похоже, задает тот же вопрос, что и я, но использует другой веб-сервер. Пожалуйста, взгляните на эту страницу, если вы столкнулись с чем-то подобным с Nginx. Там у него есть ответ. Я ничего не знаю о Nginx, но все же смог кое-что экстраполировать из того, что мне было нужно.

Итак, что я узнал с этой страницы, так это то, что как только он получил необычную ссылку с сайта Vagrant, он быстро отредактировал свои файлы конфигурации для Nginx и перезапустил веб-сервер. Теперь сумасшедший URL-адрес указывал на расположение файла виртуальных хостов и заставлял страницу, которую он хотел отобразить, действительно появляться, а не просто отображать страницу «Добро пожаловать» по умолчанию.

Я подумал об этом некоторое время и решил отредактировать свой собственный конфиг и посмотреть, что произойдет.

Я использую CentOS, поэтому я отредактировал файл /etc/httpd/conf/httpd.conf.

Примерно в середине этого файла есть строка с комментариями #Listen 80. Сразу после этой строки (или, если хотите, через пробел) я добавил следующее:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/public/sitename
    ServerName hungry-lovebird-7142.vagrantshare.com
    ServerAlias hungry-lovebird-7142
    ErrorLog /var/www/www.sitename.dev-error_log
    CustomLog /var/www/www.sitename.dev-access_log common
</VirtualHost>

Я указал DocumentRoot на папку сайта, к которому я хочу получить доступ, и установил для ServerName и ServerAlias ​​ссылку vagrant share. Затем я сохранил файл и перезапустил Apache с помощью sudo service httpd restart.

Затем я вернулся к Firefox (Windows 7) и обновил странную страницу vagrantshare.com, на которую я уже заходил до редактирования этого файла. На самом деле он извлек содержимое папки sitename, которую я указал в файле httpd.conf. Так это работает! Блин круто!

Единственная проблема, с которой я столкнулся, заключается в том, что я получал это предупреждение при перезапуске Apache:

Stopping httpd:                                            [  OK  ]
Starting httpd: [Wed May 21 00:11:37 2014] [warn] NameVirtualHost *:80 has no Vi
rtualHosts

Apache запускался нормально, но я не знал, что делать с этим предупреждением. Позже я просто удалил часть NameVirtualHost *:80 из того, что добавил, и перезапустил Apache. На этот раз вообще без предупреждений.

Поймите, что это позволяет мне показывать клиенту обновления только для отдельного сайта. Это работало как для статических сайтов, так и для сайтов WordPress. Я просто изменил, где ссылка vagrantshare.com искала файлы. Я смог перейти на несколько сайтов, отредактировав файл httpd.conf и перезапустив Apache в рамках одного и того же сеанса vagrant share (время ожидания истекло). Я использую Windows, поэтому у меня одновременно были запущены две копии git-bash(msysgit). Один хостит сеанс vagrant share, а другой принимает изменения в httpd.conf после vagrant ssh входа в виртуальную машину.

Если вы собираетесь использовать это для какого-либо сайта WordPress, вам также потребуется отредактировать таблицу wp_options для этого сайта. Измените значения siteurl и home в столбце option_value на полный URL-адрес ссылки, предоставленной вам vagrant share. Вы также можете просто отредактировать эти значения в панели администратора, но я намного быстрее с MySql, поэтому я выбрал этот маршрут.

Ура! Ок, отлично. Я добился почти того, с чего хотел начать. Надеюсь, кто-нибудь сможет пролить свет на то, почему то, что я сделал, действительно работает. Я только что сделал перенаправление для этого адреса?

Кстати, когда вы закончите работу с vagrant share, не забудьте закомментировать эти строки (оставьте их, так как они вам, возможно, понадобятся позже) и перезапустите Apache. Теперь возвращайтесь к работе с тем, что клиент хочет изменить!

В любом случае, я надеюсь, что кто-то сможет ответить на вопрос «почему это сработало», который остается, и я действительно надеюсь, что это поможет кому-то на этом пути.

Спасибо,

c0p


person cOp    schedule 20.05.2014    source источник


Ответы (2)


Немного боролся с этим, но ваше обновление указало мне правильное направление.

В итоге я сделал следующее:

  1. бродячая доля
  2. ssh к виртуальной машине
  3. sudo vi /etc/apache2/sites-enabled/your-site-name.conf
  4. измените ServerName на your-generated-name.vagrantshare.com
  5. перезагрузка службы sudo apache2

ИЗМЕНИТЬ:

Если вы хотите иметь доступ к виртуальному хосту на нескольких доменах (например, домен vagranshare и ваш локальный, например example.dev), после шага 4 добавьте ServerAlias example.dev к /etc/apache2/sites-enabled/ your-site-name.conf

Спасибо, надеюсь, это поможет любому, у кого так мало знаний о сервере, как у меня.

person michaeltintiuc    schedule 14.09.2014

Измените файл WhateverItIs.conf следующим образом, добавив ServerAlias:

ServerName WhateverItIs.com
ServerAlias *.vagrantshare.com 

и теперь вы можете идти.

person Özgür    schedule 02.11.2014
comment
Спасибо, этот ответ должен быть выше - person Javier Villanueva; 16.09.2015