Первичная настройка веб-сервера под никсами

Итак, предположим, что у тебя есть серв с установленной FreeBSD. И вдруг(совсем вдруг) ты решил сделать из него мега-хостинг достойный такого крутого перца, как ты :) Ну чтож, тогда нам понадобятся дистры апача, пхп и мускула. А самое нужное - прямые руки. Держи клюв по ветру, амиго!

Что почём

Ставить будем софт не самый новый, но стабильный. Apache 1.3.x, mysql4, php-4.4.4. А кидать вот куда будем:

/www - корень апача

/www/htdocs - веб-папка апача

/www/mysql - корень мускула

/www/php - корень пхп

Установка

Чтож, начнём, я думаю с мускула, так как он дольше всех компилицо. распаковываем архив командой "tar xfz mysql-xxx.tar.gz" и переходим в каталог с распаковынными сорцами мускула. Сначала, естественно, всё это дело конфигурируем: "./configure --prefix=/www/mysql --with-unix-socket-path=/www/mysql/tmp" и ждём... Всё прошло успешно, тогда собираем. Вбиваем "make" и идём пить чай(пиво, сок:) ). Когда процесс компиляции закончится, устанавливаем: "make install". Всё, мона переходить в /www/mysql и любоваться дирами мускула :) Осталась одна весЧъ... Помнишь, при конфигурировании мускула мы вбивали "--with-unix-socket-path=/www/mysql/tmp"? Ну так вот, создай каталог /www/mysql/tmp и выстави ему права 770. Теперь или в /www/mysql/bin/ b и пуская в ход скрипт mysql_install_db - "./mysql_install_db". Этот скрипт создаст кое-какие первоначальные записи в бд. Теперь в этом же каталоге запускаем mysqld_safe - "./mysqld_safe --user=root &". Я надеюсь, ты помнишь, на кой на конце нужно поставить значок "&"? Для тех, кто не помнит - это пускает команду в фоновый режим. опция "--user" запускает мускул под определённым юзером. Я поставил рута, но ты же не лапух ушастый, сообразишь, что так делать не надо. Эт так, для примера. Чтож, вводи "top" и ищи процесс mysqld. Самое время задать пароль в бд... "/www/mysql/bin/mysqladmin -u root password toor" - задаст для рута пароль toor. Так, с мускулом разобрались, гоу дальше...

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

Итак, ставим апач... Как обычно, распаковка "tar xfz apache_xxx.tar.gz" и cd в новоиспечённую папку с сорцами могучего апача. Тут всё просто - "./configure --prefix=/www --enable-module=so". Дальше по дефлоту "make install". Всё. Сразу же поставим пхп, чтоб не трястись потом. Как обычно, распаковка "tar xfz php-4.4.4.tar.gz" и cd в папке с сорцами пхп. Конфигурируем так - "./configure --prefix=/www/php --with-mysql=/www/mysql --with-apxs=/www/bin/apxs". По-быстрому посмотрим на опции... --with-mysql - корневая дира нашего мускула. --with-apxs - не наю как объяснить... ну короче - с помощью этой опции при установке всё само пропишется в конфиги апач(ну загрузка модуля пхп или что там). Далее наш любимый "make install". Теперь копируем предпочтительный конфиг php.ini-* из дирой с сорцами в /www/php/lib. Всё...

Настройка

Всё поставили, всё сделали. Дело за малым - всё это настроить.

Итак, открываем /www/conf/httpd.conf и правим конфиг.

Начнём с поддержки пхп. мудрый "make isntall" уже сделал всё за нас и осталось добавить только одну строчку: AddType application/x-httpd-php .php

Шагаем дальше по необъятному конфигу.... Меняй NameServer на настоящее имя сервера. Птом надо изменить значение DirectoryIndex, причесать его и привести вот в такой вид : DirectoryIndex .php .html .htm

Закрывай конфиг и запуская апач командой "/www/bin/apachectl start". Если хочешь проверить правильность конфига, в этом тебе поможет эта команда - "/www/bin/apachectl configtest".

Теперь создай в веб-папке апача 2 файла - info.php и mysql.php. Они помогут проверить нам работоспособность всей этой хрени, что мы с тобой натворили.

Содержание info.php:

Код

<?php

phpinfo();

?>

Содержание mysql.php:

Код

<?php

$site = mysql_connect('localhost', 'root', 'toor');

if(!$site){ echo "Lose..."; exit; } echo "Win...";

?>

Вдалбливай в оперу/осла/мозилу адрес своего сервака, должен отобразиться корневой каталог. Теперь попробуй вбить адрес сервака + /info.php. Должна отобразиться инфа о пхп. Так же смотри mysql.php и если всё ок - выйдет сообщение Win...

Вируальные хост

Ты конечно скажешь своё куль-хаЦкерное "фи", типа больше одного сайта на хост не поставишь. Я тебе обрадую и сейчас покажу как настроить виртуальные хосты в апаче и эта иголка в заднице с односайстностью канет в лету. Открываем /www/conf/httpd.conf и идём в конец, в самый-самый низ....(страшно, правда?:) )

Первым делом раскомментируй строку NameVirtualHost, она должны выглядеть вот так - NameVirtualHost *.80

Дальше идёт описание вирутальных хостов. Здесь параметры теже, что и для "физического" хоста.

Вот пример виртуального хоста:

Код

<VirtualHost *:80>

ServerAdmin root@example.com

DocumentRoot "/www/htdocs/example.com"

ServerName example.com

</VirtualHost>

Вот и всё

Теперь у тебя, как у крутого перца, есть свой хост. Можешь развить его до полноценного хостинга, а можешь понтоваться перед прекрасным полом :). Решать тебе. Я осветил только основы установки, за допольнительной инфой - доки и маны.

Автор: SiMO

Обновлено: 13.03.2015