Running Booktype on the Nginx web server¶
Example commands are for a Debian/Ubuntu based system. It is recommended to use Supervisor (http://supervisord.org/) or similar software (Upstart on Ubuntu) to control your Gunicorn or FastCGI processes.
As Gunicorn¶
Let us imagine our Booktype project is installed in the /var/www/mybooktype/mybook/ directory. This directory should be owned by the user who is going to run the gunicorn_django process (probably www-data).
# Install needed packages
sudo apt-get install nginx
# Copy configuration file
cp /var/www/mybooktype/mybook/gunicorn.nginx /etc/nginx/sites-available/booktype
# Edit configuration file
# You should change: server_name and fastcgi_pass
vi /etc/nginx/sites-available/booktype
# Enable your Booktype site
ln -s /etc/nginx/sites-available/booktype /etc/nginx/sites-enabled/booktype
# Restart Nginx
service nginx restart
# Activate Python Virtual Environment (IF YOU ARE USING IT)
source /var/www/mybooktype/bin/activate
# Install Gunicorn
pip install gunicorn
# Load environment variables
source /var/www/mybooktype/mybook/booktype.env
# Start Gunicorn (Basic example)
gunicorn_django -b 127.0.0.1:8000 -w 4
As FastCGI¶
Let us imagine our Booktype project is installed in /var/www/mybooktype/mybook/ directory.
# User www-data should be owner
sudo chown -R www-data:www-data /var/www/mybooktype/mybook/
# Install needed packages
sudo apt-get install nginx
# Copy configuration file
cp /var/www/mybooktype/mybook/fastcgi.nginx /etc/nginx/sites-available/booktype
# Edit configuration file
# You should change: server_name and fastcgi_pass
vi /etc/nginx/sites-available/booktype
# Enable your Booktype site
ln -s /etc/nginx/sites-available/booktype /etc/nginx/sites-enabled/booktype
# Restart Nginx
service nginx restart
# Activate Python Virtual Environment (IF YOU ARE USING IT)
source /var/www/mybooktype/bin/activate
# Install Flup (http://www.saddi.com/software/flup/)
pip install flup
# Load environment variables
source /var/www/mybooktype/mybook/booktype.env
# Start FastCGI process (Basic example)
django-admin.py runfcgi host=127.0.0.1 port=8000