Настройка сервера под хостинг нескольких сайтов

Тема в разделе "Администрирование серверов", создана пользователем Symbool, 17.01.16.

  1. Symbool

    Symbool Участник

    Сообщения:
    29
    Репутация:
    11
    Рейтинг:
    +13 / -0
    Итак, еще один быдлопост по настройке сервера. Пардоньте за фигуры речи, литературным владею не очень.

    Итак, иногда встает такая дилемма - есть мощный сервер, на него нужно бросить несколько сайтов.
    Есть 2 решения:
    1. Поставить какую нибудь панельку.
    2. Настроить своими руками виртуальные хосты и прочее.

    Панельки сейчас дорогие, поэтому решать нашу проблему будем танцами с бубном и SSh.

    Итак, имеется:
    1. Машина с CentOS 6
    2. на машине установлен и запущен апач.

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

    Манипулировать будем настройками апача.
    Так что первым шагом делаем бэкап файла конфигураций апача по адресу /etc/httpd/conf/httpd.conf

    Теперь можно приступить к настройке.

    Для начала в файле httpd.conf ищем строку:
    Код:
    #NameVirtualHost *:80
    
    И убираем значок #, тем самым разкомментировав эту самую строку.

    Далее ищем секцию, подобную следующей:
    Код:
    <VirtualHost>
    #ServerAdmin admin@localhost.com
    DocumentRoot /var/www/html
    ServerName server1
    # ServerAlias www.server1.ru
    # ErrorLog logs/ErrorLogs
    # CustomLog logs/CommonLogs common</VirtualHost>
    
    Данная секция отвечает за конфигурацию виртуального хоста, одного из многих.

    Разберемся, что значит каждая из строк:

    Код:
    #ServerAdmin admin@localhost.com
    
    Адрес почты администратора сервера, который будет показываться при различного рода ошибках пользователю.

    Код:
    DocumentRoot /var/www/html
    
    Путь до директории текущего виртуального хоста

    Код:
    ServerName server1
    
    Имя сервера, или же хост

    Код:
    # ServerAlias www.server1.ru
    
    Имя алиаса хоста

    Код:
    # ErrorLog logs/ErrorLogs
    
    Адрес до файла с логами ошибок

    Код:
    # CustomLog logs/CommonLogs common
    
    Адрес логов доступа и другой технической информации.

    Теперь, собственно, осталось только создать виртуальные хосты своими ручками.

    Пример конфигурации:

    Код:
    NameVirtualHost *:80  #апач слушает 80 порт
    <VirtualHost *:80>
    # ServerAdmin webmaster @ example.com
    DocumentRoot /var/www/mysite1.ru
    ServerName mysite1.ru
    ServerAlias www.mysite1.ru
    # ErrorLog logs/mysite1.ru-error_log
    # CustomLog logs/mysite1.ru-access_log common
    
    
    # ServerAdmin webmaster @ example.com
    DocumentRoot /var/www/mysite2.ru
    ServerName mysite2.ru
    ServerAlias mysite2.ru
    # ErrorLog logs/mysite2.ru-error_log
    # CustomLog logs/mysite2.ru-access_log common
    </VirtualHost>
    
    Теперь перезапускаем вебсервер командой:
    Код:
    service httpd restart
    
    Вуаля, все работает.

    Примечание:
    1. В случае, если в DocumentRoot хоста не будут присутствовать файлы для обработки нам отдаст дефолтную страничку веб-сервера
    2. Так же существует возможность, что если не существует директория запрашиваемого хоста, или дефолтного хоста, нам будет отображаться первый записанный в конфигурации хост.

    В следующей теме научимся реализовывать автоматическое добавление виртуальных хостов.

    Спасибо за внимание, надеюсь помог.
     
    • Мне понравилось Мне понравилось x 1
  2. pbrovin

    pbrovin Гость

    Репутация:
    0
    Рейтинг:
    +0 / -0
    А панель поставить какую то не проще
     
  3. Symbool

    Symbool Участник

    Сообщения:
    29
    Репутация:
    11
    Рейтинг:
    +13 / -0
    Проще, конечно, если ты регулярно шляешься по серверу и что то делаешь, ну и денбги на тот же ISP есть, конечно. А те же Vesta и подобные то еще унылое говно.
    Мне, к примеру, удобнее сделать что то, по SSH, ливать файлы по FTP.