Warning: Noobie making comments here!

One of the reason why I am looking into Drupal is because of its multi-sites feature. I would like to be able to have user automatically have their own website when they sign up. That is having Drupal creating a folder and configuration file for every user that register. Once they register, they will be given the url to their "new website" Only one database will apply to every user that register.

I have looked all over Drupal site and finally decided to register on Drupal website in order to post this. is there a module that is already created for something like this? if not, how would I proceed? I have some programming experience and maybe can make something like the one I'm asking.

Thanks in advanced

Comments

arden@thank-you.ca’s picture

How will the httpd.conf include file for the sites be appended?
How will the domain.zone file for the sites be appended?

pamphile’s picture

Here are a few ideas...

The new sites could take the form of

1. If your domain is example.com. New websites could be a like
subdomain.example.com.
In this case example.com must accept wildcard domains.

2. If you want to autmaticall offer unique domains to each user, you would have to:
a. Ask the users to the example.com nameservers.
b. Then you must park the domains on example.com
c. Generate a database for this new website ( you should use template database )
d. Send login credentials to the new users.

http://scriptmigration.com
http://01businesses.com

spamming’s picture

Not subdomain, but sub folders. Been searching through Drupal Modules list for automatic multi-site creation module but to no avail.

What i would like to do is when a user first register, the registration will make an account and create a folder in 'sites' folder, thus having path that looks like drupal/sites/(username) so that when they type in url www.example.com/(username) they will get their own 'website' and their own database.

Is this possible? I dont think I can use http.conf because it would require restarting the webserver everytime a user register. Is there any other way of doing this?

bluedrupal’s picture

I am wondering about this as well...

I would like to do multi-site automatic creation when a user register. Is there a way, one way I think I understand is the use of .htaccess but dont fully understand how to 'program' htaaccess, is there anyone that knows how to configure htaccess, and can you give a short example of how to use it using htaccess? Do I read the file and append new site info to it?

Thanks in advance

celticess’s picture

http://www.javascriptkit.com/howto/htaccess.shtml

Apache guide to .htaccess: http://httpd.apache.org/docs/howto/htaccess.html

Linuxhelp quick thing on it: http://www.linuxhelp.ca/guides/htaccess/

Hopefully something in one of those will be helpful. Drupals default htacess is a bit complex. I took one look at it and went "umm ok I think I'll leave that be" Then went back to dealing with moving content and setting up/configuring the site since install. I've not really had cause to mess with the default htaccess however otherwise I might be a bit more motivated on figuring out all the things that can be done with the htaccess.

drhiii’s picture

I am also looking at this. Multi-site creation at registration.

Just adding my 0.02 bytes to this. Yes, creating the SQL data base, DNS and getting authentication to the registrant, are the challanges.

Does anyone know how someone like smugmug or fotopic are able to provide virtual domains the way they do? One is able to create a virtual domain name practically on the fly.

I am a noob to Drupal, but if what I am reading is what I think, if a server is told to accept hits to a domain like gumbie.com, in creating multisites like user.gumbie.com in a desginated subdir off of the root installation of Drupal, would direct it to that virtual multisite domain name, i.e. pokie.gumbie.com?

Am trying to understand this... anyone point me to a specific discussion on how this might work? This would eliminate the need for a virtual domain name registration, yes? Or am I dreaming I am reading about this?

After awhile with a couple other CMS's, Drupal looks excellent.

pamphile’s picture

>Does anyone know how someone like smugmug or fotopic are >able to provide virtual domains the way they do? One is able >to create a virtual domain name practically on the fly.

You would have to force all CNAME traffic to be handled by yourdomain.com. The the drupal code handles the subdomain issues.

Finally, all you got to do is force drupal to use subdomains. I am sure this can be paid for. :)

Wholesale Directory
Business Letters
Free Classifieds

pamphile’s picture

Be very careful how you implement your multiple site structure. I don't think the multisite structure is designed for shared hosting.

I had 20 sites installed on one domain. One of the sites used cron to fetch RSS feeds periodically. Hall Of Fame (HOF) was enabled on the rss fetching website. I noticed HOF would timeout often on sites with 5000+ nodes. Eventually the main website was suspended and banned.

I suspect the HOF enabled site caused too much stress on the shared host. So all 20 sites suffered

If your going to put all your eggs in one basket, might as well use a strong one.

YP.BZ - Yellow Pages for Business
Car Blog and Diary
Advertising Blog and Diary

pamphile’s picture

Also remember to Backup as often as possible. Running mutiple websites in one basket is a time saver, but it also calls for extra precaution.

Still not convinced... read this http://discuss.joelonsoftware.com/default.asp?joel.3.173398.10

Marcel
Internet Domain Blog

jadwigo’s picture

What you're asking is very similar to a project I'm working on for my employer. It also looks a lot like what the guys at bryght are doing.

As far as I know there's no publically available module for this yet for a simple reason: It's a very big project to do.

The module would essentially be a "subsite installer" to create new drupal instances.

The way I did it is by making a template site and copy the database, directories and files while replacing the account specific parts on the fly.

More info to get started is in the handbook info on multiple instances and really advanced database options and of course any good books about PHP, MySQL and RegExp

Rosamunda’s picture

I´m thinking in adopting the multisite structure for adding just one site inside my drupal installation (4.7 on a shared webhost).

The thing is that I was thinking in adopting this strategy because I´m afraid my drupalsite can crash and go down because the quantity of modules installed:

attachment
casetracker
devel
excerpt
filemanager
flexinode
gsitemap
image
img_assist
logintoboggan
paging
print
search_config
tac_lite
userplus
views
webform

Besides that, we have some more active modules that came inside Drupal´s core.

I was thinking in install theese ones too, because I wanna add more functionality to the site:
buddylist
flag_content
profile_pages
profile_visit
subscriptions
user_readonly
simplenews

So those ones, plus theese ones... what are my options?
We´re not a heavy traffic site (but wanna be :)

Any thoughts?
Thanks in advance!!

Rosamunda
Buenos Aires | Argentina
www.ligadelconsorcista.org

ontwerpwerk’s picture

Start with a test site to try the multi-site configuration - and backup everything (the usual caution)

Usually your site will work, but testing is the only way to see if you really get what you want.

--
I work for Ontwerpwerk

DR V’s picture

Not completely sure this will work (since I haven't tested it), but based on the configurations I've set up in the past this seems to be the most promising:

  1. Install your base Drupal installation (preferably in your server's root directory to avoid possible future caveats).
  2. Add and configure the modules you wish to be used on each user's site. Make sure you place all additional modules (those not within the Drupal core) into your sites/default/modules directory.
  3. Create the default themes you wish to have available for each user and place them in your sites/default/themes directory.
  4. Note: You may also want certain files available to each user. You can do this by creating a files directory within your sites/default directory.

  5. Create an SQL query that will create the database from step 1 above. (You can do this by exporting your entire database from PHPMyAdmin)
  6. Create a PHP file that contains the above query.
  7. Create a PHP file that will scan the default settings.php file and replace the $db_url and $db_prefix variables as necessary (most likely you will only need to change the database name at the end of the $db_url variable).
    Note: This file should be executed only after the file to create the new database from the step above has been run.
  8. Create a PHP file that will do the following when the user registers:
    • Create the user's directory: sites/user/
    • Copy sites/default/settings.php file to the sites/user/directory created in the step above.
    • Run the PHP file to create the new database
    • Run the PHP file to edit the $db_url variable to the change to the database created in the step above.

After all this is complete another PHP file should be made that will set module specific settings (e.g. setting the image, temp, files directories; and any other module specific settings that may need to be entered after a regular Drupal installation).

Hope this helps someone. Let me know if anyone gets this working...

-V

dmarfil’s picture

Hi DR V, I've just tested the process this morning and it's looking nice. I've done it manually (didn't automated yet with PHP) and it works.

The question I needed to solve was to get a site (let's call it "template" site) which would be instantiated by each "son" site. These sites would start with a concrete configuration (theme, modules, types of content, etc), so it's not a new installation of a multisite from the base site.

So my idea is to get different sites with independent content (not sharing users) on a common base installation: just a multisite definition. One DB for each site, but the DB cannot be the clean one initialized by the drupal installation, I needed the template one with a initial configuration, so it's necessary to export the template site's DB and import it in the new DB.

There are some more steps that must be done (edit /etc/hosts, grant privileges to the DB user, etc), but using the imported DB you don't have to run the install.php script.

I still have to test it harder, but the next step I'm doing is to work on the PHP code needed to automatize the process.

Thanks!

DR V’s picture

If your plan is to make existing sites merge into a common base installation you are going to get some headaches.

I don't think that is what you are trying for, but even if it is you may want to consider this alternative. Almost a year ago I posted a proposal to make a site clone module. A module that would take a base site configuration, and then spit out a new duplicate site at the location of your choosing (I never really got around to completing it). The plan at the time was to use it all within the same site (not like what you want to use it for). But the implementation can be slightly altered to just spit out an installation profile, which would act as your "template" site. You could then use the installation profile with a cronjob (for example) to automate the install to a location of your choosing.

Granting privileges to the DB user can also be automated with database procedures; depending on the type of database you've chosen.

Let me know how things work for you, and good luck!

Fohsap’s picture

Dr. V, I use sites/all for the stuff I want to be on every user's site.... sites/default only for the original site. I think it's standard.... So, could sites/default/themes possibly be changed to sites/all/themes in your post? :)

kdes’s picture

I am looking for a module that would do what is described above by DR V. Also, based on this http://groups.drupal.org/node/15936 I would guess that the proccess outlined above must also have the script run cron and update.php. running update.php is easier with the drush module.

anthonylicari’s picture

I'm creating this now for a site and might contribute a module. Yes it is a large project but another issue is the control panel. I'm building mine for cPanel and the script is specific to cPanel. I haven't really seen anyway around it. It would be a module where later I would need to have different individuals on board contributing to the module and it would automatically scan the back end to see what build and apply those settings to the script.

___
Anthony Licari Dot Com

marcoBauli’s picture

subscribing

lelizondo’s picture

subscribing

Luis

kdes’s picture

this script seems to do some of the things required here:

http://groups.drupal.org/node/19598#comment-67784

Is anyone here still following this and will something this sort ever see the light of the day ?

kdes’s picture

for anyone that is still interested in this http://drupal.org/project/densite

Parkes Design’s picture

subscribe

WorldFallz’s picture

No need to 'subscribe'... click the 'Follow' button on the top right of the post.

Also, I doubt very much there's anything to subscribe to, lol. The OP is 12 years old and the last update was 8 years ago.