how can I create a user defined domain? E.g. user one will select for his shop the domain "shop1.example.com". User two will select "shop2.example.com" etc. How can I do this?I was thinking of Domain Access module but I am not sure which submodule to use. thanks
Drupal can handle multiple sites very well. In a raw way without any modules you can use the multisite features of drupal. This can be done by creating submodules under sites for each of the sites.
When it comes to modules there are couple of them that deals with subdomains and multiple sites.
Virtual Sites This kind of automates the Multisite configuration for drupal. You can create additional domains and subdomains.
Subdomain This one is mainly used to create a subdomain and place contents under that subdomains. For example all contents of a group can be placed under the groups subdomain.
Domain Access Domain access is used in scenarios where you want to share contents between your domains and subdomains. You can assign contents specific to a domain or have the same content appear in multiple domains. Assign admins per domain etc. This is used for affiliates sites. A use case would be a main rental site with subdomains for each city.
Aegir This is not a module. This is a complete hosting solution build for drupal. This is a hosting profile. You would install it on a dedicated or virtual servers. You can create multiple sites from with in Aegir some thing similar to what you do on a reseller control panel. If you want to restrict the subdomains to a single domain then you can use the module Hosting Subdomains
So it ultimately depends on your use case.
I think I found the answer on this This is the module https://drupal.org/project/domain_rules So a user can select a name and a new domain with this name will be created.