Εγκατάσταση πακέτων
Ρύθμιση βάσεων δεδομένων
Ρυθμίστε το εικονικό περιβάλλον
Μεταφόρτωση και διαμόρφωση έργου
Διαμόρφωση Gunicorn
Nginx
συμπέρασμα
Αυτό το σεμινάριο εξηγεί πώς να ρυθμίσετε το Django στο Debian 8 (jessie). Θα δείξω πώς να χρησιμοποιείτε και την Python 2 και 3 καθώς και το Nginx και το PostgreSQL.
Όλα όσα γίνονται σε αυτό το σεμινάριο γίνονται ως root.
Εγκατάσταση πακέτων
Για να ξεκινήσουμε, πρέπει να εγκαταστήσουμε ορισμένα πακέτα.
Για την Python 2:
apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Για την Python 3:
apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Ρύθμιση βάσεων δεδομένων
Αρχικά, συνδέουμε τον χρήστη postgres
.
sudo -u postgres -s
Στη συνέχεια, δημιουργούμε μια νέα βάση δεδομένων. Το όνομα της βάσης δεδομένων μπορεί να είναι ό,τι θέλετε να είναι ( dbname
χρησιμοποιείται εδώ), αλλά πρέπει να είστε συνεπείς με την υπόλοιπη ρύθμιση.
createdb dbname
Δημιουργήστε έναν χρήστη για τη νέα βάση δεδομένων. Και πάλι, αυτό μπορεί να είναι ό,τι θέλετε, αλλά χρησιμοποίησα dbuser
. Αυτό θα σας ζητήσει επίσης να ορίσετε έναν κωδικό πρόσβασης.
createuser -P dbuser
Ο χρήστης πρέπει τώρα να έχει πρόσβαση στη βάση δεδομένων. Απλώς φροντίστε να χρησιμοποιήσετε το σωστό όνομα βάσης δεδομένων και όνομα χρήστη.
psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q
Έξοδος στο root.
exit
Ενεργοποίηση και εκκίνηση PostgreSQL:
systemctl enable postgresql
systemctl start postgresql
Ρυθμίστε το εικονικό περιβάλλον
Αντί να χρησιμοποιούμε απλώς τα παγκόσμια αρχεία python, θα χρησιμοποιούμε ένα εικονικό περιβάλλον. Ξεκινάμε δημιουργώντας έναν κατάλογο για να τα κρατήσει όλα.
mkdir -p /opt/project
Τώρα δημιουργούμε το περιβάλλον. Αυτό είναι διαφορετικό για τους χρήστες python 2 και 3.
Για την Python 2:
virtualenv . -p python
Για την Python 3:
virtualenv . -p python3
Μπείτε στο εικονικό περιβάλλον.
source bin/activate
Εγκαταστήστε τα Django, Gunicorn και psycopg2.
pip install django
pip install gunicorn
pip install psycopg2
Εάν χρειάζεστε μια συγκεκριμένη έκδοση του Django, αλλάξτε την εντολή εγκατάστασης για να ταιριάζει με την παρακάτω μορφή. Αυτό το παράδειγμα εγκαθιστά την 1.7.8.
pip install django==1.7.8
Τώρα τελειώσαμε με αυτό προς το παρόν, ώστε να μπορούμε να απενεργοποιήσουμε το εικονικό μας περιβάλλον.
deactivate
Μεταφόρτωση και διαμόρφωση έργου
Αυτή είναι η στιγμή που ανεβάζουμε το έργο μας στον διακομιστή και βεβαιωνόμαστε ότι όλες οι ρυθμίσεις του είναι σωστές. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε μέθοδο για να το κάνετε αυτό. FTP, SFTP, git, κ.λπ. είναι όλοι οι τρόποι για να γίνει αυτό. Εάν χρησιμοποιείτε το git για την παρακολούθηση του κώδικα του έργου, μπορείτε απλώς να τον κλωνοποιήσετε στον διακομιστή. Αυτή η εντολή git θα κλωνοποιήσει το έργο στον διακομιστή και θα το τοποθετήσει στο /opt/project/project/
.
git clone http://example.com:project.git
Ανοίξτε το settings.py
αρχείο σε οποιοδήποτε πρόγραμμα περιήγησης κειμένου.
Πρώτα πρώτα, η λειτουργία εντοπισμού σφαλμάτων πρέπει να είναι απενεργοποιημένη. Αναζητήστε τη DEBUG = True
γραμμή και αλλάξτε True
σε False
. Μετά από αυτό, βεβαιωθείτε ότι έχετε ALLOWED_HOSTS
ορίσει κάποια τιμή.
ALLOWED_HOSTS = ['*']
Αναζητήστε το DATABASES
λεξικό και θα πρέπει να μοιάζει με αυτό:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'password you set',
'HOST': 'localhost',
'PORT': ''
}
}
Το τελευταίο βήμα εδώ είναι να ορίσετε μια στατική ρίζα. Τοποθετήστε τα παρακάτω ακριβώς παρακάτω STATIC_URL
.
STATIC_ROOT = '/opt/project/static/'
Βγείτε από το αρχείο και δημιουργήστε τον στατικό ριζικό κατάλογο.
mkdir -p /opt/project/static
Τώρα μεταφέρετε τη βάση δεδομένων, δημιουργήστε έναν σούπερ χρήστη και συλλέξτε όλα τα στατικά αρχεία.
cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic
Ο Gunicorn είναι ο διακομιστής WSGI που θα χρησιμοποιήσουμε. Εφόσον το Debian 8 συνοδεύεται από systemd, θα εκμεταλλευτούμε το systemd για να ξεκινήσουμε και να σταματήσουμε τον διακομιστή.
Δημιουργήστε το αρχείο /etc/systemd/system/django.service
και προσθέστε το παρακάτω περιεχόμενο.
[Unit]
Description=Django with Gunicorn
After=network.target
[Service]
User=root
Group=root
WorkingDirectory=/opt/project
ExecStart=/opt/project/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project.wsgi
[Install]
WantedBy=multi-user.target
Ενεργοποιήστε και ξεκινήστε την υπηρεσία που δημιουργήσαμε.
systemctl enable django.service
systemctl start django.service
Nginx
Ίσως έχετε παρατηρήσει ότι δεσμεύσαμε τον διακομιστή Gunicorn στο 127.0.0.1
. Τώρα χρειαζόμαστε έναν τρόπο πρόσβασης σε αυτό εκτός του διακομιστή. Εδώ μπαίνει το Nginx.
Δημιουργήστε το νέο αρχείο /etc/nginx/sites-available/django
και προσθέστε το παρακάτω. Το domain.example.com
εξάρτημα μπορεί να ρυθμιστεί σε ό,τι χρειάζεστε.
server {
listen 80;
server_name domain.example.com;
access_log off;
location /static/ {
alias /opt/project/static/;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
}
Δημιουργήστε έναν συμβολικό σύνδεσμο για να ενεργοποιήσετε αυτόν τον ιστότοπο.
ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django
Ενεργοποιήστε και ξεκινήστε το Nginx.
systemctl enable nginx
systemctl start nginx
συμπέρασμα
Συγχαρητήρια, έχετε τώρα έναν λειτουργικό ιστότοπο Django στο Debian VPS σας.