Εάν έχετε προηγουμένως διαχειριστεί έναν εξυπηρετητή Linux, θα είστε εξοικειωμένοι με τη συστοιχία LAMP (Linux, Apache, MySQL, PHP) που χρησιμοποιείται συνήθως. Ωστόσο, το Apache, η MySQL και η PHP μπορεί μερικές φορές να είναι εντατικής χρήσης και μπορεί να μην είναι το καλύτερο για το διακομιστή σας. Σε αυτό το σεμινάριο, θα αντικαταστήσουμε το κάθε μέρος της στοίβας, εκτός από το Linux, με μια καλύτερη εναλλακτική λύση - Nginx, MariaDB και HHVM.

Υπόθεση

1. Αυτό το σεμινάριο γίνεται σε ένα διακομιστή Ubuntu 14.04, αν και οι οδηγίες θα λειτουργήσουν και για οποιαδήποτε διανομή με βάση το Debian.

2. Αυτό το σεμινάριο εστιάζει μόνο στην εγκατάσταση και ρύθμιση της στοίβας LEMH. Δεν αγγίζει την πτυχή ασφαλείας του διακομιστή.

3. Πρέπει να έχετε ήδη πρόσβαση SSH στον διακομιστή σας (ή φυσική πρόσβαση στο μηχάνημά σας) για να πραγματοποιήσετε αυτό το σεμινάριο.

Εγκατάσταση του Nginx

Το Nginx είναι ένα ελαφρύ, αλλά ισχυρό, αντικατάστασης για το Apache. Πρόκειται για έναν αντίστροφο διακομιστή μεσολάβησης ανοιχτού κώδικα καθώς και για έναν διακομιστή ιστού με μεγάλη έμφαση στην υψηλή συνοχή, την υψηλή απόδοση και τη χαμηλή χρήση της μνήμης. Σημειώστε ότι το Nginx δεν είναι συμβατό με το Apache, οπότε όλη η διαμόρφωση Apache, ιδιαίτερα τα αρχεία .htaccess που δημιουργήσατε, δεν θα λειτουργήσει σε Nginx. Είναι επίσης δυνατό να εκτελέσετε τόσο το Apache όσο και το Nginx στον ίδιο διακομιστή, αλλά αυτό θα περιλαμβάνει κάποια περίπλοκη διαμόρφωση, την οποία δεν θα καλύψουμε εδώ.

Το Nginx βρίσκεται στο αποθετήριο του Ubuntu, αλλά είναι συχνά ξεπερασμένο. Για να αποκτήσετε την πιο πρόσφατη σταθερή έκδοση, προσθέστε το ακόλουθο PPA στο σύστημά σας:

 sudo add-apt-repository ppa: nginx / σταθερή sudo apt-get ενημέρωση 

Η τελευταία έκδοση του Nginx από αυτή την ανάρτηση είναι 1.6.2. Εναλλακτικά, αν θέλετε να δοκιμάσετε την πιο πρόσφατη αναπτυξιακή έκδοση, μπορείτε να χρησιμοποιήσετε αυτόν τον PPA αντί:

 sudo add-apt-repository ppa: nginx / ανάπτυξη sudo apt-get ενημέρωση 

Η πιο πρόσφατη αναπτυξιακή έκδοση από αυτή την ανάρτηση είναι 1.7.8.

Για να εγκαταστήσετε το Nginx, εκτελέστε την εντολή:

 sudo apt-get να εγκαταστήσετε nginx 

Μόλις εγκατασταθεί, εκτελέστε την ακόλουθη εντολή για να βεβαιωθείτε ότι ξεκίνησε:

 sudo υπηρεσία nginx έναρξη 

Στη συνέχεια, στο πρόγραμμα περιήγησης ιστού, μεταβείτε στη διεύθυνση URL "http://123.4.56.789" (αντικαταστήστε 123.4.56.789 με τη διεύθυνση IP του διακομιστή σας) και θα πρέπει να δείτε τα εξής:

Εγκατάσταση του MariaDB

Για πολλά χρόνια, η MySQL είναι η προεπιλεγμένη υπηρεσία διαχείρισης βάσεων δεδομένων για πολλές εφαρμογές. Από τότε που αποκτήθηκε από την Oracle, πολλοί άνθρωποι άρχισαν να αμφισβητούν την ανοιχτή προέλευση της και η κοινότητα (η οποία περιελάμβανε τον ιδρυτή της MySQL) αποφάσισε να δημιουργήσει μια διχάλα της MySQL και να την ονομάσει MariaDB. Η MariaDB είναι μια αντικατάσταση της MySQL, που σημαίνει ότι είναι πλήρως συμβατή με τις βάσεις δεδομένων MySQL και μπορεί να χρησιμοποιηθεί ως πλήρης αντικατάσταση της MySQL.

Ενδιαφέρον : Η MySQL ιδρύθηκε από τον Michael Widenius και ονομάστηκε από την πρώτη του κόρη, My. Ο κύριος προγραμματιστής της MariaDB είναι επίσης ο Michael Widenius και ονομάστηκε από τη δεύτερη κόρη του, τη Μαρία.

Στο διακομιστή σας, αν έχετε εγκαταστήσει προηγουμένως MySQL, είναι καλύτερο να καταργήσετε πλήρως την MySQL πριν εγκαταστήσετε το MariaDB:

 sudo apt-get αφαίρεση --purge mysql -server mysql-client mysql-κοινός sudo apt-get autoremove sudo rm -rf / var / lib / mysql sudo apt-get autoclean 

Στη συνέχεια, προσθέστε το PPA για το MariaDB:

 sudo apt-get εγκαταστήσετε το λογισμικό-ιδιότητες-κοινές sudo apt-key adv --recv-κλειδιά --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http: //sfo1.mirrors .digitalocean.com / mariadb / repo / 10.0 / ubuntu trusty main 'sudo apt-get ενημέρωση 

Σημειώστε ότι μπορείτε επίσης να δημιουργήσετε τον δικό σας PPA εδώ και να βρείτε τη θέση που βρίσκεται πλησιέστερα στον διακομιστή σας.

Εγκαταστήστε το MariaDB με αυτήν την εντολή:

 sudo apt-get να εγκαταστήσετε το mariadb-server 

Κατά τη διάρκεια της εγκατάστασης, θα σας ζητηθεί να ορίσετε έναν κωδικό πρόσβασης για τον χρήστη root.

Μετά την εγκατάσταση, μπορείτε να ξεκινήσετε το MariaDB με την εντολή:

 sudo service start mysql 

Εγκατάσταση PHP και HHVM

Το HHVM δεν αντικαθιστά την PHP. Πρόκειται για ένα εικονικό μηχάνημα ανοικτού κώδικα που έχει σχεδιαστεί για εκτέλεση προγραμμάτων γραμμένων σε Hack και PHP. Το HHVM χρησιμοποιεί μια προσέγγιση συμπερασματοποίησης just-in-time (JIT) για την επίτευξη ανώτερης απόδοσης, διατηρώντας παράλληλα την ευελιξία ανάπτυξης που παρέχει η PHP.

Πριν εγκαταστήσουμε το HHVM, είναι σημαντικό να εγκαταστήσετε πρώτα την PHP στο διακομιστή. Αντί να εγκαταστήσουμε το πλήρες πακέτο PHP5, το οποίο περιλαμβάνει μια δέσμη αρχείων Apache, θα εγκαταστήσουμε μόνο το php5-fpm, το οποίο στη συνέχεια θα εγκαταστήσει τις απαραίτητες εξαρτήσεις PHP. Επίσης, θα χρειαστούμε το php5-fpm ως εναλλακτική λύση για το HHVM.

 sudo apt-get εγκαταστήστε το php5-fpm php5-mysql php5-curl 

Αφού γίνει, εγκαταστήστε το HHVM με τις εντολές:

 wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt - key add - echo deb http://dl.hhvm.com/ubuntu sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get ενημέρωση sudo apt-get install hhvm 

Μετά την εγκατάσταση του HHVM, προχωρήστε στο να το ρυθμίσετε για το Nginx με την εντολή:

 sudo /usr/share/hhvm/install_fastcgi.sh 

Τέλος, επανεκκινήστε το HHVM

 sudo υπηρεσία hhvm επανεκκίνηση 

Για να ελέγξετε αν λειτουργεί το HHVM, δημιουργήστε ένα αρχείο "phpinfo.php" στον ριζικό φάκελο Nginx.

 sudo nano /var/www/html/phpinfo.php 

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

Πατήστε "Ctrl + o" για αποθήκευση και "Ctrl + x" για έξοδο.

Στο πρόγραμμα περιήγησής σας, φορτώστε τη διεύθυνση url: http://123.4.56.789/phpinfo.php (αντικαταστήστε 123.4.56.789 με τη διεύθυνση IP του διακομιστή σας). Θα πρέπει να δείτε μόνο τη λέξη "HipHop" για να δείξετε ότι λειτουργεί το HHVM.

Διαμόρφωση ιστότοπων για εκτέλεση σε Nginx και HHVM (με php5-fpm backup)

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

Δημιουργήστε ένα νέο αρχείο ρυθμίσεων που περιέχει την λεπτομέρεια του ιστοτόπου σας:

 sudo nano / etc / nginx / sites-available / my-site 

και επικολλήστε το ακόλουθο απόσπασμα:

 server {listen 80; ακούστε [::]: 80; root / var / www / html. # Προσθήκη index.php στη λίστα αν χρησιμοποιείτε το index.html index.htm index PHP, server_name mywebsite.com; περιλαμβάνουν το hhvm-with-fallback.conf. θέση / {# Πρώτη προσπάθεια να εμφανιστεί το αίτημα ως αρχείο, στη συνέχεια # ως κατάλογος, και πάλι να επιστρέψει στην εμφάνιση ενός 404. try_files $ uri $ uri / = 404; } # περάστε τις δέσμες ενεργειών PHP στο διακομιστή FastCGI που ακούτε στο 127.0.0.1:9000 # location @fallback {# include snippets / fastcgi-php.conf; # # # Με το php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; περιλαμβάνουν fastcgi_params; } # αρνούνται την πρόσβαση στα αρχεία .htaccess, αν η ρίζα του εγγράφου Apache # συμφωνεί με το nginx's one # location ~ /\.ht {deny all; }} 

Μπορείτε να αλλάξετε το server_name για να υποδείξετε τον δικό σας τομέα και τη θέση του root φακέλου όπου θέλετε να εμφανίζονται τα αρχεία.

Το HHVM έχει αυτό το σφάλμα κατάρρευσης περιστασιακά χωρίς επανεκκίνηση. αυτό θα προκαλέσει την αποτυχία του ιστότοπου με σφάλμα 500. Σε αυτή την περίπτωση, θα δημιουργήσουμε ένα εναλλακτικό σύστημα, στο οποίο η PHP5-FPM θα αναλάβει την αποτυχία του HHVM. Παρατηρήστε το μπλοκ location @fallback στο απόσπασμα config παραπάνω; Αυτή είναι η επανάκληση όταν αποτυγχάνει το HHVM. Για να ολοκληρώσουμε την εξίσωση, πρέπει να δημιουργήσουμε το αρχείο "hhvm-with-fallback.conf", το οποίο είναι μια τροποποιημένη έκδοση του αρχείου "hhvm.conf".

 sudo nano /etc/nginx/hhvm-with-fall-conf.conf 

Επικολλήστε το ακόλουθο απόσπασμα:

 τόπος ~ \ (hh | php) $ {proxy_intercept_errors για; error_page 500 501 502 503 = @fallback; fastcgi_keep_conn on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; γρήγοραcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; περιλαμβάνουν fastcgi_params; }} 

Αποθηκεύστε και κλείστε το αρχείο.

Τέλος, δοκιμάστε τις ρυθμίσεις Nginx με

 sudo nginx-t 

και αν όλα είναι καλά, επανεκκινήστε το Nginx.

 sudo υπηρεσία nginx επανεκκίνηση 

Αυτό είναι. Έχετε ολοκληρώσει τη ρύθμιση στοίβας LEMH στον διακομιστή του Linux.