I've installed a multiserver setup (Centos 5.5) as per the guides (which are very good) but it seems I get different results every time.
Firstly, built a BIND DNS server and the monitor page repeatedly tells me MyDNS isn't running, also drops the zone files in the wrong place for a chrooted bind install.
Then built a mailserver, setup my domains to find I am unable to add a fetchmail setup with an alias address as the destination mailbox. Perhaps there is some golden rule about not doing this but I modified the database by hand and everything seems to work as expected.
Then built a secondary mailserver only to find I am unable to host the same domain on both servers (i do not wish the two servers to be mirrors, i just want to host a single domain on both servers).
Then I see I am unable to receive mail at the latest mail server I built, getting the error
pipe_command: execvp /usr/bin/maildrop: No such file or directory
I thought that path was just incorrect, and that is should be /var/spool/postfix/maildrop but when I started to poke around in the server table and found the following in the [MAIL] section...
Well I don't know why it thinks courier is used, its a brand new build and courier has NEVER been installed. I guess it should read...
I also noted that removing uninstalling and reinstalling ispconfig on the remote mailserver results in another server added to the UI. This seems a bit silly to me if the server has the same hostname and ip addresses.
There are loads of other things I've had to manually modify in the database but that's really scary as some of these things can easily be "un-done" by innocently updating an alias record in the UI or by an ispconfig update.
I think its odd that someone would store an entire ini file in a single column in a database table. Everything is also done with raw SQL in the PHP scripts, now I've never developed anything in PHP by in my past experience, if your database engine supports stored procedures then you should use them. It would certainly make fudging the database a bit easier.
I am also amazed that there are no foreign key constraints on the database. That could be a real problem for a big installation with lots of managed hosts.
I did head over to the bugtracker site for ispconfig but I wasnt able to add any new tickets and any existing tickets in the system didn't look like they were being worked on.
Now, I assume its bad mojo and deemed UNSAFE to edit the content of the dbispconfig database manually, I know this but I have to make changes to get it to work properly. I'd like other peoples thoughts on how likely it is that these modifications will be overwritten by ispconfig updates....
As for my alias problem, I am thinking of adding a trigger to the mail_get table to ensure that the destination address is always forced to the correct alias address of someone updates the row.
Add a stored procedure or trigger to parse the config column of the server table to replace any instances of 'MyDNS' with 'bind' instead as I do not use MyDNS. I will probably do the same again to fix my maildrop issue.
I'd like to know how data flows between the various instances of mysql. I will do some digging through the PHP code later but if someone has any quick answers on this I would be greatful. Presumably the remote installations connect back to main ISPConfig database (as I've only allowed MySQL from client to server), push some stuff into the central database and pull any changes down at the same time?
On this basis, when I make the changes to the config column, am I better to do this on the remote server or the central ISPConfig server?
I really don't know what I will do to work around hosting the same email domain on two different servers, any pointers greatly appreciated.