Web server = apache Basedir = /var/www Website path = /var/www/clouds/cloud_[client_id]/site_[website_id] Website symlinks = /var/www/sites/by_name/[website_domain]/:/var/www/sites/by_id/site_[website_id]/ I noticed that the symlinks were not being created, and suspected a permissions issue or missing base folder. Yup, I found this in /var/log/ispconfig/cron.log In there are these corresponding lines: Questions: 1) Is a hunt for "return code: 1" the SOP (standard operating procedure) for detecting errors? Why isn't an explicit ERROR logged? 2) Note that the log entries are in reverse order of the operations. I haven't looked at the code but I can understand how this happens. Is it worthwhile to pursue an inquiry into how the logging is done so that we can see messages about what is going to happen followed by the result rather than preceded by the result? 3) Since a lot can happen in one second, for understanding the actual time line has adding the millisecond value to logging been considered? I dunno if that's a performance issue, but hey, we've got the debug flag on, we know we're not running optimally. 4) It looks like the cron.log just echoes output from the processes it calls. But note that the detailed error for the "ln -s" operation appears in the cron.log (2>&1?) and not in the ispconfig.log. So all we get in the ispconfig.log is "return code: 1" while the reason for that error is only in the cron.log. If we have DEBUG mode on, I would hope that syserr is being captured wherever possible. 5) About this specific symlink issue, I have not seen a rule that says the folder path needs to be created before symlinks can be created. Is it worth an enhancement request to create the base path for a symlink with mkdir -p before the ln command? This is a problem in the case where we want a single folder to hold symlinks for all website_domain names for a cient: /var/www/clients/client1/sites/domain1.tld > /var/www/clients/client1/site_34 /var/www/clients/client1/sites/domain2.tld > /var/www/clients/client1/site_41 That extra 'sites' folder needs to be created under all clientX folders. Without a mkdir -p before the ln, that won't happen, and within inserting some shim/event code there's no option for us to ensure that folder gets created. 6) OK, so I created /var/www/sites/by_id and /var/www/sites/by_name. Note again my symlink templates: /var/www/sites/by_name/[website_domain]/ /var/www/sites/by_id/site_[website_id]/ The by_name link is created correctly. The by_id link is literally 'site_[website_id]' -> /var/www/clouds/cloud_1/site_2// 6a) OK, mea culpa, I rechecked the doc and [website_id] isn't a valid placeholder for this field. Does anyone else feel like this would be useful? 6b) Note the double slash terminating the valid link. I know it doesn't matter, but it's not clean. The default symlink templates have trailing slashes too. The simple solution here is to eliminate that trailing slash off the default. OR ... is there actually something here that could go wrong? 7) Is there any simple way yet to auto-rebuild symlinks for all sites? I'm think it would be cool if a change to the symlink field triggers this. I just tried it, that doesn't happen. Thanks for going on this little trip with me.