-
Notifications
You must be signed in to change notification settings - Fork 444
/
deployment.txt
115 lines (79 loc) · 3.25 KB
/
deployment.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
.. _deployment:
==========
Deployment
==========
In short:
* Create a ``local_settings.py`` alongside ``settings.py`` for your
host-specific settings (like database connection, email, etc).
* Configure your WSGI or FastCGI server.
All projects come with the deployment files to properly run your Pinax project
in a production environment. These are located in the ``deploy/`` directory
of your project.
Using mod_wsgi
==============
Here is a basic configuration for Apache (assuming you are using Python 2.7)::
WSGIDaemonProcess mysite python-path=/path/to/mysite-env/lib/python2.7/site-packages
WSGIProcessGroup mysite
WSGIScriptAlias / /path/to/project/wsgi.py
<Directory /path/to/project>
Order deny,allow
Allow from all
</Directory>
The above configuration will likely need to be modified before use. Most
specifically make sure the ``python-path`` option points to the right Python
version. We encourage you to read about `WSGIDaemonProcess`_ to learn more
about what you can configure.
.. _WSGIDaemonProcess: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess
Using gunicorn
==============
Install gunicorn_ in your environment (best to add it to your requirements
file) and run ``gunicorn``::
(mysite-env)$ pip install gunicorn
(mysite-env)$ gunicorn --workers=2 --bind=127.0.0.1:8000 wsgi:application
This assumes your current working directory is your project root (``wsgi``
must be importable from where you are). Running the example shown above as-is
will not be sufficient for a production website. You will need to daemonize
the gunicorn processes and supervise them. Please refer to
`gunicorn documentation`_ for more information.
.. _gunicorn: http://gunicorn.org/
.. _gunicorn documentation: http://gunicorn.org/deploy.html
Using FastCGI
=============
To use FastCGI (including SCGI or AJP) you must install `flup`_. This can be
done by using ``pip``::
pip install flup
Once installed, you can use Django's built-in ``runfcgi`` management command
to run a server. For example::
python manage.py method=threaded host=127.0.0.1 port=3033
You can learn much more about ``runfcgi`` from the Django documentation on
`FastCGI deployment`_.
.. _flup: http://trac.saddi.com/flup
.. _FastCGI deployment: https://docs.djangoproject.com/en/1.3/howto/deployment/fastcgi/
Media files
===========
During development media files are handled for you by staticfiles. Serving of
media is controlled by ``DEBUG`` (previous versions of Pinax used an additional
setting ``SERVE_MEDIA`` that controlled this behavior, but it is now unused).
Pinax, by default, sets ``STATIC_ROOT`` and ``MEDIA_ROOT`` to directories
within the same directory (``site_media``). This is very beneficial to running
a production Pinax site as you can configure your web server to serve files
from a single directory.
To collect all your static files into ``STATIC_ROOT`` for your web server to
serve run::
(mysite-env)$ python manage.py collectstatic
nginx
-----
::
server {
...
location /site_media {
alias /path/to/site_media;
}
}
Apache
------
::
<VirtualHost *:80>
...
Alias /site_media/ /path/to/site_media/
</VirtualHost>