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

Эта запись опубликована в рубрике [ Apache, Линукс ]

Пришло мне недавно письмо от одного из читателей с просьбой написать о виртуальных хостах в Апаче. Сложного там ничего нет, а потому приведу один из своих конфигов, а после его разберем построчно. Первое, что нужно сделать – это удалить симлинк /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

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд (2 голос(ов), среднее: 2.50 из 5)
Метки: [ , ]
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

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

  • 30.06.2009 22:32, SW сказал:

    Подскажите пожалуйста, зделал все как вы указывали… Но апач выдает вот такие ошибки:

    sw@jt-net-www:/$ /etc/init.d/apache2 restart
    * Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    [Tue Jun 30 23:29:46 2009] [warn] NameVirtualHost 127.0.0.1:80 has no VirtualHosts
    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    [Tue Jun 30 23:29:46 2009] [warn] NameVirtualHost 127.0.0.1:80 has no VirtualHosts
    (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    [fail]

    • 30.06.2009 22:34, SW сказал:

      Вернее вот такое:
      sw@jt-net-www:/$ /etc/init.d/apache2 restart
      * Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
      [Tue Jun 30 23:33:59 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
      apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
      [Tue Jun 30 23:33:59 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
      (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
      no listening sockets available, shutting down
      Unable to open logs
      [fail]

      • 30.06.2009 22:51, Silver Ghost сказал:

        Permission denied: make_sock: could not bind to address 0.0.0.0:80

        Может у Вас Апач не остановился нормально?

        # killall -9 httpd
        или
        # killall -9 apache2

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

        Тоисть после проделаного по статье віше , я могу зарегиьть не сколько доменов там привязать их к айпи и у меня пару сатов будут открыватся уже по моим доменам (естествено прописав виртуал хосты) ?

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

          как-то неадекватно вы вопрос поставили…
          отвечу как смогу:
          Проделав это вы сможете на сервера апач2 хостить несколько сайтов с разными адресами…

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

            ясн, тоесть все мои сайты будут видны с инета … под разными именами

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

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

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

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

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

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

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

        Зделал так:
        sw@jt-net-www:/$ sudo killall -9 httpd
        httpd: no process killed
        sw@jt-net-www:/$ sudo killall -9 apache2
        sw@jt-net-www:/$ /etc/init.d/apache2 start
        * Starting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
        [Wed Jul 01 00:24:39 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
        (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
        no listening sockets available, shutting down
        Unable to open logs
        [fail]

        Реально не понятно в чем дело… Делал это все когда-то на винде… А щас не заводится на линуксе чего-то… Меня удивило что в файле httpd.conf было пусто до того как я добавил строку NameVirtualHost *:80
        Помогите плз, очень нужно зделать и неполучается ничего…

        • 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, Гоша сказал:

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

              (Обязательно)
              (Обязательно, не публикуется)