Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #68, ИЮЛЬ 2006 г.

царь-хостинг

_MIF_ (ROOT@SECURITYLAB.CO.IL)

Спецвыпуск: Хакер, номер #068, стр. 068-044-7


zend_extension_manager.optimizer_ts="/usr/local/lib/php/20020429-zts/Optimizer_TS"

zend_extension="/usr/local/lib/php/20020429-zts/ZendExtensionManager.so"

zend_extension_ts="/usr/local/lib/php/20020429-zts/ZendExtensionManager_TS.so"

Обычно это происходит автоматически при установке, но проверить лишний раз не помешает. Теперь, по аналогии с php, нам нужно собрать еще и mod_perl. Можно, конечно, дать веб-юзерам использовать системный перл – но делать это крайне не рекомендуется, хотя бы по тем же соображениям безопасности. О производительности я уже молчу. Собираем mod_perl:

# cd /usr/ports/www/mod_perl

# make install clean

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

[Vhosts.]

Как известно, протокол HTTP 1.1 дает возможность передавать в запросе параметр Host, что позволяет держать несколько сайтов на одном IP адресе. Это называется виртуальным хостингом. Для каждого сайта, который будет у нас хоститься, мы создадим отдельный конфиг, что позволит делать гибкие настройки для каждого домена в отдельности. Первый конфиг, который мы создаем, будет служебного характера. Для начала создадим папку для конфигов, которую мы указали Apache:

# mkdir /usr/local/etc/apache/vhosts

# cd /usr/local/etc/apache/vhosts

И создаем там первый конфиг:

# touch 001.hosting.ru

Открываем конфиг и пишем:

# Мыло админа (будет показываться при HTTP ошибках)

ServerAdmin admin@hosting.ru

# Рутовая папка вхоста

DocumentRoot /home/revol.ru/web

# Домен и алиасы, по которым мы будем видеть вхост

ServerName hosting.ru

ServerAlias www.hosting.ru

ServerAlias main.hosting.ru

# Где располагаются логи

ErrorLog /var/log/www/hosting.ru -error.log

CustomLog /var/log/www/hosting.ru-custom.log combined

# Настройки .htaccess и запрет просматривать его из браузера

AccessFileName .htaccess

<Files ~ ^.ht>

Order allow,deny

Deny from all

</Files>

</VirtualHost>

Чтобы применить настройки апача и вхостов – используй команду apachectl graceful.

[MySQL.]

Теперь нам необходимо установить базу данных, в нашем случае - MySQL. Как обычно, собираем из портов, однако, в целях оптимизации, мы немного поправим Makefile.

# cd /usr/ports/databases/mysql40-server

На всякий случай сделаем бэкап Makefile

# cp Makefile Makefile.back

Открываем Makefile, находим там строчку:

--enable-thread-safe-client \

И после нее добавляем:

--with-client-ldflags=-all-static \

--with-mysqld-ldflags=-all-static \

--enable-assembler \

--with-named-thread-libs='-lpthread -D_THREAD_SAFE'

Закрываем, сохраняем и собираем порт с помощью трех магических слов – make install clean. Установка порта MySQL должна пройти без проблем. После установки топаем в /var/db/mysql и находим там несколько дефолтных конфигов:

my-huge.cnf – для серверов, работающих с огромными по размеру базами (сотни гиг) my-large.cnf – если базы просто большие :).

Назад на стр. 068-044-6  Содержание  Вперед на стр. 068-044-8