The Prohacker
Verified User
- Joined
- May 23, 2003
- Messages
- 103
I'm always glad to see a new product come to market, it spurs improvement in current and the newly released product, which in the end helps everyone..
Since you are still early in development of your control panel, I thought I might throw some ideas into the pot that might help in the general aspect of things..
1) Template driven configurations - Have each config file generated by DirectAdmin produced of an editable template..
So you could have vhost.conf.tpl for an Apache VirtualHost configuration:
<VirtualHost {IP}>
ServerName {DOMAIN}
ServerAlias www.{DOMAIN} *.{DOMAIN}
ServerAdmin webmaster@{DOMAIN}
DocumentRoot /home/{USERNAME}/public_html
BytesLog domlogs/{DOMAIN}-bytes_log
CustomLog domlogs/{DOMAIN} combined
User {USERNAME}
Group {SITEGROUP}
php_admin_value safe_mode 1
php_admin_value open_basedir /home/{USERNAME}/
php_admin_value sendmail_path ‘/usr/sbin/sendmail -t -i -L {DOMAIN}’
ScriptAlias /cgi-bin/ /home/{USERNAME}/public_html/cgi-bin/
</VirtualHost>
Or a dns.conf.tpl formated along the same lines..
2) Script chrooting - Part of my second suggestion is in the first suggestions code.. By default generate a open_basedir jail for PHP in each virtual host, and to atleast use suExec to make CGI run as the user..
suExec really isn't the perfect answer though because it cannot keep scripts from running outside their allowed home directory.. CGIWrap as I remember can.. But I haven't used it in a very long time..
3) Admin related scripts - One of the very strong points of cPanel is that it comes with things like buildapache.sea to help setup Apache/PHP/etc.. And also the extra stuff in /scripts can be an amazing help when problems come up..
4) Seperate MySQL User and Database Creation - Just doing a quick look over the user side of the panel, a user is created each time a database is.. I see that as rather waste full, and sometimes I want to create users to only access some databases..
On a side note to this, a basic permission handler would be great, sometimes I make a MySQL user that doesn't need write access to the database, just read, to do that I have to login as root and change the permissions by hand with cPanel...
Its kinda late, but I may think of a few extra things tonight or tomorrow..
Since you are still early in development of your control panel, I thought I might throw some ideas into the pot that might help in the general aspect of things..
1) Template driven configurations - Have each config file generated by DirectAdmin produced of an editable template..
So you could have vhost.conf.tpl for an Apache VirtualHost configuration:
<VirtualHost {IP}>
ServerName {DOMAIN}
ServerAlias www.{DOMAIN} *.{DOMAIN}
ServerAdmin webmaster@{DOMAIN}
DocumentRoot /home/{USERNAME}/public_html
BytesLog domlogs/{DOMAIN}-bytes_log
CustomLog domlogs/{DOMAIN} combined
User {USERNAME}
Group {SITEGROUP}
php_admin_value safe_mode 1
php_admin_value open_basedir /home/{USERNAME}/
php_admin_value sendmail_path ‘/usr/sbin/sendmail -t -i -L {DOMAIN}’
ScriptAlias /cgi-bin/ /home/{USERNAME}/public_html/cgi-bin/
</VirtualHost>
Or a dns.conf.tpl formated along the same lines..
2) Script chrooting - Part of my second suggestion is in the first suggestions code.. By default generate a open_basedir jail for PHP in each virtual host, and to atleast use suExec to make CGI run as the user..
suExec really isn't the perfect answer though because it cannot keep scripts from running outside their allowed home directory.. CGIWrap as I remember can.. But I haven't used it in a very long time..
3) Admin related scripts - One of the very strong points of cPanel is that it comes with things like buildapache.sea to help setup Apache/PHP/etc.. And also the extra stuff in /scripts can be an amazing help when problems come up..
4) Seperate MySQL User and Database Creation - Just doing a quick look over the user side of the panel, a user is created each time a database is.. I see that as rather waste full, and sometimes I want to create users to only access some databases..
On a side note to this, a basic permission handler would be great, sometimes I make a MySQL user that doesn't need write access to the database, just read, to do that I have to login as root and change the permissions by hand with cPanel...
Its kinda late, but I may think of a few extra things tonight or tomorrow..