Εγκατάσταση και ρύθμιση παραμέτρων του Django Web Framework με εικονικά περιβάλλοντα στο CentOS/Debian - Μέρος 1


Πριν από περίπου 20 χρόνια, όταν ο World Wide Web βρισκόταν ακόμη στα σπάργανα, η ύπαρξη ενός προσωπικού ή επιχειρηματικού ιστότοπου ήταν σχεδόν μια σπάνια πολυτέλεια. Με την επακόλουθη ανάπτυξη αρκετών τεχνολογιών Ιστού και την εισαγωγή δυναμικού περιεχομένου που παρέχεται από τον συνδυασμό προγραμμάτων και βάσεων δεδομένων από την πλευρά του διακομιστή, οι εταιρείες δεν θα μπορούσαν πλέον να είναι ικανοποιημένες με την ύπαρξη ενός στατικού ιστότοπου.

Έτσι, οι εφαρμογές Ιστού έγιναν πραγματικότητα – προγράμματα με την πλήρη έννοια της λέξης που τρέχουν πάνω από έναν διακομιστή ιστού και είναι προσβάσιμα μέσω ενός προγράμματος περιήγησης Ιστού.

Για να γίνει η ανάπτυξη ευκολότερη και πιο αποτελεσματική, σχεδιάστηκαν διαδικτυακά πλαίσια για να βοηθήσουν τους προγραμματιστές στις προσπάθειές τους να δημιουργήσουν εφαρμογές. Εν ολίγοις, ένα πλαίσιο ιστού φροντίζει για κοινές βασικές λειτουργίες στη διαδικασία ανάπτυξης, όπως η διαχείριση περιόδων σύνδεσης χρήστη, η αλληλεπίδραση με βάσεις δεδομένων και η καλή πρακτική διατήρησης της επιχειρηματικής λογικής ξεχωριστή από τη λογική εμφάνισης, για να αναφέρουμε μερικά παραδείγματα.

Σε αυτήν τη σειρά Django 3 άρθρων, θα σας παρουσιάσουμε το Django, ένα δημοφιλές πλαίσιο ιστού που βασίζεται στην Python. Για αυτόν τον λόγο, προτείνεται τουλάχιστον λίγη εξοικείωση με αυτήν τη γλώσσα προγραμματισμού, αλλά αν έχετε ελάχιστη έως καθόλου εμπειρία με αυτήν, θα σας καθοδηγήσουμε επίσης στα βασικά.

Εγκατάσταση του Django σε διακομιστές CentOS και Debian

Παρόλο που μπορείτε να εγκαταστήσετε το Django τόσο από το Debian (v1.7.7: η εκτεταμένη υποστήριξη θα διακοπεί τον Δεκέμβριο 2015) όσο και από το Fedora EPEL (v1.6.11: η εκτεταμένη υποστήριξη διακόπηκε στα αποθετήρια Απρίλιος 2015, η διαθέσιμη έκδοση δεν είναι η πιο πρόσφατη σταθερή έκδοση LTS (Long Term Support) (v1.8.13, από τον Μάιο 2016).

Σε αυτό το σεμινάριο θα σας δείξουμε πώς να εγκαταστήσετε το Django v1.8.13 καθώς η εκτεταμένη υποστήριξή του είναι εγγυημένη τουλάχιστον έως τον Απρίλιο του 2018.

Η προτεινόμενη μέθοδος εγκατάστασης του Django είναι μέσω του pip, ενός δημοφιλούς εργαλείου για τη διαχείριση πακέτων Python. Επίσης, προκειμένου να δημιουργηθούν απομονωμένα περιβάλλοντα Python και να αποφευχθούν συγκρούσεις μεταξύ έργων που ενδέχεται να απαιτούν διαφορετικές εκδόσεις εξαρτήσεων λογισμικού, η χρήση εικονικών περιβαλλόντων ενθαρρύνεται ιδιαίτερα.

Τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τη διαχείριση εικονικών περιβαλλόντων Python ονομάζονται virtualenv.

Ακολουθήστε αυτά τα βήματα για να πραγματοποιήσετε την εγκατάσταση:

1. Για διανομές βασισμένες στο Fedora (εκτός από το ίδιο το Fedora), ενεργοποιήστε πρώτα το αποθετήριο EPEL:

# yum update && yum install epel-release

2. Εγκαταστήστε τα pip και virtualenv:

Διανομές που βασίζονται στο Fedora:
# yum install python-pip python-virtualenv
OR 
# dnf install python-pip python-virtualenv
Debian και παράγωγα:
# aptitude update && aptitude install python-pip virtualenv

3. Δημιουργήστε έναν κατάλογο για να αποθηκεύσετε το αρχικό σας έργο.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Δημιουργήστε και ενεργοποιήστε ένα εικονικό περιβάλλον:

# virtualenv myfirstdjangoenv

Η παραπάνω εντολή δημιουργεί μια δέσμη αρχείων και υποκαταλόγων στο ~/myfirstdjangoenv και ουσιαστικά εγκαθιστά ένα τοπικό αντίγραφο του Python και του pip στον τρέχοντα κατάλογο εργασίας . Στη συνέχεια, πρέπει να ενεργοποιήσουμε το εικονικό περιβάλλον που μόλις δημιουργήσαμε:

# source myfirstdjangoenv/bin/activate

5. Παρατηρήστε πώς αλλάζει η γραμμή εντολών μετά την τελευταία εντολή. Ήρθε η ώρα να εγκαταστήσετε το Django:

Λάβετε υπόψη ότι το παρακάτω στιγμιότυπο οθόνης λήφθηκε κατά τη διάρκεια μιας προηγούμενης έκδοσης αυτού του σεμιναρίου, αλλά η αναμενόμενη έξοδος είναι η ίδια κατά την εγκατάσταση του Django 1.8.13):

# pip install Django==1.8.13

Μπορείτε να ελέγξετε την έκδοση Django εκκινώντας ένα κέλυφος Python από τον τρέχοντα κατάλογο εργασίας σας:

# python
>>> import django
>>> print(django.get_version())

(Και πάλι, η παραπάνω εντολή θα πρέπει να επιστρέψει 1.8.13 κατά τον έλεγχο της τρέχουσας έκδοσης του Django).

Για έξοδο από την προτροπή Python, πληκτρολογήστε:

>>> exit() 

και πατήστε Enter. Στη συνέχεια, απενεργοποιήστε το εικονικό περιβάλλον:

# deactivate

Λάβετε υπόψη ότι ενώ το εικονικό περιβάλλον παραμένει απενεργοποιημένο, το Django δεν είναι διαθέσιμο:

Πώς να δημιουργήσετε ένα πρώτο έργο στο Django

Για να δημιουργήσετε ένα έργο μέσα στο εικονικό περιβάλλον που δημιουργήσαμε νωρίτερα, πρέπει να ενεργοποιηθεί:

# source myfirstdjangoenv/bin/activate

Στη συνέχεια, το πλαίσιο θα δημιουργήσει ολόκληρη τη δομή καταλόγου για την αποθήκευση του έργου σας. Για να το κάνετε αυτό, θα χρειαστεί να τρέξετε.

# django-admin startproject myfirstdjangoproject

Η παραπάνω εντολή θα δημιουργήσει έναν κατάλογο με το όνομα myfirstdjangoproject στον τρέχοντα κατάλογο εργασίας σας.

όπου θα βρείτε ένα αρχείο με το όνομα manage.py (ένα βοηθητικό πρόγραμμα που θα σας βοηθήσει να διαχειριστείτε το έργο σας αργότερα) και έναν άλλο υποκατάλογο (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Αυτός ο τελευταίος υποκατάλογος θα χρησιμεύσει ως κοντέινερ για τα αρχεία του έργου.

Ενώ τα υπόλοιπα αρχεία θα έχουν νόημα αφού ελέγξουμε κάποια Python για να ξεκινήσουμε τη σύνταξη μιας πραγματικής εφαρμογής Ιστού, αξίζει και καλά να σημειώσουμε τα βασικά αρχεία που θα βρεθούν μέσα σε έναν κατάλογο κοντέινερ έργου:

  1. myfirstdjangoproject/__init__.py: Αυτό το κενό αρχείο λέει στην Python ότι αυτός ο κατάλογος πρέπει να θεωρείται πακέτο Python.
  2. myfirstdjangoproject/settings.py: Συγκεκριμένες ρυθμίσεις για αυτό το έργο Django.
  3. myfirstdjangoproject/urls.py: ένα TOC (Πίνακας Περιεχομένων) του ιστότοπού σας που υποστηρίζεται από το Django.
  4. myfirstdjangoproject/wsgi.py: Ένα σημείο εισόδου για διακομιστές ιστού συμβατούς με WSGI για την εξυπηρέτηση του έργου σας.

# ls 
# ls -l myfirstdjangoproject
# ls -l myfirstdjangoproject/myfirstdjangoproject

Επιπλέον, το Django διαθέτει έναν ελαφρύ ενσωματωμένο διακομιστή ιστού (γραμμένο σε Python παρόμοιο με το Python SimpleHTTP, τι άλλο;) που μπορεί να χρησιμοποιηθεί για τη δοκιμή των εφαρμογών σας κατά την ανάπτυξη διαδικασία χωρίς να χρειάζεται να ασχοληθείτε με την εργασία ρύθμισης διακομιστή web σε αυτό το συγκεκριμένο στάδιο.

Ωστόσο, πρέπει να γνωρίζετε ότι αυτό δεν είναι κατάλληλο για περιβάλλον παραγωγής – μόνο για ανάπτυξη. Για να ξεκινήσετε το έργο που δημιουργήθηκε πρόσφατα, αλλάξτε τον τρέχοντα κατάλογο εργασίας σας στον κατάλογο κοντέινερ για το έργο σας (~/myfirstdjangoenv/myfirstdjangoproject) και εκτελέστε:

# python manage.py runserver 0.0.0.0:8000

Εάν αντιμετωπίσετε το ακόλουθο σφάλμα:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Κάνε αυτό που λέει:

# python manage.py migrate

και μετά ξεκινήστε ξανά τον διακομιστή:

# python manage.py runserver 0.0.0.0:8000

Θα καλύψουμε την έννοια της μετεγκατάστασης στα επόμενα άρθρα αυτής της σειράς, ώστε να αγνοήσετε το μήνυμα σφάλματος προς το παρόν.

Σε κάθε περίπτωση, μπορείτε να αλλάξετε την προεπιλεγμένη θύρα όπου θα ακούει ο ενσωματωμένος διακομιστής web. Χρησιμοποιώντας το 0.0.0.0 ως διεπαφή δικτύου για ακρόαση, επιτρέπουμε σε άλλους υπολογιστές στο ίδιο δίκτυο να έχουν πρόσβαση στη διεπαφή χρήστη του έργου (εάν χρησιμοποιείτε αντ' αυτού το 127.0.0.1, θα μπορείτε να έχετε πρόσβαση στη διεπαφή χρήστη μόνο από τον localhost).

Μπορείτε επίσης να αλλάξετε τη θύρα σε μια άλλη της επιλογής σας, αλλά θα πρέπει επίσης να βεβαιωθείτε ότι η κυκλοφορία μέσω αυτής της θύρας επιτρέπεται μέσω του τείχους προστασίας σας:

# firewall-cmd --add-port=8000/tcp
# firewall-cmd --permanent --add-port=8000/tcp

Φυσικά, είναι αυτονόητο ότι θα χρειαστεί να ενημερώσετε την επιτρεπόμενη θύρα εάν επιλέξετε να χρησιμοποιήσετε μια διαφορετική κατά την εκκίνηση του ελαφρού διακομιστή web.

Θα πρέπει να δείτε την ακόλουθη έξοδο στο τερματικό σας:

# python manage.py runserver 0.0.0.0:8000

Σε αυτό το σημείο, μπορείτε να ανοίξετε το αγαπημένο σας πρόγραμμα περιήγησης ιστού και να πλοηγηθείτε στη διεύθυνση IP του μηχανήματος όπου εγκαταστήσατε το Django ακολουθούμενη από τον αριθμό θύρας. Στην περίπτωσή μου, είναι ένα πλαίσιο Debian Jessie με IP 192.168.0.25 και ακρόαση στη θύρα 8000:

http://192.168.0.25:8000

Αν και είναι υπέροχο που μπορέσαμε να ολοκληρώσουμε την αρχική ρύθμιση ενός έργου, απομένει ακόμη πολλή δουλειά, όπως υποδεικνύεται στο παραπάνω μήνυμα.

Περίληψη

Σε αυτόν τον οδηγό έχουμε εξηγήσει πώς να εγκαταστήσετε και να διαμορφώσετε ένα εικονικό περιβάλλον για το Django, ένα ευέλικτο πλαίσιο web ανοιχτού κώδικα που βασίζεται στην Python.

Ανεξάρτητα από το αν είστε προγραμματιστής εφαρμογών ή διαχειριστής συστήματος, θα θέλετε να προσθέσετε σελιδοδείκτη σε αυτό το άρθρο και στην υπόλοιπη σειρά αυτής της σειράς, επειδή το πιθανότερο είναι ότι κάποια στιγμή θα χρειαστεί να εξετάσετε την ανάγκη ενός τέτοιου εργαλείου για τις καθημερινές σας εργασίες.

Στα επόμενα άρθρα αυτής της σειράς θα συζητήσουμε πώς να οικοδομήσουμε πάνω σε αυτά που έχουμε ήδη καταφέρει για να δημιουργήσουμε μια απλή, αλλά λειτουργική, διαδικτυακή εφαρμογή χρησιμοποιώντας Django και Python.

Όπως πάντα, μη διστάσετε να μας στείλετε μια σημείωση εάν έχετε ερωτήσεις σχετικά με αυτό το άρθρο ή προτάσεις για βελτίωση. Ανυπομονούμε να ακούσουμε από εσάς!