Version 0.25.0: --------------- - Added a (customizable) link to selling conditions when people register. Of course, the checkbox has to be checked to be able to register. If the link is not customized (eg "none" in the field), then the feature does not appear. - Added functions to subscribe / unsubscribe users to a MLMMJ list. Review and reorganized: - Install script (full re-organization with functions) - Cron job - Forms drawings of 70% of the panel (using a template thing) Version 0.24.6 (never released, dev version): --------------------------------------------- - The restor_db.php can now check primary keys and (re)add them if needed. It also works with auto_increment keys. - The site preview with https://dtc.your-host.com/site.net/ is now https://dtc.your-host.com/whatever-subdomain.site.net/ and understands the register_globals value. - The panel is now using dtc:dtcgrp as user/group instead of nobody:nogroup - A customer can now ask to close a ticket - Debian packaging and FreeBSD ports reviewed and clean Version 0.24.5: --------------- - Lot's of clean-up and bug fixes (0.22 has never been said a stable version, but was always our CVS one). Version 0.22: ------------- - Added support ticket system with email reminders - Added an eye icon to see the content of the password fields - Added support for VPS together with the dtc-xen hosting package connecting to a SOAP server using nusoap (modified). Includes VPS start/shutdown/destroy, VPS status and renewal, and remote SSH logins to the physical console (thomas & damien) - Added email reminders for shared and VPS hosting (thomas) - A better apache2 and php5 support (better dependencies) - Added a form to configure the login/pass and how do ftp backup: weekly, daily or monthly - Corrected the net_backup.sh script to take into account the new mysql manager. Wrote a net_restor.sh script. (thomas) - Added import/export functionnalities for domains: to be tested and debugged fully. (thomas) - Changed a bit the layout of the admin panel so it's less confusing (for the admin editor) (thomas) - The panel setup asks less stuffs (like it don't asks for NAT IP if not using NAT...) - Added support for Cyrus (thanks to Cristian Livaradu). - Domain parking: a domain copies the configuration from another one for mail and DNS, and redirects all subdomains to it. - Apache log dumps and Webalizer stats are now done everyday archives older than one year are now deleted. (Thomas Goirand) - There was some bad unic keys added uppon each installs of the panel in http_accounting, it's now automaticaly removed. (Damien Mascord) - Added NSSMySQL stuff so it's possible to grant ssh access to all vhosts directories using chroot + chuid: optional, selection for each admins, no by default (Damien Macord) - Registrar API is now optional - Added eNETS payment gateway support (Thomas Goirand) - Added Joomla CMS package installer - As usual: lot's of small debugs... Version 0.20: ------------- - Added a score board system with realtime download statistics and HTTP hits, no need to wait end of the day anymore to have them, no big cron job that would slow down your server every day... This will be version 0.18 when released: ---------------------------------------- - Bandwidth calculation is now done in realtime !!! - Added support for pure-ftpd-mysql - There is now a fantastico like installer that enables you to install phpBB2. Dev team is working on other packages. - Backup/restor script are now working correctly with the INDEX and UNIC keys. Things should go back to normal when upgrading from a (bad) old db setup. (Thomas) - Added support for amavis + clamav + spamassassin. If virus is found, it's destroyed, if spam is detected, then DTC looks for the SPAM flag in the email panel, and if it's set, then the spam is sent to the imap SPAM quarantine folder of the mail account. (Damien Mascord) - Added a feature to add a list of allowed DNS IP for transfering. That helps managing slaves DNS that are not listed as NS1/NS2 (otherwise by default transfer is forbidden). (Thomas Goirand) - Now made it work with mod_log_sql2 using $ in table names of apachelogs and not # anymore. BSD port reviewed a bit to use mod_log_sql2 and mysql 4.1. (Thomas Goirand) - Added port number to be able to support apache2. Might be configurable in the futur in the general config form. (Thomas) - Debian now asks to use vhost_nated IP for generating apache vhosts. - There is now support for MLMMJ mailing lists. (Core done by Lucas with a bit of help from Damien and Qmail part by Thomas) - Newly added admins are added with correct values. (Thomas) - Corrected a bug for local delivery + redirection in postfix: when local delivery was set, no redirection possible (thomas & damien) - Reviewed and internationnalised the Tucows reseller interface, added a tucows API user/key form in the general config panel. (Thomas) - There is now a complete new design thanks to Jerome Centex, thanks to him and his help. - Added subaccount feature (reseller) (thomas) - New layout for the main root consol. You wont have to scroll again and again like before, main stuff is now divided in 2 parts. (thomas) - Virtual admins can now change they're password themself. (T.Goirand) - Random rotative password is now used for the root web panel, so there is no password in any url now (exept the email panel maybe). - Added NAS adding/editing for freeradius. - Added chmod 644 on all new / edited .qmail files. - Added a better MySQL manager by adding a field dtcowner in mysql.user. Now virtual administrators can add/delete mysql users and can create/delete database. There is a field for each admin telling how mutch db at max, number of mysql user is not limited. - Added a popup for catchall feature for Qmail, corrected some of Postfix, the ugly * account doesn't exists anymore. (D.Mascord and T.Goirand, help from stilger in the forums) - Added FreeRadius automatic installer (web interface not finished yet). (T.Goirand) - Putting something else than default in DNS config of a domain does now produce a nice slave zone. (D.Mascord) - Now double checking if apache is restart. Retry if not. (T.Goirand) - Now have separated grant privileges for mysql access: a dtcdaemons user is created uppon install. (T.Goirand) - Qmail is new renamed to Mail in dtc daemons page. (T.Goirand) V0.17.0-R3 Now, DTC checks that apache is REALLY restarted. If it's not, then it tries again durring 15 times, that should represent at least 45 seconds (could be 1 minute), waiting 2 seconds between each retries. DTC now restarts Courier daemons after (re)install of the panel. On freebsd: It's now using mod_log_sql and sbox-dtc (that last one is now in standard in freebsd ports) and mod_log_sql directive links agains the correct /tmp/mysqld.sock path, php.ini-dist is copied to php.ini if not exists, and an incdir directive to pear folder is now automaticaly added. The FreeBSD Makefile is revised and should depend correctly on other tools now. I pickedup examples from the phpmyadmin Makefile and others. It's tested and working, now I'm the foccus is on the dtc-install.sh script. Changed size of ip of subdomain to 255, now you can use it as a CNAME value. The entered value is checked for resolvability before entering the database. A lot lot lot of debugs and cleanup. Swiched error_reporting to E_ALL, and find some little bugs. I can't count the nomber of little fixes made here. It should also improove a lot the way the panel installs for BSD. Now installer works for newer RedHat. DB setup is working well again. Installer now regenerate the main domain on each install so dpkg-reconfigure works better. Thanks to the users in the dtc forum for reporting! (thomas) Added support for macOsx in the build tree. More on this soon with maybe a total graphical install and Mac OS X integration. (thomas) DTC now restarts proftpd and courier-authdaemon + courier-imap, so it's up and working without worry after a fresh install. (thomas) The installer now removes one temp install file that was not removed. (thomas) DTC now has support for TXT records. 2 root records and one record per subdomains. (thomas) The backup MX/NS is now capable of using cache file when generating domain lists even when the remote is down and there is a domain listing update pending (little bug in behavior found). (thomas) The installer does not happend some new lines to the config files anymore (Damien) Patched to allow the use of lynx -s like for getting backup NS and MX if php < 4.3. (thomas) Corrected a bug in the subdomain defaut handler wich caused smtp, ftp, pop and list customisation not possible. (thomas) 2005-03-03 V0.17.0-R2 Some corrections in the database so the panel installs properly. It was broken due to some bad UNIC key inserting and users complained about it. 2005-02-03 V0.17.0-R1 This release does some major bugfix in the isntaller: the field name PASSWORD (upper case) in the ftp_access table is now back to normal password (lower case) when creating the tables. Please switch it back to lower case if you have some troubles. The template directory from wich is copied the html files of new vhosts has now the good unix rights so the copy works (upgrading will add the x flag to the directory). The mail accounts are now generated and the qmail control files are now linked correctly on each install/upgrade of the panel. Note that no trouble should have hapened to any production server upgrading DTC, this corrects only some problems to first installations. (thomas & damien) 31-01-03: V0.17.0-R0 After many tests and debug, I'm proud of this milestone which should be a lot better. Work to be done for BSD mainly... (thomas) 01-04: V0.16.0-R1 Email panel is now fully working. Added some internationnalisations. Added stuff for configuring DTC client session expire time. Added automatic PayPal payment with IPN (Instant payment notification) which makes DTC having IAA (Instant Account Activation), and (of course) new user registration. 17-12-04: Thomas Goirand: Added automatic SSL certificate generation durring install. Added NS and MX backup between dtc panels. A DTC panel query another one to list his domains to backup, and the resulting is cached in a file. 17-09-04: V0.16.0-R0 New features: There is now a product manager on where you can build your hosting plans. Once hosting plans build, new user can register an account on the client interface, and checkout the order with paypal. Each pop user have now access to a special mini email panel with option for mailbox. In the future this panel will be improoved a lot to allow autoresponder and spam filtering. Cosmetic enhancements: Updated standard skin title color to some darker stuff. New registration form for new users done, mued greyskin updated. Template for new sites was not copied because of a global not set. Using new icons taken from the exelent art.gnome.org Bugfixes: Apache conf generation died if domain has no subdomains, wich can happen in some configuration of a domain name. A \n was missing in Postfix email generation when redirection was used. 09-10-04: V0.15.0-R8 Thomas: Added a link to documentation inside root admin interface. Added rotating passwords. Because some browsers can store the login/passwords sent in DTC urls, now a random pass with expiration replace customer's pass. It is still possible to call any URL of the customer interface using BOTH two kind of pass, so customers can continue to script the client side using the following type of code: but the new code just replace the adm_pass with something random in the forms and URL of the customer's GUI... Those are then compared to the stored value in SQL with an expiration timestamp. 06-10-04: Released version 0.15.0-R7. Thomas: Added 404 domain for whenever a FQDN points to the server but no Vhost is associated (previously it was using the first Vhost in alphabetical order), wich I called 404 subdomain. Also a standard ErrorDocument 404 is installed automaticaly. Damien: Added a flag in config to show/hide passwords in the interface. Thomas & damien: Now using installer to create .htpasswd and .htaccess of the root consol. Thomas: Checked SASL and patched for whenever a box has no support for it (Damien: how to install that in woody? For final customer, just add "secure auth" in outlook and that's it! Added a flag in installer for verbosivity, it was NOT possitble to continue like that! :)0 01-10-04: Damien: Postfix now has SASL SMTP AUTH support, and the sasldb file is generated along with the rest of the postfix generation. Also, a few tidy ups in regards to tmp file usage, it's now using mktemp, and also other bashisms removed. 1-10-04: V0.15.0-R6 Added italian translation thanks to lupin3rd@gmx.it, .htaccess and .htpasswd are now created if not exists under install. R3 4 and 5: Thomas & damien: Resolved pear install under Debian by a stupidly long php version checking. Thomas: Added 2 new nice skins, debuged access log dump so webalizer statistics are ok. Added an option to have domain preview if unresolved. This was incompatible with reselling subdomains... Also this could enable cross-site scripting if enable, because of running under the same domain. Happily, DTC does not have a lot of stuff in session (who said sessions are secured?)! :) 31-08-04: V0.15.0-R2 improved the way DTC handles non-resolveable domains aliasing: now it uses open_basedir like for normal vhosts, so users can't screw up other's users files. The installer now checks if runnin under debian. If not, it does NOT check for apache modules !!! It will be up to the Unix you are using to do the job (you have been warned). 18-08-04: DTC now handles SBOX wich is a cgi-wrapper: it does chroot, suexec, and some memory and processor limitation. Dovecot configuration now uses PLAIN instead of CRYPT because it seemed to have some problems. The installer will now systematicaly regenerate files for named and apache and the installer has precedence over the mysql inserted values (an update is done durring install before launching the cron job). That means that you will have to do a dpkg-reconfigure to change mta type BEFORE upgrading to a newer version of DTC in the case you have switched to a new mail system. 2004-08-10: The latest add of a db_stop was breaking installation under Debian Sarge or Sid (testing or unstable) when using modules-config. Version 0.12.0-R2 correct this: the db_stop is now done just before the launch of the cron.php script. This release also adds the generation of /etc/pam.d/smtp file with the correct configuration. If you are using postfix-tls and pamd, then this should configurate your SMTPD server to use DTC's database. 2004-08-04: Added some basic start for mailling list manager. 2004-08-03: Version 0.14.0-R1 correct some minor bugs of 0.14.0-R0: access.log is now correctly dumped from sql so webalizer stats are now working again (was broken only in 0.14.0-R0), in the bandwidth monitor, in the graphic wich shows monthly usage over quota periodes are shown in red, and it works even if you haven't setup a quota for your user (all will then be drawn in red). Last thing: when installing DTC, it sometimes has to start/restart daemons. Under Debian, and since the begining of DTC's debian package, it was hanging at end of install script because it was waiting for daemon to finish to execute, wich of cource never occurs. Now a db_stop fixes that and DTC can now install all OK even on a fresh Debian install. DTC will be version 1.0 as soon as Mailman support is finished. 2004-07-17: A big bunch of new stuff for 0.12.0-R8: - Now includes support for both Postfix, Courier and Dovecot. Trafic monitor is being written for those. Imap trafic monitor is beeing added too. The Qmail vs Postfix discution is now over! Thanks to Damien Mascord (from tusker.org) for his very good work on that part. - Added some spanish (someof was missing) and (all) chinese translations, DTC is now fully internationnalised. - Added some stuff in the CRM manager (root admin console) so there is not need to do some hacks in phpmyadmin any more. You can add and remove some admins to customer now. - Change mysql password fully working. - Change of FTP path re-works. - DTC now has a popup for changing skins. Now comes with 5 different skin to choose from. All the config panel has been reviewed and split in 4 screens. - The bandwidth monitor now includes a 12-month view of each customer trafic usage. - There is now an option to use [at]domain.com ftp login (enabled by default). - DTC works also with Debian Unstable and Woody using nicely moduleconfig if available. 24/06/2004: - Network (ftp) backup now includes database backup - Reviewed and updated MX generation in zonefiles. Now it's possible to setup some backup MX servers for DTC thanks to the new generated morercpthosts file. 21/06/2004: - Install script now uses a backup/restor script so it's easyer to add some fields in previous tables (automatic addon to sql is done when installing, you don't have to worry anymore about your database upgrades !!!). - Added some spanish and chinese translations. 12/06/2004: - Added some stuff in the CRM manager (root admin console) so there is not need to do some hacks in phpmyadmin any more. - Added chinese translation. Did some more internationalisation (only remaining todo tucows api need to be translated). - Changed some stuff for the BSD OS. Now DTC is integrated in the FreeBSD port collection. - Change mysql password fully working. - Change of FTP path re-works. - DTC now has a popup for changing skins. Now comes with 5 different skin to choose from. 12/4/2004: Added lot's of stuff to the install process, because I was bored to do it manualy. /etc/resolv.conf and httpd.conf are now edited automaticaly. 7/1/2004: Added some changes needed for BSD: Added custom path for generated config files and dtc shared directory during install: this depends on the OS type and where BSD installed and must be set accordingly (mainly for FreeBSD and for demo version for example). The cronscript is now configurable, so you can setup apachectl path for restarting apache. You can tell also if you need to check if qmail-pop3d is running (small debian watchdog). Please disable that feature with, or rewrite another script with it's specificities. 29/12/2003: This release 0.12.0-1 comes with a BSD port totaly integrated with DTC package maker. So BSD port install script is totaly scynchronised to other BSD release. It has been tested and declared working. Some minor bugs of the BSD installer has been found since: checkout before in this text file. DTC now comes with complete bandwidth monitoring tool for all supported service: apache using mod_log_sql, proftpd using it's sql features, and qmail using mysqmail tar.gz qmail trafic monitoring package (see in ftp://gplhost.com/pub for mysqmail latest release). Many things have changed since the introduction of the DB version field. I will soon have to release script... Label was not correct in the domain configuration table. It was not "Webalizer", but "Name zone file generate". It's now corrected. There is now the possibility to have a dynamic IP (given for example by your ISP using DHCP for your home connection) updated to any domain name. 1/11/2003 (v0.11.1-27): A script that check for apache directories (and create them if needed) is now genearted at the same time as apache vhosts. It's launched before apache restart in the cronjob. BSD package now configurate automaticaly the named.conf and the /etc/rc.conf so named is started at boot time, with correct inclusion (thanks to Cybile). When DNS configuration is modified (eg, primary server is not default) DTC now removes completly FTP, MX, Apache and Subdomains configuration interface because that means the user is leaving the hosting service. Removed a "/" at the end ScriptAlias under the generation of Apache VHOST file. Added whois config display for DTCRM module. Modified a lot of the drawings to use the new "dtcrm" module for commercial care of your customer (this module will be SOLD, as long as it's for doing business: I wont give my work for free so someone else has my customers, I'm not THAT mad...). ALTER TABLE config ADD whois enum('here','away','linked') NOT NULL default 'away'; Added caching of generated image files for the tree menu. Now take the advantage of your browser's cache and save bandwith and server CPU ! :) All files in bin (for makeDTC pakage) have been touch this time. In one night, I've build a BSD package with a friend. I'm realy happy of it ! Now a single "makeDTC" do packaging for both: - RedHat (.rpm) - Debian (.deb) - FreeBSD (.tar.gz) - Generic all Unix install (.tar.gz) - CVS_SNAPSHOT (including all files to rebuild packages) (.taz.gz) client/inc/img.php img.php now has good colors even when register_globals is set to Off (wasn't fetching the $color param). Now you can see back again when a link is selected or not. admin/inc/gen_named_files.php Corrected a bug in gen_named_files.php that were not generating default ftp/pop/smtp zones when not added manualy. shared/strings.php Corrected a bug in MySql account manager in french version (the link for adding a new mysql user was broken. 24-09-2003 by Thomas GOIRAND ------------------------------------------------ Lot's of updates in this release. Leaving beta stage, and becoming version 1.0 very soon, when RPM works. admin/inc/submit_root_queries: New dommain are now added with the $conf_site_main_ip instead of the default IP value in MySQL db, wich is better because understandable for final user. The final option should be to have a popup near the "add domain to admin" so it would be possible to select IP addr during domain creation. admin/inc/draw_user_admin.php: New user admin form is now a password admin/index.php & shared/anotherDtc.php: Removed the language selection form the top banner of the client interface : language has to be choosen before login, by the way... admin/inc/dtc_config.php: Now any modification in this panel make all deamon update run in next cronjob. Could be better checking what changes, but too complicate and long to do. admin/inc/dtc_config.php & admin/inc/gen_pro_vhost.php: Finished the "nated vhost" in the configuration panel (now operational for generation vhost for apache). If you have a apache server binded to local area network, you need vhost to correspond to that IP, even if the name server gives the external IP. This is the reason of that option (thanks to Thorin for beta testing my software and giving me the correct environement for testing). WARNING !!! table structure of config table has changed. Issue the following SQL query to upgrade : ALTER TABLE config ADD db_version int(11) NOT NULL default '10000'; ALTER TABLE config ADD use_nated_vhost enum('yes','no') NOT NULL default 'no'; ALTER TABLE config ADD nated_vhost_ip varchar(16) NOT NULL default '192.168.0.2'; 17-09-2003 shared/inc/submit_to_sql.php & admin/inc/gen_named_files.php: It is now possible to change the ip of ftp/smtp/pop. If it's not set by the adminuser, then it will be default. Otherwise it will have the setuped IP addresse (or once again default if used as a web subdomain leaving IP umpty). Very conveinient. dtc/admin/cron.php: Now does not do a "/etc/init.d/qmail stop/start", and a mutch better "kill -HUP `pidof qmail-send`" for reloading qmail's files in /var/qmail/control dtc/admin/inc/dtc_config.php & dtc/admin/inc/dtc_config_string.php: Added configuration for using ssl & javascript in the configuration panel. Added SSL generation for the dtc vhost so you can use https://dtc.maindomain.com if ssl is enabled (not enabled by default). DTC is using the following cert files : new.cert.cert new.cert.csr new.cert.key privkey.pem all located in /etc/apache/ssl. You can issue the following shell commands to generate ssl key files using openssl : mkdir -p /etc/apache/ssl; cd /etc/apache/ssl [quoting apache-ssl.org] Step 1 - create the key and request: openssl req -new > new.cert.csr Step 2 - remove the passphrase from the key (optional): openssl rsa -in privkey.pem -out new.cert.key Step 3 - convert request into signed cert: openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365 [/quoting apache-ssl.org] bin/sources/uninstall_deamons.sh: Corrected uninstall of named.conf install that wasnot removing the include directive (this ending to double include if dtc was reinstalled). Uninstall of proftpd remains buggy, but install of UserReverseDNS has been removed (not supported in newer versions of profptd). The install script was simlinking /var/qmail/control/locals to /usr/share/dtc/etc/rcpthosts wich is completly wrong. Forgive me for that mistake. bin/sources/setup_mysql_db.sh & admin/tables/cron_job.sql : The install script does not longer can install a double cron_job row thanks to a unic key. Table structure of cron_job & config tables has changed : WARNING !!! Please verify that cron_job & config tables have each only one row, and issue the following mysql command before upgrading to a newer DTC version: ALTER TABLE cron_job ADD unicrow INT DEFAULT '1' NOT NULL; ALTER TABLE cron_job ADD UNIQUE (unicrow); ALTER TABLE config ADD use_ssl ENUM('yes','no') DEFAULT 'no' NOT NULL; ALTER TABLE config ADD unicrow INT DEFAULT '1' NOT NULL; ALTER TABLE config ADD UNIQUE (unicrow); bin/sources/setup_mydql_db.sh : added insertion of the subdomains ns1 and mx for the main hosting domain. admin/inc/gen_pro_vhost.php : Removed a nasty bug that made the NameVirtualHost generation take only the last IP adresse. (= instead of .= in the sources). Now it check for each IP if it is used, so the directive is inserted only if needed thus avoiding the warning NameVirtualHost IP.A.D.R:80 has no VirtualHosts 26-02-2003 by Jelle kalf -- Jelle Kalf 2003-02-26 - Fixed all dutch languages - Fixed a nightly CVS-build in tar.gz and tar.bz2 - The domain table have now 3 new fields. dtc (0.10.7-1) * First attempt to a debian package -- Thomas GOIRAND 2003-02-20 19-02-2003 by Thomas GOIRAND - Mysql account manager done. DTC has to have access to the privilege database (called "mysql" database under mysql) to be able to commit changes it the MySQL rights tables. - A cron job now exists. Install it on your root crontab (/etc/crontab) with the following parameters (here started each 10 minutes): 00,10,20,30,40,50 * * * * root /usr/bin/php4 /usr/share/dtc/admin/cron.php It does the following task, whenever needed : o Generate config files for vhosts named qmail webalizer and backups o Launch /var/qmail/bin/qmail-newu o restart qmail when a domain is added/removed o reload_named when a domain name changes o restart_apache when a domain name changes - Removed some specific Anotherlight stuff in the tables 17-02-2003 by Thomas GOIRAND - DTC is now in /usr/share/dtc with 4 directories: admin, client, shared and etc (the last one is where dtc files are stored now). - New skin library for easyer graphics customisation. - Qmail & apache sub-domains are now handled with the saved admin's path. - New autoSQLconfig.php script for setuping DTC at first launch (mysql connection and table creation). All the internal config.inc.php stuff is now handled in database under the "config" table. All fields in this table are processed and a $conf_FIELD_NAME global variable is created. - No mysql_connect() call in file-generation scripts anymore. Connection is supposed to be done before in autoSQLconfig.php. - Some unused globals have been removed from gen_* and fetch.php scripts. - delete all mailbox, ftp accounts and subdomain when deletting a domain name - delete all mailbox, ftp accounts subdomain and domain names when deletting a user - delete files (rm -r) when deleting most objects (at now : domain names and virtual admins files are deleted when deleting a domain name or a virtual admin : Mailbox files and subdomain files are NOT deleted, because it's up to the virtual admin to do it, and they can be newbies...) - when a user is created, it's username is happened to the "main_site_root", so there is no risks anymore that a user share the same path as another one. Less risks also to "rm -r" all hosted files on the box when deleting a user, because that user directory wont be in the hosting directory root. Changes to D.T.C. by J.R. Kalf (jan 2003) 1. Split D.T.C. into 3 parts - DTCclient - /usr/local/dtcclient - Alias /dtc /usr/local/dtcclient - DTCshared - /usr/local/dtcshared - no alias thingy needed in apache. - DTCadmin - $admin_site/dtcadmin/ - DTCclient - changed the include config.inc.php into a REQUIRED. All references to the DTC shared stuff is done in config.inc.php with the $dtcshared_path variable. All that needs to be done by the user is change this path to config.inc.php in the login.php file for DTCclient. - The img.php is included in inc/img.php in both the DTCadmin and DTCclient. This is because it's needed in both, but it's called upon via URL, so I couldn't use a absolute filesystempath to the file and I didn't want to make an alias for apache to the dtcshared directory. Clients have no use for that directory and I don't want them to be able to view the config.inc.php with the username and password to the database in any way. I included it in both DTCadmin/inc and DTCclient/inc to make sure I wouldn't reference the DTCclient in anyway to the location where the administrator is configuring everything for the server. - DTCadmin - changed the include config.inc.php into a REQUIRED. All references to the DTC shared stuff is done in config.inc.php with the $dtcshared_path variable. All that needs to be done by the user is change this path to config.inc.php in the index.php file for DTCadmin. - Organised the require and include lines in the top of index.php to easily show if a included or required file is part of the shared or admin only directory. - DTCshared - changed skin.php - had to fix the reference to img.php as described above. - changed anotherDtc.php - fixed location of all graphics to "gfx/" instead of "/gfx/" This does mean that both DTCadmin and DTCclient have to have a gfx directory, but this will prevent another alias to have to be made in Apache. And I find it easier to know that if I change my clients point of view I keep my trusty look for administrating things.. My look doesn't have to change, it just has to be functional. - Changed skin.php again. - line 161 - was: $path = "/gfx/cadre"; - is: $path = "gfx/cadre"; 2. Translating D.T.C. to Nederlands - Translated the strings.php and added an entry in the lang.php. I couldn't fix the pictures, maybe you could add a picture called with the name "Nederlands" er in. - added: iso-8859-15 as default font. Why -15 instead of -1, because -15 is the new fontset including euro signs and other new stuff. 3. Fixed an error in anotherDtc.php - line 9: function anotherLanguageSelection - on line 10 it stated: global $PHP_SLEF; I fixed it to: global $PHP_SELF; Think this was a little typing error?! 4. PHP lockdown in apache I've shown you how to do it already, so I'll skip them basics. I've changed config.inc.php and gen_pro_vhost.php. config.inc.php - added 2 variables in the vhost section. - php_library_path = "/usr/lib/php/"; pointing to the library section of you php installation. - php_additional_library_path = "/location/to/my/php/libraries/:/tmp/"; Pay attention here. Every path has to end with a / and between paths you need to put a : . Incase you're using something like a shared webmail client and shared phpmyadmin installation you need to add their paths into the paths as well because this lockdown closes down ALL .php files outside your php paths. gen_pro_vhost.php - added some globals: global $php_library_path; global $php_additional_library_path; global $data_path; global $administrative_site; Removed the entire part where all subdomains were written to the Vhosts file and created a new IF statement that will seperate the administrative site/subdomain from the rest of all webdomains/subdomains. I've started deleting the code just after the FOR statement that which was fetching the subdomain from the database and started writing the vhost file. Starting at that FOR statement: ------------ CODE ------------ for($j=0;$j<$num_rows2;$j++){ $subdomain = mysql_fetch_array($result2) or die ("Cannot fetch user"); $web_subname = $subdomain["subdomain_name"]; -=> if($administrative_site == "$web_subname.$web_name"){ $vhost_file .= " ServerName $web_subname.$web_name Alias /phpmyadmin /usr/share/phpmyadmin Alias /dtc /usr/local/dtcclient Alias /webmail /usr/local/horde/imp Alias /horde /usr/local/horde Alias /cms /usr/local/cms Alias /stats $web_path/$web_name/subdomains/$web_subname/logs DocumentRoot $web_path/$web_name/subdomains/$web_subname/html/ ScriptAlias /cgi $web_path/$web_name/subdomains/$web_subname/cgi-bin/ CustomLog $web_path/$web_name/subdomains/$web_subname/logs/access.log combined ErrorLog $web_path/$web_name/subdomains/$web_subname/logs/error.log DirectoryIndex index.php index.cgi index.pl index.htm index.html index.php4 "; } else { $vhost_file .= " ServerName $web_subname.$web_name Alias /phpmyadmin /usr/share/phpmyadmin Alias /dtc /usr/local/dtcclient Alias /webmail /usr/local/horde/imp Alias /horde /usr/local/horde Alias /cms /usr/local/cms Alias /stats $web_path/$web_name/subdomains/$web_subname/logs DocumentRoot $web_path/$web_name/subdomains/$web_subname/html/ php_admin_value open_basedir \"$web_path/$web_name/subdomains/$web_subname/:$php_library_path:$php_additional_library_path:\" ScriptAlias /cgi $web_path/$web_name/subdomains/$web_subname/cgi-bin/ CustomLog $web_path/$web_name/subdomains/$web_subname/logs/access.log combined ErrorLog $web_path/$web_name/subdomains/$web_subname/logs/error.log DirectoryIndex index.php index.cgi index.pl index.htm index.html index.php4 "; } ------------ /CODE ------------ I've included in this lockdown the subdomain of every site so it can be viewed for files like password files So it's locked down in the directory above "html". !!! note, currently the Administrative site does NOT have a lockdown. I don't think it will be necessary in the future, but just so you know. Also a good point for people to know is that the administrative_site is narrowed down to 1 single subdomain!!! - Changed the Directory index to take more different kind of files :P I got a bugzilla running and it required to have .cgi and .pl running also. Also a LOAD of people are using windows style of index files so I added .htm as well.