Так уж сложилось, что я жутко ленивый. Два года назад когда я приобрел себе VDS и встретился с FreeBSD 7.1 первый раз, убил две недели на настройку всего, что мне нужно было. Сейчас у меня 2*Pentium III 1GHz / RAM 1Гб / 2*SCSI 17Гб, под мои задачи он вполне подходит.
Мой любимый редактор vi. Если кто не знает как с ним работать можно везде где я указал vi заменять на свой ee,mcedit и т.д
Скрипт создания хостов.
Структура на моем сервере следующая, у каждого пользователя в хомдир лежит папка www, выглядит это так.
/home/user/www.
Скрипт внутри папки www создает каталоги с именем хоста.
Пример mk_host.sh domen.ru user
в каталоге /home/user/www будет создана папка domen.ru с директориями
Также будет создан хост в директории Apache2. По моей схеме, для каждого виртуального хоста создается отдельный конфиг.
Смотрим сам скрипт.
И на последок:
На всякий случай скрипт в оригинале .
И еще я люблю когда все лежит на своем месте и разложено по полочкам, описание остальных скриптов будет в следующей статье.
- Создание хостов
- Ротация логов Apache2
- Архивация логов Apache2 и удаление старых логов.
- Создание базы данных и добавление нового пользователя с правами только к одной базе, с генерацией нового пароля.
Мой любимый редактор vi. Если кто не знает как с ним работать можно везде где я указал vi заменять на свой ee,mcedit и т.д
Скрипт создания хостов.
Структура на моем сервере следующая, у каждого пользователя в хомдир лежит папка www, выглядит это так.
/home/user/www.
Скрипт внутри папки www создает каталоги с именем хоста.
Пример mk_host.sh domen.ru user
в каталоге /home/user/www будет создана папка domen.ru с директориями
- cgi-bin
- html
- logs
- shadow
Также будет создан хост в директории Apache2. По моей схеме, для каждого виртуального хоста создается отдельный конфиг.
Смотрим сам скрипт.
открываем новый файл
vi /root/bin/mk_host.sh
И пишем следующее.
if [ $# -eq 2 ] ; then #Здесь скрипт проверяет, введены ли параметры <br/>
<br/>
path=/usr/local/etc/apache2/Includes # Устанавливаем путь до директории где будет создан виртуальный хост.<br/>
domen=$1 #Первый параметр домен<br/>
user=$2 # Второй параметр пользователь<br/>
pathhome=/home/$user/www # Путь до веб-директории пользователя<br/>
mkdir -p $pathhome/$1/html<br/>
mkdir -p $pathhome/$1/shadow<br/>
mkdir -p $pathhome/$1/cgi-bin<br/>
mkdir -p $pathhome/$1/logs<br/>
chown -R $user:$user $pathhome/$1/ #Выставляем владельца каталогов. <br/>
#Далее создаем виртуальный конфиг <br/>
echo "<br/>
#Config for $domen<br/>
<VirtualHost *:80><br/>
DocumentRoot $pathhome/$domen/html/<br/>
ServerName $domen<br/>
ServerAlias www.$domen<br/>
ScriptAlias /cgi-bin/ $pathhome/$domen/cgi-bin/<br/>
CustomLog $pathhome/$domen/logs/web.log common<br/>
ErrorLog $pathhome/$domen/logs/error.log<br/>
</VirtualHost><br/>
#end of $domen" >>$path/$domen.conf<br/>
else<br/>
#Если пользователь при запуске скрипта не указал параметров, ему сообщается ошибка.<br/>
echo "ERROR" <br/>
echo "$0 domen name_user"<br/>
exit 1<br/>
fi
И на последок:
- Скрипт нужно выполнять с правами root или как минимум нужно иметь доступ в директории.
- Скрипт удобнее положить в свою директорию, например у меня в директории /root/bin/mk_host.sh и добавить директорию в .profile, тогда у вас будет возможность запускать скрипт с любого места не указывая прямого пути к скрипту.
- В скрипте есть только проверки на ввод двух параметров, к сожалению больше ничего не проверяется, скрипт сделан для себя, в надежде на то, что скриптом будет пользоваться опытный человек.
На всякий случай скрипт в оригинале .
И еще я люблю когда все лежит на своем месте и разложено по полочкам, описание остальных скриптов будет в следующей статье.