Да и WHM не нужен. Допустим, юзер вводит domain.com и хочет получить аккаунт.
Вот и делаем скрипт регистрации, который:
1) делает конфиг для web- и dns- серверов, просто подставляем в шаблоны domain.com и публикуем их.
(по желанию можно сделать юзера для
http://smbind.sourceforge.net, тогда будет возможность редактировать зоны, хотя вообщем-то это и ни к чему на бесплатном хосте)
2) добавляет запись в таблицу MySQL FTP-юзеров (откуда ProFTPd будет их таскать, дефолтный конфиг надо немного изменить, можно поглядеть
http://www.castaglia.org/proftpd/modules/mod_sql.html)будет что-нибудь типа (взял из VHCS)
SQLAuthTypes Crypt
SQLAuthenticate on
SQLConnectInfo {DATABASE_NAME}@{DATABASE_HOST} {DATABASE_USER} {DATABASE_PASS}
SQLUserInfo ftp_users userid passwd uid gid homedir shell
SQLGroupInfo ftp_group groupname gid members
SQLMinID 2000
+ ещё лимиты тоже можно таскать из базы, если сделать фри просто и фри для друзей, скажем. В последнем случае, лимит выше.
3) делает базу domain, юзера domain и случаный пасс и даёт ему права на базу
4) пишет пользователю, что всё ок и как ему зайти по FTP, какие данные для коннекта к базе и прочее.
Зачем WHM нужен, не знаю. Без неё больше сайтов влезет.
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open, copy
allow_url_fopen = Off
register_globals = Off
И вот это в php.ini чтобы проблем меньше было.