Εισαγωγή
Laravel είναι ένα πλαίσιο εφαρμογών ιστού που συνοδεύεται από ένα σύνολο ενσωματωμένων εργαλείων και πόρων για την ανάπτυξη σύγχρονων PHP εφαρμογών. Είναι γνωστό για την αξιοπιστία, την απόδοση, την αποδοτικότητα, τη σπονδυλωτότητα και την ασφάλειά του. Λόγω των διαφόρων ενσωματωμένων χαρακτηριστικών του, το Laravel έχει γνωρίσει απίστευτη αύξηση στη δημοτικότητά του. Πολλοί προγραμματιστές υιοθετούν το Laravel για να απλοποιήσουν τη διαδικασία ανάπτυξης ιστού.
Αυτός ο οδηγός θα δείξει πώς να εγκαταστήσετε και να διαμορφώσετε μια νέα εφαρμογή Laravel σε Ubuntu 20.04.
Laravel σε Ubuntu
Θα χρησιμοποιήσουμε το Composer, έναν διαχειριστή εξαρτήσεων PHP, για τη λήψη και τη διαχείριση του Laravel. Για να εγκαταστήσετε το Composer ακολουθήστε τις οδηγίες αυτού του σεμιναρίου. Ο Nginx server θα εξυπηρετεί την εφαρμογή. Θα δημιουργήσει μια δοκιμαστική εφαρμογή Laravel χρησιμοποιώντας τη βάση δεδομένων MySQL database.
Αυτός ο οδηγός απαιτεί ορισμένες προϋποθέσεις. Υποθέτουμε ότι έχετε ήδη έναν σωστά διαμορφωμένο διακομιστή Ubuntu 20.04 σε λειτουργία. Για αναφορά, δείτε έναν γρήγορο οδηγό σχετικά με τη ρύθμιση ενός διακομιστή Ubuntu. Απαιτείται επίσης να έχετε εγκατεστημένο και διαμορφωμένο το stack LEMP (Linux, Nginx, MySQL και PHP). Έχουμε έναν λεπτομερή οδηγό σχετικά με την εγκατάσταση και διαμόρφωση του LEMP stack.
Επειδή πρόκειται να εγκαταστήσουμε διάφορα πακέτα, απαιτούνται δικαιώματα root. Στην περίπτωση του Ubuntu, ο χρήστης root είναι απενεργοποιημένος από προεπιλογή. Επομένως, χρειαζόμαστε πρόσβαση σε έναν χρήστη που δεν είναι root με δικαιώματα sudo privilege. Here’s πώς να εκχωρήσετε δικαιώματα sudo σε άλλους χρήστες.
Step 1 – Εγκατάσταση ενοτήτων PHP
Πριν εγκαταστήσουμε το Laravel, χρειαζόμαστε ορισμένες σημαντικές ενότητες PHP για το πλαίσιο. Αυτές οι ενότητες είναι άμεσα διαθέσιμες από τα προεπιλεγμένα αποθετήρια πακέτων του Ubuntu. Αυτές οι ενότητες υποστηρίζουν λειτουργίες όπως κωδικοποίηση χαρακτήρων, XML και μαθηματικά ακριβείας.
Αρχικά, ενημερώστε την προσωρινή μνήμη APT και εγκαταστήστε τα πακέτα:
|
1 2 |
$ sudo apt update $ sudo apt install php-mbstring php-xml php-bcmath |
Step 2 – Δημιουργία βάσης δεδομένων για την εφαρμογή
Για να δείξουμε τη λειτουργικότητα του Laravel, θα φτιάξουμε μια εφαρμογή λίστας ταξιδιών που δείχνει τη λίστα με τα μέρη που θα ήθελε να επισκεφτεί ο χρήστης, καθώς και μια λίστα με μέρη που έχουν ήδη επισκεφθεί. Μπορούμε να αποθηκεύσουμε αυτά τα δεδομένα σε έναν πίνακα place με πεδία name (όνομα τοποθεσίας) και visited (σημαίνοντας ως visited ή nonvisited). Ένα επιπλέον πεδίο θα περιλαμβάνει μια μοναδική ταυτότητα για κάθε καταχώριση. Για να συνδέσουμε τα δεδομένα με την εφαρμογή Laravel, θα δημιουργήσουμε έναν αποκλειστικό χρήστη MySQL και θα του εκχωρήσουμε πλήρη δικαιώματα στη βάση δεδομένων travellist.
Η εγγενής βιβλιοθήκη MySQL PHP mysqlnd δεν υποστηρίζει πλέον το caching_sha2_authentication. Επομένως, πρέπει να ρυθμίσουμε τη βάση δεδομένων μας με τη μέθοδο ελέγχου ταυτότητας mysql_native_password. Αποκτήστε πρόσβαση στο κέλυφος MySQL ως root:
|
1 |
$ sudo mysql |
Στη συνέχεια, δημιουργήστε μια νέα βάση δεδομένων με το όνομα travellist:
|
1 |
> CREATE DATABASE travellist; |
Μετά από αυτό, δημιουργήστε έναν αποκλειστικό χρήστη travellist_user με έναν κατάλληλο κωδικό πρόσβασης:
|
1 |
> CREATE USER 'travellist_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password123'; |
Δώστε στον χρήστη travellist_user πλήρη δικαιώματα στη βάση δεδομένων travellist. Αυτό θα εμποδίσει επίσης τον χρήστη από το να δημιουργήσει και να τροποποιήσει οποιαδήποτε άλλη βάση δεδομένων στον διακομιστή:
|
1 |
> GRANT ALL ON travellist.* TO 'travellist_user'@'%'; |
Έξοδος από το κέλυφος MySQL:
|
1 |
> exit |
Ας δοκιμάσουμε τον νέο χρήστη. Η ακόλουθη εντολή θα συνδεθεί στο κέλυφος MySQL ως χρήστης travellist_user. Η σημαία -p θα ζητήσει τον κωδικό πρόσβασης του χρήστη:
|
1 |
$ mysql -u travellist_user -p |
Εκτυπώστε όλες τις διαθέσιμες βάσεις δεδομένων. Όπως διαμορφώθηκε προηγουμένως, θα πρέπει να εμφανίζει μόνο τις travellist και information_schema μόνο:
|
1 |
> SHOW DATABASES; |
Στη συνέχεια, πρέπει να δημιουργήσουμε τον πίνακα δεδομένων places. Εκτελέστε την ακόλουθη δήλωση MySQL:
|
1 2 3 4 5 6 |
> CREATE TABLE travellist.places ( id INT AUTO_INCREMENT, name VARCHAR(255), visited BOOLEAN, PRIMARY KEY(id) ); |
Ας γεμίσουμε τον πίνακα με μερικά δείγματα δεδομένων:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
> INSERT INTO travellist.places (name, visited) VALUES ("Tokyo", false), ("Delhi", true), ("Shanghai", false), ("Moscow", true), ("Lisbon", true), ("Denver", false), ("Berlin", false), ("Istanbul", false), ("Rio", true), ("Beijing", false), ("Helsinki", false); |
Ας δούμε αν τα δεδομένα αποθηκεύτηκαν με επιτυχία στη βάση δεδομένων:
|
1 |
> SELECT * FROM travellist.places; |
Όπως μπορούμε να δούμε, ο δοκιμαστικός πίνακας είναι γεμάτος με έγκυρα δεδομένα. Μπορούμε τώρα να βγούμε από το MySQL shell:
|
1 |
> exit |
Step 3 – Δημιουργία μιας νέας εφαρμογής Laravel
Είμαστε τώρα έτοιμοι να δημιουργήσουμε μια νέα εφαρμογή Laravel χρησιμοποιώντας το Composer. Θα χρησιμοποιήσουμε το travellist ως δοκιμαστική εφαρμογή. Αυτή η εφαρμογή θα εμφανίζει τη λίστα τοποθεσιών από τη βάση δεδομένων MySQL, επιδεικνύοντας τη βασική ρύθμιση του Laravel. Μεταβείτε στον αρχικό κατάλογο του χρήστη:
|
1 |
$ cd ~ |
Το επόμενο βήμα είναι να δημιουργήσετε μια νέα εφαρμογή Laravel χρησιμοποιώντας το Composer. Θα δημιουργήσει έναν αποκλειστικό κατάλογο travellist με μια βασική εφαρμογή Laravel με τις προεπιλεγμένες ρυθμίσεις. Εκτελέστε την ακόλουθη εντολή:
|
1 |
$ composer create-project --prefer-dist laravel/laravel travellist |
Μόλις δημιουργηθεί η εφαρμογή, μπορούμε να επαληθεύσουμε αν όλα τα στοιχεία εγκαταστάθηκαν με επιτυχία:
|
1 2 |
$ cd travellist $ php artisan |
Το αποτέλεσμα επιβεβαιώνει ότι όλα τα αρχεία της εφαρμογής βρίσκονται στη θέση τους. Διασφαλίζει επίσης ότι όλα τα εργαλεία γραμμής εντολών του Laravel είναι λειτουργικά. Ωστόσο, απαιτείται ακόμα η ρύθμιση της εφαρμογής για τη δημιουργία της βάσης δεδομένων και μερικές επιπλέον μικροαλλαγές.
Step 4 – Ρύθμιση του Laravel
Όλα τα αρχεία ρυθμίσεων του Laravel αποθηκεύονται μέσα σε έναν κατάλογο με το όνομα config μέσα στον ριζικό κατάλογο της εφαρμογής. Επιπλέον, κατά την εγκατάσταση του Laravel με το Composer, δημιουργείται επίσης ένα αρχείο περιβάλλοντος. Περιέχει διάφορες ρυθμίσεις ειδικές για το τρέχον περιβάλλον. Οι τιμές που δηλώνονται σε αυτό θα υπερισχύουν των τιμών που έχουν οριστεί στα κανονικά αρχεία ρυθμίσεων στο config.
Κάθε μοναδική εγκατάσταση θα απαιτεί το δικό της αρχείο περιβάλλοντος για τον ορισμό τιμών όπως οι ρυθμίσεις σύνδεσης της βάσης δεδομένων, το URL της εφαρμογής, οι επιλογές εντοπισμού σφαλμάτων κ.λπ. Σημειώστε ότι το αρχείο περιβάλλοντος περιέχει ευαίσθητες πληροφορίες όπως διαπιστευτήρια βάσης δεδομένων, κλειδιά ασφαλείας κ.λπ. Γι' αυτό συνιστάται ανεπιφύλακτα να μην μοιράζεστε ποτέ αυτό το αρχείο δημόσια.
Ανοίξτε το αρχείο περιβάλλοντος με έναν επεξεργαστή κειμένου:
|
1 |
$ nano .env |
Ακολουθεί ένα δείγμα κώδικα περιβάλλοντος:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
APP_NAME=TravelList APP_ENV=development APP_KEY=<unique_app_key> APP_DEBUG=true APP_URL=http://<domain_or_ip> LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=travellist DB_USERNAME=travellist_user DB_PASSWORD=password123 |
Ας αναλύσουμε τις τιμές:
APP_NAME: Αυτό το πεδίο περιγράφει το όνομα της εφαρμογής. Αυτό το όνομα θα χρησιμοποιείται για ειδοποιήσεις και μηνύματα.APP_ENV: Το τρέχον περιβάλλον της εφαρμογής.APP_KEY: Αυτό το κλειδί δημιουργείται αυτόματα κατά την εγκατάσταση του Laravel μέσω του Composer. Χρησιμοποιείται για τη δημιουργία salts και hashes. Δεν χρειάζεται να το αλλάξετε.APP_DEBUG: Εναλλαγή λειτουργίας εντοπισμού σφαλμάτων. Όταν είναι ενεργοποιημένη, θα εμφανίζει πληροφορίες εντοπισμού σφαλμάτων στην πλευρά του πελάτη.APP_URL: Η βασική διεύθυνση URL της εφαρμογής. Χρησιμοποιείται επίσης για τη δημιουργία συνδέσμων της εφαρμογής.DB_DATABASE: Το όνομα της βάσης δεδομένων. Σε αυτήν την περίπτωση, θα είναι η αποκλειστική βάση δεδομένων που δημιουργήσαμε.DB_USERNAME: Το όνομα χρήστη για τη σύνδεση στη βάση δεδομένων.DB_PASSWORD: Ο κωδικός πρόσβασης για τη σύνδεση στη βάση δεδομένων.
Μόλις γίνουν οι αλλαγές, αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή.
Step 5 – Ρύθμιση του Nginx
Εγκαταστήσαμε με επιτυχία το Laravel σε έναν τοπικό φάκελο του αρχικού καταλόγου του χρήστη. Αυτή η ρύθμιση λειτουργεί καλά για το τοπικό περιβάλλον ανάπτυξης. Ωστόσο, δεν συνιστάται η εφαρμογή της για διακομιστές ιστού που είναι ανοιχτοί στο δημόσιο διαδίκτυο.
Το επόμενο βήμα μας είναι να μεταφέρουμε την εφαρμογή στο /var/www καθώς είναι η συνηθισμένη τοποθεσία για εφαρμογές ιστού που εκτελούνται σε Nginx. Χρησιμοποιήστε την εντολή mv για να μετακινήσετε το travellist στο /var/www/travellist:
|
1 |
$ sudo mv ~/travellist /var/www/travellist |
Στη συνέχεια, εκχωρήστε στον χρήστη πρόσβαση εγγραφής στους φακέλους storage και cache . Αυτές είναι οι τοποθεσίες των αρχείων που δημιουργούνται από την εφαρμογή Laravel:
|
1 2 |
$ sudo chown -R www-data.www-data /var/www/travellist/storage $ sudo chown -R www-data.www-data /var/www/travellist/bootstrap/cache |
Τα αρχεία της εφαρμογής είναι τώρα στη θέση τους. Ωστόσο, πρέπει να πούμε στον Nginx να εξυπηρετεί το περιεχόμενο. Δημιουργήστε ένα νέο αρχείο ρυθμίσεων εικονικού κεντρικού υπολογιστή:
|
1 |
$ sudo nano /etc/nginx/sites-available/travellist |
Ακολουθεί ένα δείγμα προτεινόμενων ρυθμίσεων για μια εφαρμογή Laravel που εκτελείται σε Nginx:
|
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 |
server { listen 80; server_name <domain_or_ip>; root /var/www/travellist/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } |
Ήρθε η ώρα να ενεργοποιήσετε το νέο αρχείο ρυθμίσεων εικονικού κεντρικού υπολογιστή. Δημιουργήστε έναν συμβολικό σύνδεσμο προς τον κατάλογο sites-enabled :
|
1 |
$ sudo ln -s /etc/nginx/sites-available/travellist /etc/nginx/sites-enabled/ |
Η ακόλουθη εντολή Nginx θα ελέγξει τα αρχεία ρυθμίσεων για συντακτικά σφάλματα:
|
1 |
$ sudo nginx -t |
Στη συνέχεια, επαναφορτώστε τον Nginx:
|
1 |
$ sudo systemctl reload nginx |
Η εφαρμογή θα πρέπει τώρα να είναι διαθέσιμη χρησιμοποιώντας το όνομα τομέα ή τη διεύθυνση IP (όπως ορίζεται από την οδηγία server_name ):
Βήμα 6 – Προσαρμογή της Κύριας Σελίδας
Με την εφαρμογή Laravel ρυθμισμένη, μπορούμε τώρα να αρχίσουμε να εργαζόμαστε πάνω σε αυτήν. Για επίδειξη, ήρθε η ώρα να δημιουργήσουμε μια δοκιμαστική σελίδα που θα εμφανίζει τα δείγματα δεδομένων από τον πίνακα της βάσης δεδομένων places. Αρχικά, ανοίξτε το κύριο αρχείο διαδρομών σε έναν επεξεργαστή κειμένου:
|
1 |
$ nano routes/web.php |
Το αρχείο θα περιέχει κάποιο περιεχόμενο από προεπιλογή. Εδώ, οι διαδρομές ορίζονται χρησιμοποιώντας τη στατική μέθοδο (Route::get). Δέχεται ένα path και μια callback function ως ορίσματα.
Αντικαταστήστε τον κώδικα με τον ακόλουθο:
|
1 2 3 4 5 6 7 |
<?php use Illuminate\Support\Facades\DB; Route::get('/', function () { $visited = DB::select('select * from places where visited = ?', [1]); $togo = DB::select('select * from places where visited = ?', [0]); return view('travellist', ['visited' => $visited, 'togo' => $togo ] ); }); |
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Στη συνέχεια, θα δημιουργήσουμε τη διάταξη για την απόδοση των αποτελεσμάτων του ερωτήματος της βάσης δεδομένων στον χρήστη. Δημιουργήστε ένα νέο αρχείο μέσα στο resource/views:
|
1 |
$ nano resources/views/travellist.blade.php |
Στον παρακάτω κώδικα, έχουμε δημιουργήσει δύο λίστες με μέρη ανάλογα με την τιμή του visited και togo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<html> <head> <title>Λίστα Ταξιδιών</title> </head> <body> <h1>Η Λίστα με τα Ταξίδια μου</h1> <h2>Μέρη για επίσκεψη</h2> <ul> @foreach ($togo as $newplace) <li>{{ $newplace->name }}</li> @endforeach </ul> <h2>Έχω ήδη επισκεφτεί</h2> <ul> @foreach ($visited as $place) <li>{{ $place->name }}</li> @endforeach </ul> </body> </html> |
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Τώρα, αποκτήστε ξανά πρόσβαση στη σελίδα της διαδικτυακής εφαρμογής:
Voila! Έχουμε πλέον μια λειτουργική εφαρμογή Laravel που χρησιμοποιεί βάση δεδομένων MySQL για το περιεχόμενο.
Τελικές Σκέψεις
Σε αυτόν τον οδηγό, δείξαμε πώς να εγκαταστήσετε μια εφαρμογή Laravel πάνω στο LEMP stack που εκτελείται σε διακομιστή Ubuntu 20.04. Παρουσιάσαμε επίσης πώς να προσαρμόσετε την προεπιλεγμένη διαδρομή (route) για να κάνετε ερωτήματα στο περιεχόμενο της βάσης δεδομένων και να εμφανίσετε τα αποτελέσματα σε μια προσαρμοσμένη προβολή (view). Για περισσότερες πληροφορίες σχετικά με το Laravel, ανατρέξτε στην επίσημη τεκμηρίωση για views, routes, και υποστήριξη βάσης δεδομένων.
Η εγκατάσταση σε αυτόν τον οδηγό πραγματοποιείται σε μια αυτόνομη εικονική μηχανή. Ωστόσο, μπορείτε επίσης να κάνετε deploy το Laravel σε LEMP stacks στο Docker.
Καλή συνέχεια!









Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.