Τι είναι οι στοίβες LAMP και LEMP;
Τα LAMP και LEMP ονομάζουν τα τέσσερα κομμάτια λογισμικού που σερβίρουν έναν τυπικό ιστότοπο: Linux, έναν web server, μια βάση δεδομένων και PHP. Το A στο LAMP σημαίνει Apache και το E στο LEMP σημαίνει Nginx (προφέρεται «engine-x», εξ ου και το E). Και στις δύο στοίβες η βάση δεδομένων είναι MySQL ή MariaDB και η γλώσσα προγραμματισμού είναι η PHP.
Εφαρμογές PHP όπως το WordPress, το WooCommerce και το Joomla τρέχουν σε αυτή τη στοίβα. Το WordPress.org συνιστά Apache ή Nginx ως web server, οπότε και τα δύο είναι γερή βάση. Το ποιο θα διαλέξετε δεν καθορίζει αν η εφαρμογή σας λειτουργεί. Αλλάζει τον τρόπο που γράφετε τις ρυθμίσεις.
Πώς λειτουργεί η στοίβα;
| Επίπεδο | LAMP | LEMP | Ρόλος |
|---|---|---|---|
| Λειτουργικό σύστημα | Linux | Linux | Η βάση πάνω στην οποία τρέχουν όλα |
| Web server | Apache | Nginx | Απαντά στα αιτήματα των προγραμμάτων περιήγησης |
| Βάση δεδομένων | MySQL ή MariaDB | MySQL ή MariaDB | Αποθηκεύει αναρτήσεις, χρήστες και παραγγελίες |
| Γλώσσα | PHP | PHP, μέσω PHP-FPM | Χτίζει τη σελίδα |
Ένα αίτημα ταξιδεύει μέσα στη στοίβα ως εξής:
- Το πρόγραμμα περιήγησης στέλνει αίτημα στο domain σας. Φτάνει στη θύρα 80 ή 443 του server σας.
- Ο web server δέχεται το αίτημα. Αν το αίτημα αφορά μια εικόνα ή ένα αρχείο CSS, σερβίρει ο ίδιος το αρχείο.
- Αν το αίτημα αφορά ένα αρχείο PHP, ο web server το παραδίδει στην PHP και η PHP εκτελεί τον κώδικα.
- Η PHP κάνει ερωτήματα στη βάση δεδομένων όταν χρειάζεται και χτίζει τη σελίδα. Ο web server στέλνει τη σελίδα πίσω στο πρόγραμμα περιήγησης.
Αν μια σελίδα δεν ανοίγει, ελέγξτε τα επίπεδα με τη σειρά: systemctl status nginx, systemctl status phpX.Y-fpm και systemctl status mariadb. Το X.Y είναι η έκδοση της PHP σας (8.3 στο Ubuntu 24.04) και στο LAMP χρησιμοποιείτε apache2 αντί για nginx. Όποιο δεν τρέχει, εκεί ξεκινά το πρόβλημα.
Ποια είναι η διαφορά ανάμεσα στο LAMP και στο LEMP;
- Το Apache διαβάζει αρχεία
.htaccessκαι το Nginx όχι. Στο Nginx, οι κανόνες μπαίνουν στη ρύθμιση του server. - Το Nginx δεν τρέχει PHP μέσα του. Περνά τα αιτήματα σε μια ξεχωριστή υπηρεσία που λέγεται PHP-FPM. Το Apache μπορεί να τρέχει PHP μέσα του ή μέσω PHP-FPM.
- Οι φάκελοι ρύθμισης διαφέρουν. Στο Ubuntu, το Apache χρησιμοποιεί το
/etc/apache2και το Nginx το/etc/nginx. - Τη χρήση μνήμης την καθορίζουν περισσότερο ο αριθμός των workers της PHP-FPM και οι ρυθμίσεις της βάσης παρά η επιλογή του web server.
- Κανένα δεν υπερέχει ξεκάθαρα. Και τα δύο χρησιμοποιούνται ευρέως, οπότε αποφασίζουν ο οδηγός που ακολουθείτε και οι συνήθειές σας.
MySQL ή MariaDB;
Η MariaDB είναι μια βάση δεδομένων ανοιχτού κώδικα που αποσπάστηκε από τη MySQL και οι εντολές και οι πελάτες τους είναι σε μεγάλο βαθμό συμβατοί. Η επίσημη σελίδα απαιτήσεων του WordPress δέχεται και τις δύο, γι' αυτό ελέγξτε εκεί τις τρέχουσες ελάχιστες εκδόσεις. Στο Ubuntu, το πακέτο mariadb-server εγκαθίσταται με μία εντολή. Σύμφωνα με την τεκμηρίωση της MariaDB, ο λογαριασμός root χρησιμοποιεί από προεπιλογή έλεγχο ταυτότητας unix_socket από την έκδοση 10.4. Στον server, αρκεί να εκτελέσετε sudo mariadb. Δεν χρειάζεται κωδικός root.
Στήσιμο LEMP στο Ubuntu
Αυτά τα βήματα είναι για Ubuntu και Debian. Πρώτα συνδεθείτε στον server με SSH. Τα παραδείγματα χρησιμοποιούν το example.com ως όνομα domain, γι' αυτό αντικαταστήστε το με το δικό σας.
- Ανανεώστε τη λίστα πακέτων:
sudo apt update - Εγκαταστήστε τα πακέτα:
sudo apt install nginx mariadb-server php-fpm php-mysql. Οι εκδόσεις που εγκαθίστανται είναι αυτές του αποθετηρίου πακέτων. - Θωρακίστε τη βάση δεδομένων:
sudo mariadb-secure-installation. Απαντήστε ναι στην αφαίρεση ανώνυμων χρηστών, στην αφαίρεση της βάσης δοκιμής και στην απαγόρευση απομακρυσμένης σύνδεσης root. - Δημιουργήστε τον φάκελο του ιστότοπου:
sudo mkdir -p /var/www/example - Ανοίξτε ένα αρχείο με
sudo nano /etc/nginx/sites-available/exampleκαι επικολλήστε αυτή τη γραμμή:server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } } - Το
ls /run/php/δείχνει το πραγματικό όνομα του socket. Γράψτε το στη θέση τουphpX.Y-fpm.sock. - Ενεργοποιήστε τον ιστότοπο:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Δοκιμάστε και εφαρμόστε τη ρύθμιση:
sudo nginx -tκαι μετάsudo systemctl reload nginx - Αν χρησιμοποιείτε ufw, ανοίξτε τις θύρες 80 και 443:
sudo ufw allow 80/tcpκαιsudo ufw allow 443/tcp. Βεβαιωθείτε ότι η θύρα SSH (22) είναι ανοιχτή.
Για να δοκιμάσετε ότι η PHP λειτουργεί, γράψτε ένα αρχείο δοκιμής:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Αν το domain δεν δείχνει ακόμη στον server, δοκιμάστε από μέσα από τον server με curl -H 'Host: example.com' http://127.0.0.1/info.php. Μόλις δείτε ότι λειτουργεί, διαγράψτε το αρχείο: sudo rm /var/www/example/info.php. Αυτή η σελίδα δείχνει τις λεπτομέρειες του server σας σε όλους.
Μια βάση δεδομένων για την εφαρμογή σας
Ανοίξτε το shell της βάσης με sudo mariadb και δημιουργήστε ξεχωριστή βάση και χρήστη για κάθε εφαρμογή. Διαλέξτε μόνοι σας ισχυρό κωδικό:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Καταχωρίζετε αυτές τις τρεις τιμές (βάση, χρήστης, κωδικός) στην οθόνη εγκατάστασης του WordPress. Για να λειτουργούν οι μόνιμοι σύνδεσμοι του WordPress, αντικαταστήστε το =404 στη γραμμή του Nginx με /index.php?$args.
Τι αλλάζει για το LAMP;
Για τη στοίβα Apache, εγκαθιστάτε τα πακέτα ως εξής:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Ορίζετε τον ιστότοπο στο /etc/apache2/sites-available και τον ενεργοποιείτε με sudo a2ensite example. Για μόνιμους συνδέσμους, εκτελέστε sudo a2enmod rewrite και κάντε επανεκκίνηση του Apache με sudo systemctl restart apache2. Για να ισχύουν τα αρχεία .htaccess, πρέπει να ορίσετε AllowOverride All για τον φάκελο του ιστότοπου. Μπορείτε επίσης να τρέξετε το Apache με PHP-FPM, που ταιριάζει στο μοντέλο event που βασίζεται σε συμβάντα. Τα βήματα της βάσης δεδομένων είναι τα ίδια με του LEMP.
Μετά την εγκατάσταση
- Προσθέστε πιστοποιητικό HTTPS. Το Let's Encrypt είναι δωρεάν και το Certbot λειτουργεί και με Nginx και με Apache.
- Ορίστε τον ιδιοκτήτη των φακέλων στους οποίους πρέπει να γράφει ο web server. Σε Ubuntu και Debian ο web server τρέχει ως ο χρήστης
www-data:sudo chown -R www-data:www-data /var/www/example. - Εγκαθιστάτε τακτικά ενημερώσεις με
sudo apt update && sudo apt upgrade. Μετά την εγκατάσταση, οι ενημερώσεις του λειτουργικού και του λογισμικού είναι δική σας ευθύνη. - Αντιγράφετε ξεχωριστά τη βάση δεδομένων με
mariadb-dump. Το καθημερινό αντίγραφο ασφαλείας του server περιλαμβάνεται στην τιμή, αλλά πρέπει παρ' όλα αυτά να κρατάτε μόνοι σας επιπλέον αντίγραφο των σημαντικών δεδομένων.
Αν θέλετε τη στοίβα έτοιμη προς χρήση, παραγγείλετε με την επιλογή LAMP ή LEMP της Seturack και εγκαθίσταται μόνη της. Αν χρειάζεστε μόνο WordPress, αρκεί η επιλογή WordPress VPS: η εγκατάσταση διαρκεί περίπου 4-5 λεπτά και η διεύθυνση και ο κωδικός εμφανίζονται στο πάνελ.
Σχόλια0
Δεν υπάρχουν ακόμη σχόλια
Μοιραστείτε πρώτοι τις σκέψεις σας.
Συνδεθείτε ή εγγραφείτε για να αφήσετε σχόλιο.