Pull to refresh

Автоматизация веб-сервера FreeBSD8 Apache2+Mysql5 Часть 1

Lumber room
Так уж сложилось, что я жутко ленивый. Два года назад когда я приобрел себе VDS и встретился с FreeBSD 7.1 первый раз, убил две недели на настройку всего, что мне нужно было. Сейчас у меня 2*Pentium III 1GHz / RAM 1Гб / 2*SCSI 17Гб, под мои задачи он вполне подходит.

  1. Создание хостов
  2. Ротация логов Apache2
  3. Архивация логов Apache2 и удаление старых логов.
  4. Создание базы данных и добавление нового пользователя с правами только к одной базе, с генерацией нового пароля.


Мой любимый редактор 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



И на последок:
  1. Скрипт нужно выполнять с правами root или как минимум нужно иметь доступ в директории.
  2. Скрипт удобнее положить в свою директорию, например у меня в директории /root/bin/mk_host.sh и добавить директорию в .profile, тогда у вас будет возможность запускать скрипт с любого места не указывая прямого пути к скрипту.
  3. В скрипте есть только проверки на ввод двух параметров, к сожалению больше ничего не проверяется, скрипт сделан для себя, в надежде на то, что скриптом будет пользоваться опытный человек.


На всякий случай скрипт в оригинале .

И еще я люблю когда все лежит на своем месте и разложено по полочкам, описание остальных скриптов будет в следующей статье.
Tags:
Hubs:
Total votes 27: ↑21 and ↓6 +15
Views 592
Comments Comments 9