Πώς να εγκαταστήσετε το Laravel PHP Framework με το Nginx στο CentOS 8
Το Laravel είναι ένα ανοιχτού κώδικα, γνωστό και μοντέρνο πλαίσιο ιστού που βασίζεται σε PHP με εκφραστική, κομψή και εύκολα κατανοητή σύνταξη που καθιστά εύκολη τη δημιουργία μεγάλων, ισχυρών εφαρμογών ιστού.
Τα βασικά χαρακτηριστικά του περιλαμβάνουν έναν απλό, γρήγορο κινητήρα δρομολόγησης, ισχυρό δοχείο έγχυσης εξάρτησης, πολλαπλά back-ends για αποθήκευση συνεδρίας και κρυφής μνήμης, εκφραστική και διαισθητική βάση δεδομένων ORM (Object-relational Mapping), ισχυρή επεξεργασία εργασιών στο παρασκήνιο και μετάδοση συμβάντων σε πραγματικό χρόνο.
Επίσης, χρησιμοποιεί εργαλεία όπως το Composer – έναν διαχειριστή πακέτων PHP για τη διαχείριση εξαρτήσεων και το Artisan – μια διεπαφή γραμμής εντολών για τη δημιουργία και τη διαχείριση εφαρμογών ιστού.
Σε αυτό το άρθρο, θα μάθετε πώς να εγκαταστήσετε την πιο πρόσφατη έκδοση του πλαισίου ιστού Laravel PHP στη διανομή CentOS 8 Linux.
Απαιτήσεις διακομιστή
Το πλαίσιο Laravel έχει τις ακόλουθες απαιτήσεις:
- PHP >= 7.2.5 με αυτές τις επεκτάσεις PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype και JSON.
- Συνθέτης – για εγκατάσταση και διαχείριση εξαρτήσεων.
Βήμα 1: Εγκατάσταση στοίβας LEMP στο CentOS 8
1. Για να ξεκινήσετε, ενημερώστε τα πακέτα λογισμικού συστήματος και εγκαταστήστε τη στοίβα LEMP (Linux, Nginx, MariaDB/MySQL και PHP) χρησιμοποιώντας τις ακόλουθες εντολές dnf.
# dnf update # dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd
2. Όταν ολοκληρωθεί η εγκατάσταση του LEMP, πρέπει να ξεκινήσετε τα PHP-PFM, Nginx και MariaDB χρησιμοποιώντας τις ακόλουθες εντολές systemctl.
# systemctl start php-fpm nginx mariadb # systemctl enable php-fpm nginx mariadb # systemctl status php-fpm nginx mariadb
3. Στη συνέχεια, πρέπει να ασφαλίσετε και να σκληρύνετε τη μηχανή βάσης δεδομένων MariaDB χρησιμοποιώντας τη δέσμη ενεργειών ασφαλείας όπως φαίνεται.
# mysql_secure_installation
Απαντήστε στις ακόλουθες ερωτήσεις για να εξασφαλίσετε την εγκατάσταση του διακομιστή.
Enter current password for root (enter for none):Enter
Set root password? [Y/n]y
#set new root password Remove anonymous users? [Y/n]y
Disallow root login remotely? [Y/n]y
Remove test database and access to it? [Y/n]y
Reload privilege tables now? [Y/n]y
4. Εάν έχετε την υπηρεσία τείχος προστασίας σε λειτουργία, πρέπει να ανοίξετε την υπηρεσία HTTP και HTTPS στο τείχος προστασίας για να ενεργοποιήσετε αιτήματα πελατών στον διακομιστή web Nginx.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --zone=public --permanent --add-service=https # firewall-cmd --reload
5. Τέλος, μπορείτε να επιβεβαιώσετε ότι η στοίβα σας LEMP εκτελείται χρησιμοποιώντας ένα πρόγραμμα περιήγησης στη διεύθυνση IP του συστήματός σας.
http://server-IP
Βήμα 2: Διαμόρφωση και Ασφάλιση PHP-FPM και Nginx
6. Για την επεξεργασία αιτημάτων από τον διακομιστή ιστού Nginx, το PHP-FPM μπορεί να ακούει σε υποδοχή Unix ή υποδοχή TCP και αυτό ορίζεται από το Η παράμετρος ακρόαση στο αρχείο διαμόρφωσης /etc/php-fpm.d/www.conf.
# vi /etc/php-fpm.d/www.conf
Από προεπιλογή, έχει ρυθμιστεί για ακρόαση σε μια υποδοχή Unix όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Η τιμή εδώ θα καθοριστεί στο αρχείο μπλοκ διακομιστή Nginx αργότερα.
7. Εάν χρησιμοποιείτε υποδοχή Unix, θα πρέπει επίσης να ορίσετε τη σωστή ιδιοκτησία και δικαιώματα σε αυτήν, όπως φαίνεται στο στιγμιότυπο οθόνης. Καταργήστε το σχολιασμό των παρακάτω παραμέτρων και ορίστε τις τιμές τους στο χρήστη και την ομάδα ώστε να ταιριάζουν με τον χρήστη και η ομάδα Nginx εκτελείται ως.
listen.owner = nginx listen.group = nginx listen.mode = 066
8. Στη συνέχεια, ορίστε επίσης τη ζώνη ώρας σε όλο το σύστημα στο αρχείο διαμόρφωσης /etc/php.ini.
# vi /etc/php.ini
Αναζητήστε τη γραμμή \;date.timezone”
και καταργήστε το σχόλιο και, στη συνέχεια, ορίστε την τιμή της όπως φαίνεται στο στιγμιότυπο οθόνης (χρησιμοποιήστε τιμές που ισχύουν για την περιοχή/ήπειρο και τη χώρα σας).
date.timezone = Africa/Kampala
9. Για να μετριαστεί ο κίνδυνος του Nginx να περάσει αιτήματα από κακόβουλους χρήστες που χρησιμοποιούν άλλες επεκτάσεις για την εκτέλεση κώδικα PHP στο PHP-FPM, καταργήστε το σχόλιο της ακόλουθης παραμέτρου και ορίστε την τιμή της σε 0
.
cgi.fix_pathinfo=1
10. Σε σχέση με το προηγούμενο σημείο, καταργήστε επίσης το σχόλιο της ακόλουθης παραμέτρου στο αρχείο /etc/php-fpm.d/www.conf. Διαβάστε το σχόλιο για περισσότερες εξηγήσεις.
security.limit_extensions = .php .php3 .php4 .php5 .php7
Βήμα 3: Εγκατάσταση του Composer και του Laravel PHP Framework
11. Στη συνέχεια, εγκαταστήστε το πακέτο Composer εκτελώντας τις ακόλουθες εντολές. Η πρώτη εντολή κατεβάζει το πρόγραμμα εγκατάστασης και στη συνέχεια το εκτελεί χρησιμοποιώντας PHP.
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer # chmod +x /usr/local/bin/composer
12. Τώρα που έχει εγκατασταθεί το Composer, χρησιμοποιήστε το για να εγκαταστήσετε αρχεία και εξαρτήσεις Laravel ως εξής. Αντικαταστήστε το mysite.com με το όνομα του καταλόγου όπου θα αποθηκευτούν τα αρχεία Laravel, η απόλυτη διαδρομή (ή διαδρομή ρίζας στο αρχείο διαμόρφωσης Nginx) θα είναι /var/www/html/mysite .com.
# cd /var/www/html/ # composer create-project --prefer-dist laravel/laravel mysite.com
Εάν όλα πάνε καλά κατά τη διάρκεια της διαδικασίας, η εφαρμογή θα πρέπει να εγκατασταθεί με επιτυχία και να δημιουργηθεί ένα κλειδί όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
13. Κατά τη διαδικασία εγκατάστασης, δημιουργήθηκε το αρχείο περιβάλλοντος .env
και δημιουργήθηκε επίσης η απαιτούμενη εφαρμογή, επομένως δεν χρειάζεται να τις δημιουργήσετε με μη αυτόματο τρόπο όπως πριν. Για να το επιβεβαιώσετε, εκτελέστε μια μακρά λίστα του ριζικού καταλόγου laravel χρησιμοποιώντας την εντολή ls.
# ls -la mysite.com/
14. Στη συνέχεια, πρέπει να διαμορφώσετε τη σωστή ιδιοκτησία και δικαιώματα στους καταλόγους αποθήκευσης και bootstrap/cache ώστε να μπορούν να εγγραφούν από τον ιστό Nginx υπηρέτης.
# chown -R :nginx /var/www/html/mysite.com/storage/ # chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/ # chmod -R 0777 /var/www/html/mysite.com/storage/ # chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/
15. Εάν το SELinux είναι ενεργοποιημένο στον διακομιστή σας, θα πρέπει επίσης να ενημερώσετε το πλαίσιο ασφαλείας του αποθηκευτικού χώρου και του bootstrap/cache καταλόγους.
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?' # restorecon -Rv '/var/www/html/mysite.com'
Βήμα 4: Διαμόρφωση μπλοκ διακομιστή Nginx για Laravel
16. Για να ξεκινήσει το Nginx να προβάλλει τον ιστότοπο ή την εφαρμογή σας, πρέπει να δημιουργήσετε ένα μπλοκ διακομιστή για αυτό σε ένα αρχείο .conf
στο /etc/nginx/conf.d/ κατάλογο όπως φαίνεται.
# vi /etc/nginx/conf.d/mysite.com.conf
Αντιγράψτε και επικολλήστε την ακόλουθη διαμόρφωση στο αρχείο. Σημειώστε τις παραμέτρους root και fastcgi_pass.
server { listen 80; server_name mysite.com; root /var/www/html/mysite.com/public; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php-fpm/www.sock; } location ~ /\.ht { deny all; } }
17. Αποθηκεύστε το αρχείο και ελέγξτε εάν η σύνταξη διαμόρφωσης Nginx είναι σωστή εκτελώντας.
# nginx -t
18. Στη συνέχεια, επανεκκινήστε τις υπηρεσίες PHP-FPM και Nginx για να τεθούν σε ισχύ οι πρόσφατες αλλαγές.
# systemctl restart php-fpm # systemctl restart Nginx
Βήμα 5: Πρόσβαση στον ιστότοπο της Laravel από ένα πρόγραμμα περιήγησης Ιστού
19. Για να αποκτήσετε πρόσβαση στον ιστότοπο της Laravel στη διεύθυνση mysite.com, ο οποίος δεν είναι πλήρως πιστοποιημένο όνομα τομέα (FQDN) και δεν είναι καταχωρημένος (χρησιμοποιείται μόνο για δοκιμαστικούς σκοπούς) , θα χρησιμοποιήσουμε το αρχείο /etc/hosts στον τοπικό σας υπολογιστή για να δημιουργήσουμε τοπικό DNS.
Εκτελέστε την ακόλουθη εντολή για να προσθέσετε τη διεύθυνση IP του διακομιστή και τον τομέα στο απαιτούμενο αρχείο (αντικαταστήστε την τιμή σύμφωνα με τις ρυθμίσεις σας).
# ip add #get remote server IP $ echo "10.42.0.21 mysite.com" | sudo tee -a /etc/hosts
20. Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης στον τοπικό υπολογιστή και χρησιμοποιήστε την ακόλουθη διεύθυνση για πλοήγηση.
http://mysite.com
Έχετε αναπτύξει με επιτυχία το Laravel στο CentOS 8. Τώρα μπορείτε να ξεκινήσετε την ανάπτυξη του ιστότοπού σας ή της εφαρμογής Ιστού χρησιμοποιώντας το Laravel. Για περισσότερες πληροφορίες, ανατρέξτε στον οδηγό έναρξης της Laravel.