Назад | Перейти на главную страницу

Виртуальный хост Apache игнорируется в поле Vagrant

У меня проблема в том, что когда я навещаю http://d7.subdomain.example.org с моей хост-машины он переводит меня на apache по умолчанию Оно работает страница. Я нахожусь на хосте Mac с ящиком Ubuntu 12.04 Vagrant с поставщиком виртуальных боксов.

Я проверил сайты с поддержкой /, и сайт действительно появляется там после запуска sudo a2ensite d7.subdomain.example.org команда. Если я пойду в http://d7.subdomain.example.org/drupal/site-docroot это приводит меня в нужное место. Похоже, он вообще игнорирует мой виджет.

Мой Vagrantfile:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "precise32"

  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.vm.define "drupal" do |node|
    node.vm.hostname = "d7.subdomain.example.org"
    node.vm.network :private_network, ip: "172.22.22.26"
    node.hostmanager.aliases = [ "www.d7.subdomain.example.org" ]
  end
  config.vm.provision :hostmanager

  config.vm.synced_folder "./drupal", "/var/www/html/drupal/", type: "nfs"

  config.vm.provider "virtualbox" do |vm|
    vm.customize ["modifyvm", :id, "--memory", "2048"]
    vm.customize ["modifyvm", :id, "--cpus", "1"]
    vm.customize ["modifyvm", :id, "--cpuexecutioncap", "85"]
  end

  config.vm.provision "shell" do |script|
    script.path = "provisioner.sh"
  end


end

Мой сценарий подготовки:

#! /bin/bash
sudo apt-get update -y
sudo apt-get install apache2 -y
sudo apt-get install debconf-utils -y
debconf-set-selections <<< "mysql-server mysql-server/root_password password rootpw"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password rootpw"
sudo apt-get install mysql-server -y
mysql -uroot -prootpw -e "CREATE DATABASE mydbford7;
USE mydbford7;
SOURCE /var/www/html/drupal/setup/dump.sql;
CREATE USER 'vagrant'@'localhost' IDENTIFIED BY 'vagrant';
GRANT ALL PRIVILEGES ON mydbford7.* TO 'vagrant'@'localhost' IDENTIFIED BY 'vagrant';
FLUSH PRIVILEGES;"
sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
sudo service mysql restart
sudo apt-get install python-software-properties build-essential -y
sudo add-apt-repository ppa:ondrej/php5 -y
sudo apt-get install php5-common php5-dev libapache2-mod-php5 php5-cli php5-fpm -y
sudo apt-get install curl php5-curl php5-gd php5-mcrypt php5-mysql -y
a2enmod rewrite
sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini
cp /var/www/html/drupal/setup/myd7_vhost /etc/apache2/sites-available/d7.subdomain.example.org.conf
sudo a2ensite d7.subdomain.example.org
sudo service apache2 restart
sudo service apache2 reload

Файл виртуального хоста:

<VirtualHost *:80>
        ServerName d7.subdomain.example.org
        ServerAdmin me@example.com

        DocumentRoot "/var/www/html/drupal/site-docroot"

        <Directory "/var/www/html/drupal/site-docroot/">
                Options All
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog "/var/log/apache2/error_log"
        TransferLog "/var/log/apache2/access_log"
</VirtualHost>

Возможно, у вас есть файл default-000.conf, который испортил вашу конфигурацию виртуального хоста.

Бегать apache2ctl -S чтобы на вашем сервере был включен полный список виртуальных хостов.

Вы можете создать файл конфигурации виртуального хоста для своего проекта, выполнив следующие команды:

vhost="<VirtualHost *:80>
     ServerName site_name.local
     DocumentRoot /path/to/project

     <Directory /path/to/project>
          Order allow,deny
          Allow from all
          Require all granted
          AllowOverride All
    </Directory>

     ErrorLog ${APACHE_LOG_DIR}/sitename_error.log
     CustomLog ${APACHE_LOG_DIR}/sitename_access.log combined
</VirtualHost>"

echo "$vhost" | sudo tee /etc/apache2/sites-available/site_name.local.conf

sudo a2ensite site_name.local.conf

service apache2 restart

Затем отредактируйте файл хоста

sudo nano /etc/hosts

и добавьте свой IP-адрес localhost с именем сайта, например:

127.0.0.1       your_site_name

Теперь вы можете протестировать свой проект в браузере, набрав URL своего сайта: http: // ваше_имя_сайта /

Это оно :)