Как создать свой хостинг "с нуля" - Профиль пользователя

ОГЛАВЛЕНИЕ


Профиль пользователя

На сегодняшний день реалии таковы, что большая часть сайтов имеют кодировку Windows-1251. Применительно к вопросу вебхостинга это означает что вся локализация консоли, вебсервера и сервера базы данных должна быть ru_RU.CP1251. Для локализации консоли необходимо создать дополнительный класс russianwww в файле /etc/login.conf:

#
# Russian Web Users Accounts. Setup proper environment variables.
#
russianwww|Russian Users Accounts:\
        :charset=CP1251:\
        :lang=ru_RU.CP1251:\
        :umask=0007:\
        :tc=default:

Если мы хотим ограничить пользователя в системных ресурсах, а возникают ситуациии когда это единственный способ одновременно уместить много требовательных к ресурсам сайтов на одном сервере без передёргивания всего "одеяла" на кого либо одного можно добавить в созданный класс строки вида:

               :cputime=5m:\
        :datasize=32M:\
        :stacksize=4M:\
        :memorylocked=64M:\
        :memoryuse=96M:\
        :filesize=unlimited:\
        :coredumpsize=0:\
        :openfiles=256:\
        :maxproc=128:\
        :sbsize=unlimited:\
        :vmemoryuse=unlimited:\
        :priority=20:\
        :ignoretime@:\

Их необходимо вставить перед :tc=default: предложенные значения даны в иллюстративных целях и в Вашей системе могут быть другими и перед их установкой рекомендуется ознакомиться со страницей справочника man login.conf(5). После необходимых правок /etc/login.conf, пересоздаем базу данных:

cap_mkdb /etc/login.conf 

Для локализации Apache придется изменить файл /usr/local/sbin/apachectl внеся в него следующие строки:

#!/bin/sh
# Localization
umask 0002
LC_ALL=ru_RU.CP1251; export LC_ALL
LANG=ru_RU.CP1251; export LANG
MM_CHARSET=CP1251; export MM_CHARSET

Чтобы локализация "подхватывалась" при автозапуске, следует заменить скрипт /usr/local/etc/rc.d/apache на предлагаемый:

#!/bin/sh

case "$1" in
start)
        [ -x /usr/local/sbin/apachectl ] && /usr/local/sbin/apachectl start > /dev/null && echo -n ' apache'
        ;;
stop)
        [ -r /var/run/httpd.pid ] && /usr/local/sbin/apachectl stop > /dev/null && echo -n ' apache'
        ;;
*)
        echo "Usage: ${0##*/} { start | stop }" >&2
        exit 64
        ;;
esac

exit 0

Для сервера MySQL достаточно будет создавать пользовательские базы данных с кодировкой cp1251 и cp1251_general_ci collation:

CREATE DATABASE `u00001` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;