царь-хостинг _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 – если базы просто большие :). |