ukritie.org.ua

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

как настроить собственный хостинг
(1 чел.) (1) гость
  • Страница:
  • 1

ТЕМА: как настроить собственный хостинг

как настроить собственный хостинг 27.10.2009 12:48 #235

  • pro
  • Вне сайта
  • Заблокирован
  • Постов: 164
  • Репутация: 2
Иногда при администрировании сервера c WEB необходимы отдельные учетные записи для доступа к каталогам сайтов и базе данных.

Для реализации данной задачи методом проб и ошибок реализовал такой вариант:

Устанавливаемые пакеты:

- apache2+php5 для работы сайтов через веб
- сервер mysql для доступа к базе данных сайтам
- ftp сервер proftpd для доступа пользователей к содержимому сайта по ftp
- ну и phpmyadmin для редактирования пользователями базы данных mysql

доступ к cgi и остальные прописываем соответственно с надобностями

настраиваем proftpd

для начала комментируем все, что связано с анонимным доступом по ftp (тег <Anonymouse>)

Выставляем права при заливке файлов на будущий хостинг 775(для владельца и группы(пусть у нас будет хостинг) полные права)

Umask 112 002



Далее делаем доступ пользователям непостредственно в их корневой каталог:
DefaultRoot ~


Проверяем возможность перезаписи файлов
AllowOverwrite on


А также возможность изменения пользователем прав заливаемых им файлов

<Limit SITE_CHMOD>
AllowAll
</Limit>


построим наш хостинг так, чтобы пользователи по фтп смогли заливать и редактировать файлы и содержимое сайтов, и они отображались через веб-интерфейс.
для этого создаем группу hosting, и будем добавлять в нее всех пользователей, работающий с сайтами по ftp, добавим также в нее пользователя apache, из под которого работает веб-сервер.

usermod -G hosting apache

Для оптимизации и избежания множественного выполнения комманд при создании нового пользователя хостинга можно воспользоваться следующим скриптом (назовем его hostuseradd.sh):

#!/bin/sh

/usr/sbin/useradd -d /var/www/localhost/htdocs/$1 -g hosting -s /sbin/nologin $1 #создаем пользователя $1(название после скрипта), присваиваем группу, закрываем шелл
mkdir /var/www/localhost/htdocs/$1 #создаем каталог для сайта

chown $1:hosting /var/www/localhost/htdocs/$1 #выставляем владельца

chmod 775 /var/www/localhost/htdocs/$1 #необходимые права для каталога

mkdir /var/www/localhost/htdocs/$1/{htdocs,cgi-bin}
chown $1:hosting /var/www/localhost/htdocs/$1/{htdocs,cgi-bin}
chmod 775 /var/www/localhost/htdocs/$1/{htdocs,cgi-bin}

echo \'### Log file for error logging ###\'| tee /var/www/localhost/htdocs/$1/error.log
echo \'### Log file for access logging ###\'| tee/var/www/localhost/htdocs/$1/access.log


Далее можно переходить к созданию пользователя на хостинге:

1. Для создания аккаунта и чтобы выставить все необходимые права создан специальный скрипт hostuseradd.sh , с помощью которого создадим учетную запись, необходимо произвести такие действия:

/usr/sbin/hostuseradd.sh username(имя имя пользователя)

passwd username



После этого скриптом автоматически создаются папки и выставляются необходимые права на них, создается пользователь с необходимыми параметрами

Можно уже под ним заходить по FTP с указанным логином и паролем к серверу

Далее выбираем доменное имя для пользователя, в нашем случае это будет username.test.ua и создаем для него виртуальный хост в файле /etc/apache2/vhosts.d/00_default_vhost.conf

<VirtualHost *:80>
ServerAdmin Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
DocumentRoot /var/www/localhost/htdocs/username/htdocs
ServerName username.test.ua
ErrorLog /var/www/localhost/htdocs/username/error.log
CustomLog /var/www/localhost/htdocs/username/username_access.log
</VirtualHost>


В перспективе в плане развития планируется перевести создание виртуального хоста также на скрипт

2. Далее необходимо создать базу данных mysql для пользователя

Заходим в mysql под суперпользователем

mysql -u root -p


Создаем нужную нам базу

CREATE DATABASE username;


Создаем пользователя в mysql и и выставляем необходимые права

GRANT ALL PRIVILEGES ON username.* TO \'username\'@\'localhost\' identified by \'password(тут указываем пароль)\';


Применяем внесенные изменения в базу

FLUSH PRIVILEGES;


Теперь если залогиниться под вышеуказанным пользователем, ему будет видна база username в которую он может вносить изменения. Также можно настроить phpmyadmin, чтобы пользователь заходя под своей учетной записью через него в mysql мог править в случае надобности базу данных

На этом все. Буду рад услышать предложения и варианты по поводу настройки данного сервиса ))
экономьте электричетсво - выключайте Num Lock!
Изменено: 27.10.2009 13:07 от pro.
  • Страница:
  • 1
Время создания страницы: 0.21 секунд

НОВОЕ НА ФОРУМЕ

Нет сообщений для показа


Поиск

Календарь

Праздники Украины