Finished proofreading docs/fastcgi.txt
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3209 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
e19112b47c
commit
b410464a00
|
@ -180,14 +180,13 @@ This is probably the most common case, if you're using Django's admin site::
|
|||
lighttpd setup
|
||||
==============
|
||||
|
||||
lighttpd is a light-weight asynchronous Web server commonly used for serving
|
||||
static files. It supports FastCGI natively, though, and thus is a good choice
|
||||
for serving both static and dynamic pages, if your site doesn't have any
|
||||
Apache-specific components.
|
||||
lighttpd is a lightweight Web server commonly used for serving static files. It
|
||||
supports FastCGI natively and, thus, is a good choice for serving both static
|
||||
and dynamic pages, if your site doesn't have any Apache-specific needs.
|
||||
|
||||
Make sure ``mod_fastcgi`` is in your modules list, somewhere after
|
||||
mod_rewrite and mod_access, but not after mod_accesslog. You'll probably
|
||||
want mod_alias as well, for serving admin media.
|
||||
``mod_rewrite`` and ``mod_access``, but not after ``mod_accesslog``. You'll
|
||||
probably want ``mod_alias`` as well, for serving admin media.
|
||||
|
||||
Add the following to your lighttpd config file::
|
||||
|
||||
|
@ -213,14 +212,15 @@ Add the following to your lighttpd config file::
|
|||
"^(/.*)$" => "/mysite.fcgi$1",
|
||||
)
|
||||
|
||||
Running multiple django sites on one lighttpd
|
||||
Running multiple Django sites on one lighttpd
|
||||
---------------------------------------------
|
||||
|
||||
lighttpd allows you to use what is called conditional configuration to allow
|
||||
configuration to be customized per-host. In order to specify multiple fastcgi
|
||||
sites, simply add a conditional block around your fastcgi config for each site::
|
||||
lighttpd lets you use "conditional configuration" to allow configuration to be
|
||||
customized per host. To specify multiple FastCGI sites, just add a conditional
|
||||
block around your FastCGI config for each site::
|
||||
|
||||
$HTTP["host"] == "www.website1.com" {
|
||||
# If the hostname is 'www.example1.com'...
|
||||
$HTTP["host"] == "www.example1.com" {
|
||||
server.document-root = "/foo/site1"
|
||||
fastcgi.server = (
|
||||
...
|
||||
|
@ -228,7 +228,8 @@ sites, simply add a conditional block around your fastcgi config for each site::
|
|||
...
|
||||
}
|
||||
|
||||
$HTTP["host"] == "www.website2.com" {
|
||||
# If the hostname is 'www.example2.com'...
|
||||
$HTTP["host"] == "www.example2.com" {
|
||||
server.document-root = "/foo/site2"
|
||||
fastcgi.server = (
|
||||
...
|
||||
|
@ -236,44 +237,44 @@ sites, simply add a conditional block around your fastcgi config for each site::
|
|||
...
|
||||
}
|
||||
|
||||
You can also run multiple django installations on the same site simply by
|
||||
specifying multiple entries in the ``fastcgi.server`` directive, add one
|
||||
fastcgi host for each.
|
||||
You can also run multiple Django installations on the same site simply by
|
||||
specifying multiple entries in the ``fastcgi.server`` directive. Add one
|
||||
FastCGI host for each.
|
||||
|
||||
Running Django on a shared-hosting provider
|
||||
===========================================
|
||||
Running Django on a shared-hosting provider with Apache
|
||||
=======================================================
|
||||
|
||||
For many users on shared-hosting providers, you aren't able to run your own
|
||||
server daemons nor do they have access to the httpd.conf of their webserver.
|
||||
However, it is still possible to run Django using webserver-spawned processes.
|
||||
Many shared-hosting providers don't allow you to run your own server daemons or
|
||||
edit the ``httpd.conf`` file. In these cases, it's still possible to run Django
|
||||
using Web server-spawned processes.
|
||||
|
||||
.. admonition:: Note
|
||||
|
||||
If you are using webserver-managed processes, there's no need for you
|
||||
to start the FastCGI server on your own. Apache will spawn a number
|
||||
of processes, scaling as it needs to.
|
||||
If you're using Web server-spawned processes, as explained in this section,
|
||||
there's no need for you to start the FastCGI server on your own. Apache
|
||||
will spawn a number of processes, scaling as it needs to.
|
||||
|
||||
In your web root directory, add this to a file named .htaccess ::
|
||||
In your Web root directory, add this to a file named ``.htaccess`` ::
|
||||
|
||||
AddHandler fastcgi-script .fcgi
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
|
||||
|
||||
Now you must add a small shim script in order for apache to properly
|
||||
spawn your FastCGI program. Create a mysite.fcgi and place it in your
|
||||
web directory, making it executable ::
|
||||
Then, create a small script that tells Apache how to spawn your FastCGI
|
||||
program. Create a file ``mysite.fcgi`` and place it in your Web directory, and
|
||||
be sure to make it executable ::
|
||||
|
||||
#!/usr/bin/python
|
||||
import sys, os
|
||||
|
||||
# add a custom pythonpath
|
||||
# Add a custom Python path.
|
||||
sys.path.insert(0, "/home/user/python")
|
||||
|
||||
# switch to the directory of your project. (optional)
|
||||
# Switch to the directory of your project. (Optional.)
|
||||
# os.chdir("/home/user/myproject")
|
||||
|
||||
# change to the name of your app's settings module
|
||||
# Set the DJANGO_SETTINGS_MODULE environment variable.
|
||||
os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings"
|
||||
|
||||
from django.core.servers.fastcgi import runfastcgi
|
||||
|
@ -282,13 +283,13 @@ web directory, making it executable ::
|
|||
Restarting the spawned server
|
||||
-----------------------------
|
||||
|
||||
If you change the code of your site, to make apache re-load your django
|
||||
application, you do not need to restart the server. Simply re-upload or
|
||||
edit your ``mysite.fcgi`` in such a way that the timestamp on the file
|
||||
will change. When apache sees that the file has been updated, it will
|
||||
restart your django application for you.
|
||||
If you change any Python code on your site, you'll need to tell FastCGI the
|
||||
code has changed. But there's no need to restart Apache in this case. Rather,
|
||||
just reupload ``mysite.fcgi``, or edit the file, so that the timestamp on the
|
||||
file will change. When Apache sees the file has been updated, it will restart
|
||||
your Django application for you.
|
||||
|
||||
If you have access to a command shell on a unix system, restarting the
|
||||
server can be done with the ``touch`` command::
|
||||
If you have access to a command shell on a Unix system, you can accomplish this
|
||||
easily by using the ``touch`` command::
|
||||
|
||||
touch mysite.fcgi
|
||||
|
|
Loading…
Reference in New Issue