Виртуальные хосты в Апаче2

Пришло мне недавно письмо от одного из читателей с просьбой написать о виртуальных хостах в Апаче. Сложного там ничего нет, а потому приведу один из своих конфигов, а после его разберем построчно. Первое, что нужно сделать – это удалить симлинк /etc/apache2/sites-enabled/default.

Потом добавляем в httpd.conf строку:

NameVirtualHost *:80

Создаем файл domain.tld.vhost в каталоге /etc/apache2/sites-available с настройками виртуального хоста:

<VirtualHost *:80>
DocumentRoot /var/www/domain.tld/web

ServerName domain.tld
ServerAlias www.domain.tld
ServerAdmin webmaster@domain.tld

ErrorLog /var/www/domain.tld/log/error.log

<Directory /var/www/domain.tld/web>
Options FollowSymLinks
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all
</Directory>

# mod_php enabled
AddType application/x-httpd-php .php .php3 .php4 .php5
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@domain.tld"
php_admin_value upload_tmp_dir /var/www/domain.tld/tmp
php_admin_value session.save_path /var/www/domain.tld/tmp
php_admin_value open_basedir /var/www/domain.tld:/usr/share/php5:/tmp

</VirtualHost>

Вот так выглядит конфиг для моего сайта. Дальше делем симлинк:

ln /etc/apache2/sites-available/domain.tld.vhost /etc/apache2/sites-enabled/domain.tld.vhost

Рестартуем Апач и все готово.

Теперь разберем сам конфиг:

  • DocumentRoot – корневой каталог сайта
  • ServerName – домен сайта
  • ServerAlias – второй домен сайта, например, с www
  • ServerAdmin – EMail администратора сайта
  • ErrorLog – где будет лежать лог-файл ошибок

Дальше идут параметры каталога сайта и тонкие настройки для PHP. Это уж разберите сами. Типа домашнее задание. :)

Постовые: газеты одессы, iwc replica, valet parking gatwick

Поделиться этой заметкой с друзьями:

Добавь меня:

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

17 комментариев(я)

  • 30.06.2009 23:40, SW сказал:

    Ну грубо говоря да.
    Там еще куча нюансов…

    • 30.06.2009 23:42, gosha сказал:

      ну да надо есче и ДНС-ку поднимать , эх ((((

      • 01.07.2009 07:00, Silver Ghost сказал:

        Не обязательно. ДНС может быть и на сторонних серверах

    • 01.07.2009 07:00, Silver Ghost сказал:

      # netstat -nap | grep 80
      покажет Вам кто занял 80-й порт.

      • 09.07.2009 22:14, sqim сказал:

        SW: у вас нет виртуальных хостов, если вы правили файл «httpd-vhosts.conf», то, возможно, он у вас не включен в основной конфиг httpd.conf (раскомментируйте строчку «Include conf/extra/httpd-vhosts.conf» (она ближе к концу в файле «httpd.conf»)).

        • 09.07.2009 22:34, gosha сказал:

          в ubuntu основной файл конфигураций apache2.conf а httpd.conf он для внесения собственных конфигураций хозяина этого серва… (и по девалту он пустой)

        • 14.10.2009 20:55, Гоша сказал:

          У меня такой вопросик создал я 2 онологичних виртуал хоста зарегил 2 доменых имени на dyndns.com и no-ip.org но почему то открывается только сайт с доменом dyndns.com а от no-ip.org не хочет … подскажите может гдето есче надо прописать чтот… ?

          • 19.10.2009 23:30, Гоша сказал:

            уже разобрался просто был глюк ссервом

            • 18.04.2010 19:52, Игорь сказал:

              Если я высталяю параметры :
              php_admin_value upload_tmp_dir /var/www/domain.tld/tmp
              php_admin_value session.save_path /var/www/domain.tld/tmp

              то призагрузке файлов большого обьёма вылетает

              PHP Error: Missing a PHP temporary folder

              знаю что это не находит директорию для загрузки временного складирования файлов… а если в php.ini пропвываю директорию а выше указаные строки коменчу все оки… но мне хотелось чтобы каждый сайт складывал свои ременые файлы в свою директорию, как это поправить ?

              • 19.04.2010 23:09, Игорь сказал:

                уже разобрался… сам

                • 7 старых комментариев не отображается. Нажмите, чтобы отобразить все.
                (Обязательно)
                (Обязательно, не публикуется)

                Только лень заставит настоящего админа настpоить все pаз и навсегда.