Debian, Dojo, Django, Python

Делюсь опытом в описанных технологиях. Блог в первую очередь выполняет роль памяток для меня самого.

Apache Virtual Host в CentOS (виртуальные хосты Apache)

Комментариев нет

В данной статье будет рассказано о том, как настроить Apache в CentOS и разместить несколько сайтов, используя виртуальные хосты. Все операции имеет право делать только root.

Начнем с того, что в CentOS Apache называется httpd, и, соответственно, команда для установки имеет следующий вид:

yum install httpd

Нас спросят, действительно ли мы хотим этим заняться. Отвечаем y (Yes). Можно было написать и так:

yum install httpd -i

Добавим его в автозагрузку:

chkconfig httpd on

Все операции с демоном httpd осуществляются командой

/etc/init.d/httpd %команда%

или так

service httpd %команда%

Например, так можно перезапустить сервис:

service httpd restart

Список доступных команд можно посмотреть вот так:

service httpd

Все настройки Apache в CentOS хранятся в подкаталогах каталога /etc/httpd

В каталоге conf находится главный конфигурационный файл - httpd.conf.

Рассмотрим только основные опции, которые необходимы. Все, о чем здесь не будет сказано, оставляем по-умолчанию.

Директива Listen указывает, какие порты будет слушать сервер. По умолчанию там стоит значение 80, т. е. все соединения идут с 80-го порта (мировой стандарт, если что). Если у нас специфическая ситуация, то можно поменять это значение, либо добавить другие порты, написав, например, следующее:

Listen 80
Listen 81
Listen 192.168.1.25:82

Что, собственно, здесь происходит? Listen 81 указывает, что нужно слушать также и 81 порт. Строка Listen 192.168.1.25:82 заставляет сервер прослушивать запросы, приходящие с сетевого интерфейса с адресом 192.168.1.25 через 82-ой порт.

В строке

Include conf.d/*.conf

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

ServerAdmin root@localhost

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

DirectoryIndex index.html index.html.var

указывает, в каком порядке искать страницы сайта, если пользователь ввел только адрес. Немного модифицируем эту строку для разработки на php:

DirectoryIndex index.php index.html index.html.var

Строки для языков у меня стерты все, за исключением двух:

AddLanguage en .en
AddLAnguage ru .ru

и соответственно

LanguagePriority ru en

Снимаем комментарий вот тут:

AddDefaultCharset UTF-8

и вот тут

NameVirtualHost *:80

Для тех, кто собирается программировать на Python, используя Django, рекомендую добавить в самом конце строку

WSGIRescrictStdout Off

Перейдем в каталог /etc/httpd/conf.d/.

Здесь мы видим несколько файлов с расширением .conf. Обычно там лежат default.conf, welcome.conf и php.conf (если уже установили PHP). Для добавления нового сайта достаточно скопировать

default.conf

и немного изменить его:

cp default.conf mysite.conf
vim mysite.conf

Внутри файла достаточно написать следующее:

<VirtualHost *:80>
    ServerName www.demo1.ru
    ServerAlias demo1.ru
    ServerAdmin admin@otheremail.com #Указываем адрес администратора этого сайта

    DocumentRoot "/var/www/demo1"
    <Directory "/var/www/demo1">
        Order allow,deny
        Allow from all
    </Directory>

    LogLevel debug #По умолчанию для всего сервера стоит значение warn, т. е. писать в лог только события не ниже предупреждения. Для разработчиков сайтов я рекомендую ставить именно debug

    ErrorLog "/var/www/demo1/log/apache_error.log" #Эти две директивы необязательны, но они помогут разобраться, какие ошибки происходят на сайте
    CustomLog "/var/www/demo1/log/apache_access.log" combined #Лог с запросами к серверу: страницы, ресурсы и т. д.

    #FileETag none
</VirtualHost>

Также рекомендую добавить следующую запись в настройки виртуального хоста:

Alias / "/var/www/demo1"

Тем самым мы указываем, какую директорию считать корнем сайта.

Внимание! Каталог /var/www/demo1/log/ должен существовать, иначе при перезапуске apache выдаст сообщение об ошибке и откажется стартовать! После всего этого перезагружаем конфигурацию apache (быстрее, чем полный перезапуск с параметром restart, особенно если с сайтом работают клиентские машины):

/etc/init.d/httpd reload

Теперь, чтобы обратиться к данному сайту по адресу, необходимо прописать сопоставление в файле hosts

Linux:   /etc/hosts
Windows: C:\Windows\System32\Drivers\etc\hosts

Любым текстовым редактором добавляем туда строки (у меня адрес сервера 192.168.1.1):

192.168.1.1 demo1.lo
192.168.1.1 www.demo1.lo

Теперь, когда я буду вводить в строке браузера demo1.lo, он будет автоматически запрашивать на сервере нужное содержимое. Обратите внимание, по умолчанию apache ищет в каталоге сайта файл index.html.

Комментариев нет :

Отправить комментарий