Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
LANG=ru_RU.CP1251; export LANG
MM_CHARSET=CP1251; export MM_CHARSET
Для сервера MySQL достаточно будет создавать пользовательские базы данных с кодировкой cp1251 и cp1251_general_ci collation:
CREATE DATABASE `u00001` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Система каталогов пользователей
Как уже было описано в первой части статьи (см. №4 за 2007 год), пользователи виртуального хостинга размещаются на отдельном разделе /home в каталоге www. Если с течением времени свободное место в /home/www закончится, мы сможем установить в сервер дополнительный физический диск и смонтировать его в /home/www1. При этом общая схема работы хостинга не изменится, и дополнительная настройка не понадобится.
Для того чтобы пользователи не имели доступа к «чужим» данным, необходимо правильно выставить права и владельцев каталогов. Такая настройка каталогов пользователей – очень важный момент, поэтому остановимся на ней подробнее.
Итак, пользователи не должны иметь доступ к каталогам друг друга, но при этом надо позаботиться о доступности этих данных веб-серверу. К счастью, механизм UNIX permissions позволяет решить эту проблему: мы создадим специальную группу, в которую будут входить пользователи веб-хостинга и пользователь, от которого запущен веб-сервер Apache:
pw groupadd virtwww -M www
Создаем каталоги:
mkdir -p /home/www
chown root:wheel /home/www
Права на каталог /home/www должны быть 0711, чтобы нельзя было получить список файлов/каталогов внутри. Пользователи могут войти в каталог, но не могут получить листинг.
Создаем пользователя нашего веб-хостинга:
pw useradd u00001 -g virtwww -d /home/www/u00001 -s /usr/local/bin/bash -L russianwww -m
pw groupadd u00001 -M u00001
Таким образом, каждый пользователь имеет две группы: первичную – virtwww и дополнительную, совпадающую по имени с именем пользователя.
Устанавливаем права на домашний каталог пользователя:
chmod 04710 /home/www/u00001
chown u00001:www /home/www/u00001
При таких правах на каталог никто, кроме пользователя u00001 и веб-сервера, не будет иметь доступа к данным пользователя, а созданные внутри файлы и каталоги будут наследовать ID и GID владельца.
Для хранения лог-файлов мы выберем каталог /var/log/apache.
Именно здесь нам потребуется введенная дополнительно группа у пользователя хостинга: при её помощи мы выдадим права на просмотр лог-файлов.
Создаем каталог, в котором будут храниться лог-файлы:
mkdir -p /var/log/apache
chmod 0711 /var/log/apache
chown root:wheel /var/log/apache
mkdir /var/log/apache/u00001
chmod 0750 /var/log/apache/u00001
chown root:u00001 /var/log/apache/u00001
Теперь осталось расписать процедуру заведения виртуального хоста для пользователя. Сделаем это на примере сайта example.ru:
1. Создаем каталоги:
mkdir -p /home/www/u00001/example.ru/www
mkdir -p /home/www/u00001/example.ru/cgi
mkdir -p /home/www/u00001/example.ru/tmp