Πώς να εγκαταστήσετε το 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.