WebFaction
Community site: login faq

I'm a huge fan of the webfaction service, and it's proving a very nice springboard into understanding web development a lot better. I'm wondering if anyone might be able to explain a little bit about how app creation works on the server end, because I think this would really put some pieces together for me!

Right now, I know that when I create an 'app' (e.g. Django) from the control panel, I am having you guys create 'an Apache server with mod_wsgi 3.4 and Python 2.7 installed running Django 1.4'. Does this mean that a separate virtual machine is created on the server machine, exclusively to act as the apache server?

I'm also imaging that the directory listing I see when I SSH in is a clever mirage of symlinks - if the different webapps are really different servers, there's presumably no common directory underneath them? I have zero experience with Apache, so I'd love to get a better grip on what's really happening here!

Thanks again for running such a high-quality and easy-to-use service.

asked 07 Dec '12, 07:45

gpallis
32
accept rate: 0%


We don't use any virtualization at all - all of our machines are real servers.

When you create an app via our control panel, a real directory is created on the filesystem, and software is installed in it. If you have multiple plans on multiple machines on your account, then the app will be created on whatever machine you specify. When your Apache runs, it's just another set of processes running as your user on your shared server, which is a real physical machine.

For example, when you install a Django app and we create 'an Apache server with mod_wsgi 3.4 and Python 2.7 installed running Django 1.4'':

  • A directory for the app is created at /home/username/webapps/appname
  • Django libraries are installed in /home/username/webapps/appname/lib/python2.7
  • A default Django project is created in /home/username/webapps/appname/myproject
  • An Apache instance is created in /home/username/webapps/appname/apache2 and is configured to serve the default Django project via mod_wsgi.

The process is similar for other app types: a directory is created, and the app is installed into it. The exceptions to this are:

  • Symlink apps: these create a symlink at /home/username/webapps/appname pointing to whatever directory you specify.
  • WebDAV apps: these don't create anything in /home/username/webapps at all - they just serve as a point of reference so that our front-end server knows what directory you want to serve via WebDAV.

When you add an app to a site, our control panel looks at the site configuration you've created (domains, apps, and URL paths) and generates the front-end web server configuration to make that happen.

That's really all there is to it :)

permanent link

answered 07 Dec '12, 08:50

seanf
12.2k41836
accept rate: 37%

edited 07 Dec '12, 10:08

Thanks! That's really helpful. I still need to think through it but you've given me a great start - thanks once again.

(07 Dec '12, 18:39) gpallis
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×225
×54
×7

question asked: 07 Dec '12, 07:45

question was seen: 2,040 times

last updated: 07 Dec '12, 18:39

WEBFACTION
REACH US
SUPPORT
AFFILIATE PROGRAM
LEGAL
© COPYRIGHT 2003-2019 SWARMA LIMITED - WEBFACTION IS A SERVICE OF SWARMA LIMITED
REGISTERED IN ENGLAND AND WALES 5729350 - VAT REGISTRATION NUMBER 877397162
5TH FLOOR, THE OLD VINYL FACTORY, HAYES, UB3 1HA, UNITED KINGDOM