Создаем минихостинг на apache2-mpm-itk и pure-ftpd
Published on 19.01.2015
Для начала ставим приложения
apt-get install apache2-mpm-itk pure-ftpd
Затем сразу изолируем будущих пользователей в своих папках. Для этого pure-ftpd запускаем с ключем -A.
Для этого выполняем
echo yes > /etc/pure-ftpd/conf/ChrootEveryone
и перезапускаем сервер
/etc/init.d/pure-ftpd restart
Теперь создаем нужную структуру папок.
К примеру
cd / mkdir -m 755 sites
Затем делаем пользователя
addgroup user1
(Добавляем группу для первого юзера)
useradd user1 -d /sites/user1 -g user1 -s /usr/sbin/nologin
(Добавляем первого юзера, устанавливаем ему домашнюю директорию, добавляем во вновь созданную группу. В конце запрещаем использовать оболочку (консоль). В случае, если стоит pure-ftpd то нужно провести еще следующую настройку.)
passwd user1
(Устанавливаем пароль)
chmod 754 /sites/user1
(Правим права доступа к домашней директории)
mkdir -p -m 754 /sites/user1/public_html/
(создаем веб-директорию, устанавливаем права доступа)
mkdir -p -m 777 /sites/user1/tmp
(создаем директорию для временных файлов, устанавливаем права доступа)
chown -R user1:user1 /sites/user1/
(Рекурсивно меняем владельца домашней директории и всех вложенных)
Теперь подключим домен в апаче
<VirtualHost *:80> ServerName user1.ru DocumentRoot /sites/user1/public_html/ ErrorLog /sites/user1/error_log CustomLog /sites/site1/access_log combined # Важный момент, указываем, что апач будет работать от пользователя www-data и нашей группы site1 AssignUserId www-data site1 # open_basedirдля домашней директории пользователя, можно добавить несколько директорий при необходимости, директории разделяются двоеточием «:» php_admin_value open_basedir "/sites/user1/" # Включаем сейф-мод, я сделал это в каждом конфиге сайта для удобства отключения при необходимости. php_admin_value safe_mode "on" # Определяем нашу временную директорию как основную, вместо /tmp и устанавливаем её директорией для хранения сессий. php_admin_value upload_tmp_dir "/sites/user1/tmp" php_admin_value session.save_path "/sites/user1/tmp" </VirtualHost >
Вот по большому и все. Если вдруг надо изменить корневую директорию для пользователя, то используем следующую команду
usermod -d /sites/user2/ user1
Posted in: