Instaloni paketat
Vendosja e bazave të të dhënave
Vendosni mjedisin virtual
Ngarkimi dhe konfigurimi i projektit
Konfiguro Gunicorn
Nginx
konkluzioni
Ky tutorial shpjegon se si të konfiguroni Django në Debian 8 (jessie). Unë do të tregoj se si të përdorim Python 2 dhe 3, si dhe Nginx dhe PostgreSQL.
Gjithçka e bërë në këtë tutorial është bërë si rrënjë.
Instaloni paketat
Për të filluar, ne duhet të instalojmë disa paketa.
Për Python 2:
apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Për Python 3:
apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Vendosja e bazave të të dhënave
Së pari, ne hyjmë te përdoruesi postgres
.
sudo -u postgres -s
Më pas, ne krijojmë një bazë të dhënash të re. Emri i bazës së të dhënave mund të jetë çfarëdo që dëshironi të jetë ( dbname
përdoret këtu), por ju duhet të jeni në përputhje me pjesën tjetër të konfigurimit.
createdb dbname
Krijo një përdorues për bazën e re të të dhënave. Përsëri, kjo mund të jetë çfarëdo që dëshironi të jetë, por unë përdora dbuser
. Kjo do t'ju kërkojë gjithashtu të vendosni një fjalëkalim.
createuser -P dbuser
Përdoruesit tani duhet t'i jepet akses në bazën e të dhënave. Vetëm sigurohuni që të përdorni emrin e saktë të bazës së të dhënave dhe emrin e përdoruesit.
psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q
Dilni në rrënjë.
exit
Aktivizo dhe nis PostgreSQL:
systemctl enable postgresql
systemctl start postgresql
Vendosni mjedisin virtual
Në vend që të përdorim vetëm skedarët globalë të Python, ne do të përdorim një mjedis virtual. Ne fillojmë duke krijuar një direktori për të mbajtur të gjitha.
mkdir -p /opt/project
Tani krijojmë mjedisin. Kjo është e ndryshme për përdoruesit e python 2 dhe 3.
Për Python 2:
virtualenv . -p python
Për Python 3:
virtualenv . -p python3
Hyni në mjedisin virtual.
source bin/activate
Instaloni Django, Gunicorn dhe psycopg2.
pip install django
pip install gunicorn
pip install psycopg2
Nëse keni nevojë për një version specifik të Django, ndryshoni komandën e instalimit që të përputhet me formatin e mëposhtëm. Ky shembull instalon 1.7.8.
pip install django==1.7.8
Tani për tani kemi mbaruar me këtë, kështu që mund të çaktivizojmë mjedisin tonë virtual.
deactivate
Ngarkimi dhe konfigurimi i projektit
Kjo është koha kur ngarkojmë projektin tonë në server dhe sigurohemi që të gjitha cilësimet e tij janë të sakta. Ju mund të përdorni çdo metodë për ta bërë këtë. FTP, SFTP, git, etj janë të gjitha mënyrat për ta bërë këtë. Nëse jeni duke përdorur git për të gjurmuar kodin e projektit, thjesht mund ta klononi atë në server. Kjo komandë git do të klonojë projektin në server dhe do ta vendosë atë në /opt/project/project/
.
git clone http://example.com:project.git
Hapni settings.py
skedarin në çdo shfletues teksti.
Së pari, mënyra e korrigjimit duhet të jetë joaktiv. Kërkoni DEBUG = True
vijën dhe ndryshoni True
në False
. Pas kësaj, sigurohuni që të keni ALLOWED_HOSTS
vendosur në një vlerë.
ALLOWED_HOSTS = ['*']
Kërkoni DATABASES
fjalorin dhe duhet të duket kështu:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'password you set',
'HOST': 'localhost',
'PORT': ''
}
}
Hapi i fundit këtu është të vendosni një rrënjë statike. Vendosni sa vijon direkt më poshtë STATIC_URL
.
STATIC_ROOT = '/opt/project/static/'
Dilni nga skedari dhe krijoni direktorinë rrënjësore statike.
mkdir -p /opt/project/static
Tani migroni bazën e të dhënave, krijoni një përdorues super dhe mblidhni të gjithë skedarët statikë.
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 është serveri WSGI që ne do të përdorim. Meqenëse Debian 8 vjen me systemd, ne do të përfitojmë nga systemd për të nisur dhe ndaluar serverin.
Krijoni skedarin /etc/systemd/system/django.service
dhe shtoni përmbajtjen e mëposhtme.
[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
Aktivizo dhe nis shërbimin që kemi krijuar.
systemctl enable django.service
systemctl start django.service
Nginx
Ju mund të keni vënë re se ne e lidhëm serverin Gunicorn në 127.0.0.1
. Tani na duhet një mënyrë për ta aksesuar atë nga jashtë serverit. Këtu hyn Nginx.
Krijoni skedarin e ri /etc/nginx/sites-available/django
dhe shtoni sa vijon. domain.example.com
Pjesa mund të vendosen për çdo gjë që ju duhet që ajo të jetë.
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;
}
}
Krijo një lidhje simbolike për të aktivizuar këtë sajt.
ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django
Aktivizo dhe nis Nginx.
systemctl enable nginx
systemctl start nginx
konkluzioni
Urime, tani keni një sajt të Django-s që funksionon në Debian VPS-në tuaj.