Вернуться   BBS SyS-AdmiN > Технический > Программный > Perl
Регистрация Правила форумаДоска почета Пожертвования Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Perl Perl-кодинг, советы и т.п.

Рекламный блок!
Если Вы хотите поддержать развития данного ресурса, но не имеете возможности помочь финансово, то перейдите по ссылкам указаным ниже. Чем чаще будете переходить тем больше Вы поможете развитию проэкта. Что бы прочитать это объявление полностью, нажмите на кнопку ниже

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 19.08.2008, 02:22   #11 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
но apache работает от user:user

Из этого получается что ты пишешь не панельку, а просто вебморду.
Хостинг-панель не должна зависеть от сервайсов. Т.е. должен быть один родительский демон, который уже судоит свой обработчик по типe апача под тем пользователем, под которым залогинился.
Т.е. у тебя:
1) некий демон panel запущеный от daemon:daemon, который слушает некий порт, и по httpS отдает тебе страничку логина.
2) По успешной авторизации (сверка логина/пароля с бд/ "/etc/shadow" / ещечтото) спавнит чайлда с помощью su -u login -p passwd
3) Чайлд, не что иное как панель для хостинга. Т.е. это отдельный демон который управляется по httpS

Вот немного теории. Пока хватит) Если чего, еще что-нить подскажу
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 19.08.2008, 05:32   #12 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

я хотел спросить про ньюанс про аккаунты ftp

чтобы добавить аккаунт надо добавить пользоватея в систему! и права надо поставить для него, но просто апаче работать не будет тогда на тех файлх от другого пользователя который положет файлы? или будет?

==============================

примрено подробно как я хотел сделать:

1) регистрируеться просто ник и пароль

(работает примерно как это сессии , то есть видно кто зашел и что у него есть)

2) дальше заходит юзер добавляет сайт, пишет в поле nameserver, нажимет кнопку далее, в этом же скрипте генериться пользователь который будет в системе условно из случайных чисел (для безопасности), записывает все это в таблицу, помечает в один столбик, типо что сайт не добавлен еще!

3) в cron загружаеться через 10 мин скрипт от рута который смотрет стобец в котором отмечены добавленые и не добавленные сайты, если есть не добавленные - добавляет (содает каталог вносит в таблицу с которой работает apache + OutOfOrder.cc :: mod_vhost_dbi Documentation) и в конце отмечает как добавленные)

4) если нужно изменить, то изменяет вносится напрямую в бд, перет тем пересматриваеться регулярное выражение чтобы глюков не было с апачем

5) изменение проверки разные и т.д. во всех модулях

5) добавляет пользователя ftp к каталогу на котором сайт работает и т.д. и БД в MySQL и PostgreSQL

6) Просмотр логов postfix,proftp,apache, все логи занес в mysql, типо постранично выводиться, графики строит и т.д.

7) cron и т.д.

8) dns(bind) + mysql

9) email (таблица с под postfxiadmin)

10) и т.д и т.д.


это всё работает от web пользователя системе, если надо что-то выполнить от рута, то через sudo как вариант.

Проблема в том что программа статистики AWStats и другие работать не будут елси логи будут в БД? (но если логи тарить все время, раз в сутки, будет ли эта программа работаеть или надо тарить раз в месяц надо что программа статистики работала?)

появился вопрос ставить ли apache + mod_vhost_dbi + mod_log_sql не плохо выглядет и на 2.2.8 работает или использовать текстовый файл?? как аналоги работают?? вот как раз недавно нашел модуль
Apache::Admin::Config - A module to read/write Apache like configuration files - search.cpan.org
тоже самое про bind, или тут все равно пускай в бд стоит?

схема нормальная или нет?

Цитата:
Сообщение от cooler Посмотреть сообщение
1) некий демон panel запущеный от daemon:daemon, который слушает некий порт, и по httpS отдает тебе страничку логина.

если нужно от рута что-то запустить, то как тогда?

Последний раз редактировалось CISCO, 19.08.2008 в 05:44.
CISCO вне форума   Ответить с цитированием
Старый 19.08.2008, 09:15   #13 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
если нужно от рута что-то запустить, то как тогда?

читай пункт 2

В том, что ты описал есть один очень большущий баг.. Твоя т.н. панель будет зависить от апача. Вот простой пример. Когда ты добавил что-нить в конфиг апача, его необходимо рестартонуть. Даже при грацефул рестарте все сесии обнуляются. А теперь представь себе свою панель на тазике с 100 пользователями. Один из них редактирует виртуал-хост, и апач перезагружается. Следовательно все, что делали остальные 99 пользователей будет похерено. И что же это тогда за панель?


Цитата:
Сообщение от CISCO Посмотреть сообщение
примрено подробно как я хотел сделать

Все-таки тебе прийдется делать так как я описал (если хочешь сделать что-то толковое). Я тебе назову хотя бы одну такую панель написаную на перле (со вставками шелл-скриптов). Cpanel. Там демон. И он не зависит ни от аапча ни от другого какого-нибудь предоставляемого сервиса.

Хотя делай как хочешь.
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 19.08.2008, 10:59   #14 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

cpanel, plesk платная, скачать не смогу, исходники можно посмотреть?

еще где-то была какая-то беплатная с сишным демоном, надо будет поискать, посомтреть
CISCO вне форума   Ответить с цитированием
Старый 19.08.2008, 17:12   #15 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
исходники можно посмотреть

если бы исходники можно было посмотреть, думаешь все бы покупали? =))))
В цпанеле основной бинарь упакованый компиленый перловый файлик.. В плеске не знаю, но скорее всего тоже..
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 20.08.2008, 22:57   #16 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

а как его правильно перегрузить apache22?

в мануалах написано через грацефул!
(apache очень извесный, если бы можно было, то поставили бы так чтобы сессии не обрывались...)

так эта cpanel панель бинарная чтоли, после установке там исходного кода не видно?

если кто-то может посомтреть как apache22 перегружаеться в сpanel, ispmeneger или в аналогичных?

UPD:
Код:
# /usr/local/etc/rc.d/apache22 graceful
вот это ничего не разрывает... только что качал файл и перегрузил apache22, не разорвалось...

это apachectl graceful разрывает

Последний раз редактировалось CISCO, 21.08.2008 в 06:03.
CISCO вне форума   Ответить с цитированием
Старый 21.08.2008, 08:31   #17 (permalink)
Злой Админ
 
Аватар для cooler
 
Регистрация: 16.11.1984
Сообщений: 115
Вы сказали Спасибо: 3
Поблагодарили 13 раз(а) в 13 сообщениях
cooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспоримаcooler репутация неоспорима
Отправить сообщение для cooler с помощью ICQ
По умолчанию

Цитата:
Сообщение от CISCO Посмотреть сообщение
вот это ничего не разрывает... только что качал файл и перегрузил apache22, не разорвалось

Если он ничего не разрывает, то
Код:
# cat /usr/local/etc/rc.d/apache22
в студию.
__________________

Полная подпись
cooler вне форума   Ответить с цитированием
Старый 23.08.2008, 06:14   #18 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

Код:
#!/bin/sh
#
# $FreeBSD: ports/www/apache22/files/apache22.sh.in,v 1.5 2007/09/18 20:03:15 clement Exp $
#

# PROVIDE: apache22
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf to enable apache22:
# apache22_enable (bool):      Set to "NO" by default.
#                             Set it to "YES" to enable apache22
# apache22_profiles (str):     Set to "" by default.
#                              Define your profiles here.
# apache22limits_enable (bool):Set to "NO" by default.
#                             Set it to yes to run `limits $limits_args`
#                             just before apache starts.
# apache22_flags (str):        Set to "" by default.
#                             Extra flags passed to start command.
# apache22limits_args (str):   Default to "-e -C daemon"
#                             Arguments of pre-start limits run.
# apache22_http_accept_enable (bool): Set to "NO" by default.
#                             Set to yes to check for accf_http kernel
#                             module on start up and load if not loaded.
. /etc/rc.subr

name="apache22"
rcvar=`set_rcvar`

start_precmd="apache22_precmd"
restart_precmd="apache22_checkconfig"
reload_precmd="apache22_checkconfig"
reload_cmd="apache22_graceful"
graceful_cmd="apache22_graceful"
gracefulstop_cmd="apache22_gracefulstop"
configtest_cmd="apache22_checkconfig"
command="/usr/local/sbin/httpd"
_pidprefix="/var/run/httpd"
pidfile="${_pidprefix}.pid"
required_files=/usr/local/etc/apache22/httpd.conf

[ -z "$apache22_enable" ]       && apache22_enable="NO"
[ -z "$apache22_profiles" ]     && apache22_profiles=""
[ -z "$apache22_flags" ]        && apache22_flags=""
[ -z "$apache22limits_enable" ] && apache22limits_enable="NO"
[ -z "$apache22limits_args" ]   && apache22limits_args="-e -C daemon"
[ -z "$apache22_http_accept_enable" ] && apache22_http_accept_enable="NO"

apache22_accf() {
	retcode=0
	if checkyesno apache22_http_accept_enable
	then
		/sbin/kldstat -v | grep accf_http 2>&1 > /dev/null
		retcode=${?}
		if [ ${retcode} -ne 0 ]
		then
			/sbin/kldload accf_http 2> /dev/null
			retcode=${?}
		fi
	else
		apache22_flags="${apache22_flags} -DNOHTTPACCEPT"
	fi
	[ ${retcode} -ne 0 ] && echo "Unable to load accf_http module"
	return ${retcode}
}

load_rc_config $name

if [ -n "$2" ]; then
	profile="$2"
	if [ "x${apache22_profiles}" != "x" ]; then
		pidfile="${_pidprefix}.${profile}.pid"
		eval apache22_configfile="\${apache22_${profile}_configfile:-}"
		if [ "x${apache22_configfile}" = "x" ]; then
			echo "You must define a configuration file (apache22_${profile}_configfile)"
			exit 1
		fi
		required_files="${apache22_configfile}"
		eval apache22_enable="\${apache22_${profile}_enable:-${apache22_enable}}"
		eval apache22_flags="\${apache22_${profile}_flags:-${apache22_flags}}"
		eval apache22_http_accept_enable="\${apache22_${profile}_http_accept_enable:-${apache22_http_accept_enable}}"
		eval apache22limits_enable="\${apache22limits_${profile}_enable:-${apache22limits_enable}}"
		eval apache22limits_args="\${apache22limits_${profile}_args:-${apache22limits_args}}"
		apache22_flags="-f ${apache22_configfile} -c \"PidFile ${pidfile}\" ${apache22_flags}"
	else
		echo "$0: extra argument ignored"
	fi
else
	if [ "x${apache22_profiles}" != "x" -a "x$1" != "x" ]; then
		for profile in ${apache22_profiles}; do
			echo "===> apache22 profile: ${profile}"
			/usr/local/etc/rc.d/apache22 $1 ${profile}
			retcode="$?"
			if [ "0${retcode}" -ne 0 ]; then
				failed="${profile} (${retcode}) ${failed:-}"
			else
				success="${profile} ${success:-}"
			fi
		done
		exit 0
	fi
fi

if [ "${1}" != "stop" ] ; then \
	apache22_accf || apache22_flags="${apache22_flags} -DNOHTTPACCEPT"
fi

apache22_requirepidfile()
{
	if [ ! "0`check_pidfile ${pidfile} ${command}`" -gt 1 ]; then
		echo "${name} not running? (check $pidfile)."
		exit 1
	fi
}

apache22_checkconfig()
{
	if test -f /usr/local/sbin/envvars
	then
		. /usr/local/sbin/envvars
	fi

	echo "Performing sanity check on apache22 configuration:"
	eval ${command} ${apache22_flags} -t
}

apache22_graceful() {
	apache22_requirepidfile

	echo "Performing a graceful restart"
	eval ${command} ${apache22_flags} -k graceful
}

apache22_gracefulstop() {
	apache22_requirepidfile

	echo "Performing a graceful stop"
	eval ${command} ${apache22_flags} -k graceful-stop
}

apache22_precmd() 
{
	apache22_checkconfig

	if checkyesno apache22limits_enable
	then
		eval `/usr/bin/limits ${apache22limits_args}` 2>/dev/null
	else
		return 0
        fi

}

extra_commands="reload graceful gracefulstop configtest"
run_rc_command "$1"
вот не плохая:
GPLHost:>_ Web hosting open source (GPL) control panel download areas

бесплатные и для freebsd я нашел только 3-4 штуки

Последний раз редактировалось CISCO, 23.08.2008 в 08:18.
CISCO вне форума   Ответить с цитированием
Старый 23.08.2008, 06:18   #19 (permalink)
Пользователь
 
Регистрация: 13.05.2008
Сообщений: 68
Вы сказали Спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
CISCO на пути к лучшему
По умолчанию

подскажите пожалуйста, кто добавлял, как лучше всего добавить еще один аккаунт ftp?


я вот пробую не получаеться!! то есть в одном каталоге два пользователя работать не хотят!

нужно сделать просто еще один каталог, чтобы он был подкаталогом /home/usr0/usr1/ ?

proftp+ MySQL и pureftp + MySQL, видел везде есть неограниченное количество аккаунтов для ftp, в общем не знаю как лучше сделать чтобы было больше одного аккаунта!!

нужно добавлять пользователя в систему чтобы сделать еще один аккаунт!?

Код:
INSERT INTO `users_table` VALUES(2, 'wowa','d4gfhf', 'ftp',
'1000', '1000', '/usr/users/wowa', '/sbin/nologin',0,0,0,0)
и нужно поставить права доступа на файлы и каталоги для аккаунта ftp, но apache работает от user:user, и получаеться что apache работать не будет от другого пользователя с тем каталогом?!

как на других панелей делаеться? как тут сделать чтобы было несколько аккаунтов ftp?

Последний раз редактировалось CISCO, 26.08.2008 в 07:26.
CISCO вне форума   Ответить с цитированием