Хостинг на LinuX
Настройка хостинга для пользователей сети.
Довольно примитивный, потому как для домашней сети врядли понадобится большее.
Вобщем громко сказано - ХОСТИНГ
просто дополнительный бонус для юзверей, может быть и платный, кому как повезёт
:)

Будем делать места для размещения сайтов юзверей с поддержкой CGI+HTML+PHP

Я это делал на LinuX RedHat 7.2

Нам понадобится:
1. Apache - вебсервер, ессессно под линух
2. PHP - для обработки оного
3. Proftpd - фтп сервер для линуха
4. Линуксовый сервер, эта статья :)


Где это всё брать?
Apache - http://www.apache.lexa.ru
PHP - http://www.php.net/downloads.php
Proftpd - http://www.proftpd.net - можно отсюда , а тут квоты есть.

MySQL - http://www.mysql.com качаем rpm'ку, чтобы не мучаться, хотя бывает и наоборот.

Версии? Я брал
Apache_1.3.26
PHP-4.2.1
Proftpd-1.27
MySQL-3.23.53a

Приступим, убедясь что файлы:
php-4.2.3.tar.gz
apache_1.3.26rusPL30.15.tar.gz
proftpd-1.2.6.tar.gz

лежат в папке /installs
 
cd /installs
rpm -i mysql-3.23.53a.rpm //или с версией
rpm -i mysql-client-3.23.53a.rpm
rpm -i mysql-devel-3.23.53a.rpm

ставим пароль и всё.
 
cd /installs
gunzip apache_1.3.26rusPL30.15.tar.gz
tar -xvf apache_1.3.26rusPL30.15.tar
cd apache_1.3.26rusPL30.15
./configure -- prefix=/www --enable-module=so
make
make install
cd ..
gunzip php-4.2.1.tar.gz
tar -xvf php-4.2.1.tar
cd php-4.2.1
./configure --with-mysql --with-apxs=/www/bin/apxs
make
make install
cp php.ini-dist /usr/local/lib/php.ini


теперь залазим в /www/conf/httpd.conf и добавляем:
 
AddType application/x-httpd-php .php .php3 .phtml
LoadModule php4_module libexec/libphp4.so
 
cd /
gunzip proftpd-1.2.6.tar.gz
tar -xvf proftpd-1.2.6.tar
cp /mod_quota.c /proftpd-1.2.6/modules
cd proftpd-1.2.6
./configure --prefix=/ftp --with-modules=mod_quota 

/*если качали отсюда, то всё ок, если нет, то ищите mod_quota.c и дерзайте. Можно и без него. Он позволяет
ограничивать размер места на диске, т.е. то что юзверь может закачать под видом сайта*/

make
make install
cd /ftp/etc

и правим proftpd.conf

Я у себя удалил в нём возможность подключения под Anonymous

group ftp //ну или какой там нужен...
user ftp
DefaultRoot ~ //Это означает, что каждый коннектящийся будет попадать только в свою домашнюю директорию. Шаг вправо, шаг влево - расстрел :) Он просто не может выйти.

Далее можем прописать лимиты на дисковое пространство. Но для ентого надобно чтобы линух сам поддерживал квоты.

При конфиге ядра просто выставить: Quota support (CONFIG_QUOTA) [n] y

А вобще-то при установке линуха оно уже есть и страдать не нужно.

Меняем файл /etc/fstab: в первой строке или где там нужно (для какого раздела) после defaults через запятую пишем usrquota. Т.е. так: defaults,usrquota.

перезагружаем.... пишет про сбой.

quotacheck -mvf /

вот после ентой перезагрузки всё должно работать

Теперь в /ftp/etc/proftpd.conf можно прописать:
 
Quotas On
DefaultQuota 1048576 //в байтах

Теперь правим /etc/defaults/adduser чтобы по умолчанию домашняя директория создаваемого юзверя была /www/htdocs/
 
adduser kvazar
passwd kvazar и вводим пароль для ентого юзверя
chmod 777 /www/htdocs/kvazar

Создаём в /www/htdocs/kvazar папку cgi-bin
chmod 777 /www/htdocs/kvazar/cgi-bin

И соответственно на каждую cgi-bin в /www/conf/httpd.conf прописываем
Options ExecCGI
Order allow,deny
Allow from all

Пробуем!
/www/bin/apachectl start
/ftp/bin/proftpd
если всё работает, значит радуемся :)

и не забываем про безопасность, хотя бы open_basedir, чтобы пользователь не мог ходить в другие места, кроме отведенных ему
Quarcel
2004-08-09 13:37:00
Avatar
Надо добавить, что нужно следить за правами доступа, надо чтоб пользователь не мог ничего читать(а уж тем более писать) вне своей папки
You should to log in

loading