Κατηγορίες
Linux

Οδηγίες εγκατάστασης εξυπηρετητή ιστού LAMP σε Ubuntu 14.04 (Trusty Tahr)

Μεσάνυχτα και ταξιδεύεις δίχως πλευρικά
σκιάζεσαι μήπως στο γιαλό, τα φώτα σε προδίδουν
μα πρίμα πλώρα μόνη εσύ, πατάς στοχαστικά
κρατώντας στα χεράκια σου, το λύχνο του Αλαδδίνου

~ Νίκος Καββαδίας ~

Αυτός ο οδηγός αφορά την εγκατάσταση ενός εξυπηρετητή ιστού , βασισμένου σε Ubuntu/Linux με μια βάση δεδομένων στο παρασκήνιο και ενσωματωμένη γλώσσα προγραμματισμού PHP.  Ο όρος LAMP δεν αναφέρεται βέβαια σε λάμπες ούτε και σε λυχνάρια από μεσανατολίτικα παραμύθια, αλλά στον συνδυασμό Linux, Apache, MySQL MariaDB και PHP.

Παραδοσιακά θα χρησιμοποιούσαμε MySQL για αυτή την δουλειά αλλά από την έκδοση της Ubuntu 14.04, η εναλλακτική βάση δεδομένων MariaDB είναι διαθέσιμη από τα αποθετήρια της Ubuntu. Συστήνεται η χρήση της MariaDB αντί της πολυαγαπημένης MySQL, επειδή το μέλλον της τελευταίας διαγράφεται ζοφερό μετά από την αγορά της από την Oracle.

Θα χρησιμοποιήσουμε επίσης το εργαλείο εικονικοποίησης VirtualBox  για να εγκαταστήσουνε την έκδοση Ubuntu Server σε εικονική μηχανή (VM), αλλά μπορείτε να ακολουθήσετε αυτές τις οδηγίες σε ένα πραγματικό υπολογιστή ή χρησιμοποιώντας κάποιο παροχέα υπηρεσιών.

Για να ακολουθήσετε αυτές τις οδηγίες θα πρέπει να κατεβάσετε το πιο πρόσφατο αρχείο ISO για Ubuntu Server (τρέχουσα έκδοση 14.04.2)

Δημιουργία της εικονικής μηχανής

  1. Εγκατάσταση VirtualBox:
    Βεβαιωθείτε ότι υπάρχει εγκατεστημένο το VirtualBox. Αν δεν το έχετε εγκατεστημένο μπορείτε να χρησιμοποιήσετε το διαχειριστή πακέτων του συστήματος σας ή χρησιμοποιώντας την γραμμή εντολών (αν έχετε σύστημα βασισμένο σε Ubuntu ή Debian):

    $ sudo apt-get -y install virtualbox

    Για χρήστες Windows θα πρέπει να κατεβάσετε το πρόγραμμα εγκατάστασης του VirtualBox από το σχετικό ιστοχώρο.

  2. Ξεκινήστε το VirtualBox:VBox-1
    Πατήστε στο εικονίδιο New για να δημιουργήσετε μια καινούργια εικονική μηχανή.
  3. Ρύθμιση του ονόματος της μηχανής:
    VBox-2
    Πληκτρολογήστε Ubuntu-server στο πεδίο Name και πατήστε ‘Next’.
  4. Ρύθμιση του  μεγέθους της μνήμης.
    VBox-3
    Η προκαθορισμένη επιλογή, 512 MB, είναι αρκετή  αλλά μπορείτε να χρησιμοποιήσετε 1024 ή περισσότερη αν έχετε αρκετή διαθέσιμη μνήμη στο πραγματικό σας υπολογιστή.
  5. Ρύθμιση του εικονικού σκληρού δίσκου:
    • Δημιουργία του εικονικού δίσκου:
      VBox-4
    • Ρύθμιση μορφοποίησης του εικονικού δίσκου:
      VBox-5
      Η μορφή VDI είναι η προκαθορισμένη στο VirtualBox.
    • Επιλογή του τύπου του σκληρού δίσκου:
      VBox-6
      Η επιλογή Fixed size (σταθερό μέγεθος) υποτίθεται ότι ευνοεί καλύτερες επιδόσεις αλλά θα καταλάβει ισάξιο χώρο από τον πραγματικό σας δίσκο. Για πειραματικούς σκοπούς επιλέξτε Dynamically allocated.
    • Επιλογή μεγέθους του σκληρού δίκου:
      VBox-7
      Αν επιλέξατε Dynamically allocated προηγουμένως, τότε ο εικονικός σας δίσκος μπορεί να φτάσει σε μέγεθος τα 2,00 TB χωρίς στην πραγματικότητα να καταλάβει τόσο μεγάλο χώρο στο δίσκο. 40,00 GB είναι υπεραρκετά για αυτό το σενάριο.
  6. Δικτυακές ρυθμίσεις: Η προκαθορισμένη λειτουργία δικτύωσης, για νεο-δημιουργημένες εικονικές μηχανές στο VirtualBox, είναι η NAT.  Αυτή η λειτουργία δεν είναι ιδιαίτερα βολική αν θέλετε δικτυακή πρόσβαση στη εικονική σας μηχανή από τον υπολογιστή σας ή από άλλες μηχανές του δικτύου. Γι’ αυτό συστήνεται καλύτερα η επιλογή Bridged Adapter.

    Προειδοποίηση: σε ορισμένα επιχειρηματικά περιβάλλοντα, η λειτουργία Bridge Adapter μπορεί να ενεργοποιήσει τις άμυνες του δικτύου και να κλειδωθείτε εκτός. Παρακαλώ να συμβουλευτείτε το διαχειριστή του δικτύου πριν το δοκιμάσετε!

    Περισσότερες πληροφορίες για τις διάφορες δικτυακές λειτουργίες του VirtualBox μπορείτε να βρείτε εδώ:
    VirtualBox Networking Modes

    • Για να ρυθμίσετε το Bridged Networking πατήστε το εικονίδιο Settings:VBox-Net-1
    • Η προκαθορισμένη λειτουργία στο πεδίο Attached to: είναι NAT:
      VBox-Net-2
    • Αλλάξτε τη ρύθμιση NAT σε Bridged Adapter:
      VBox-Net-3
      Αν έχετε περισσότερες από μια δικτυακές συνδέσεις θα πρέπει να επιλέξετε την κατάλληλη από το πεδίο Name. Συνήθως η σωστή επιλογή είναι eth0 αλλά αυτό δεν ισχύει πάντα. Πατήστε OK και τελειώσαμε με τα δικτυακά.
  7. Ενεργοποίηση της εικονικής μηχανής:
    • Πατήστε το εικονίδιο Start:
      VBox-8
    • Εκκινήστε το σύστημα από το αρχείο ISO του Ubuntu server:
      VBox-9
      Πατήστε το μικρο εικονίδιο φακέλου στα δεξιά.
    • Επιλέξτε το αρχείο ISO του Ubuntu που κατεβάσατε προηγουμένως:
      VBox-10
    • Πατήστε το Start για να ξεκινήσει η εγκατάσταση:
      VBox-11

Η πιο πάνω διαδικασία είναι ευνοϊκή για όσους δεν έχουν κάποιο διαθέσιμο υπολογιστή για δοκιμές. Η χρήση εικονικών μηχανών είναι η ασφαλέστερη μέθοδος για να πειραματιστείτε σε διάφορα σενάρια χωρίς να κάνετε ζημιά στο υπολογιστή σας.

Τώρα αν έχετε κάποιο ελεύθερο υπολογιστή διαθέσιμο μπορείτε να παραλείψετε τα πιο πάνω βήματα και να ακολουθήσετε αμέσως τα επόμενα βήματα. Σε ένα πραγματικό υπολογιστή θα χρειαστεί να «κάψετε» το αρχείο ISO σε ένα CD/DVD ή να το γράψετε σε ένα φλασάκι USB, χρησιμοποιώντας το  usb-creator σε Ubuntu ή το UNetbootin για άλλα συστήματα. Θα χρειαστεί να ρυθμίσετε το σύστημα BIOS/UEFI για εκκίνηση πρώτα από CD ή USB. Σε συστήματα Window 8 ενδεχομένως να πρέπει να απενεργοποιήσετε το έκτρωμα που ονομάζεται Secure Boot.

Εγκατάσταση Ubuntu Server 14.04 (Trusty Tahr)

Ώρα να εφοδιαστείτε με τα αναλγητικά σας γιατί αυτό θα πάρει λίγη ώρα.

  1. Επιλογή γλώσσας:
    Αν δεν το έχετε ήδη αντιληφθεί, το ποντίκι δεν δουλεύει απ’ εδώ και προς. Με τα βέλη επιλέξτε την γλώσσα και πατήστε ‘Enter’ για το επόμενο βήμα. Αν το  Virtualbox δεσμεύσει το ποντίκι σας πατήστε το δεξί κουμπι Ctrl για να το απελευθερώσει.
  2. Έναρξη εγκατάστασης:
    http://www.theo-andreou.org/wp-content/uploads/2015/02/ubuntu-server-gr-2.png
    Επιλέξτε Εγκατάσταση Ubuntu Server και πατήστε ‘Enter’.
  3. Επιβεβαίωση γλώσσας: αν επιλάξατε Ελληνικά θα σας παρουσιάσει το πιο κάτω μήνυμα:


    Επιλέξτε Ναι και πατήστε ‘Enter’

  4. Επιλογή τοποθεσίας:Επιλέξτε τοποθεσία και ‘Enter’
  5. Ανίχνευση διάταξης πληκτρολογίου:

    Επιλέξτε Ναι αν δεν είστε βέβαιοι για τη διάταξη του πληκτρολογίου σας. Η επιλογή Όχι είναι συνήθως επαρκής εκτός και αν έχετε κανένα περίεργο πληκτρολόγιο.
  6. Επιλογή βασικής διάταξης πληκτρολογίου:
  7. Επιλογή ειδικής διάταξης πληκτρολογίου:

    Διαλέξτε την πρώτη επιλογή αν δεν είστε βέβαιοι.
  8. Επιλογή μεθόδου εναλλαγής διάταξης πληκτρολογίου:

    Διαλέξτε Alt+Shift αν έχετε συνηθίσει στην προκαθορισμένη μέθοδο εναλλαγής των Windows.

    • Αναμείνατε μέχρι να ολοκληρωθεί η φόρτωση των αναγκαίων στοιχείων για την εγκατάσταση. Αν δεν είστε συνδεδεμένοι σε ένα δίκτυο με υπηρεσία DHCP ο εγκαταστάτης θα σας καλέσει να δώσετε τις δικτυακές σας ρυθμίσεις. Ζητήστε βοήθεια από το διαχειριστή δικτύου.
  9. Επιλογή ονόματος του συστήματος:

    Πατήστε’Tab’, επιλέξτε Συνέχεια και μετά ‘Enter’.
  10. Επιλογή ονόματος:

    Κανείς δεν σας υποχρεώνει να δώσετε το πραγματικό σας όνομα :).
  11. Επιλογή ονόματος χρήστη:
  12. Επιλογή κωδικού πρόσβασης:

    Αυτός θα είναι ένας προνομιούχος λογαριασμός (μέσω της εντολής sudo) και καλά κάνετε να διαλέξετε ένα δύσκολο, να το μαντέψει κανείς, κωδικό.
  13. Επιβεβαίωση κωδικού πρόσβασης:
  14. Κρυπτογράφηση προσωπικού φακέλου:

    Αυτό θα προστατέψει τα προσωπικά σας αρχεία αν είστε παρανοϊκός. Για πειραματικούς σκοπούς είναι εντάξει να επιλέξετε Όχι.
  15. Ρυθμίσεις ώρας:

    Αν η ζώνη ώρας είναι σωστή, επιλέξτε Ναι διαφορετικά Όχι.
  16. Επιλογή μεθόδου διαμέρισης:

    Η πρώτη επιλογή είναι πιο απλή και μάλλον εντάξει για πειραματικούς σκοπούς. Αλλα σε παραγωγικά συστήματα μπορεί να χρειαστει να αυξομειώσετε τη χωρητικότητα των διαμερισμάτων,  έτσι συστήνεται η μέθοδος LVM.
  17. Επιλογή δίσκου για διαμέριση:
  18. Επιβεβαίωση αλλαγών στο δίσκο που επιλέξατε:

    Επιλέξτε Ναι και πατήστε ‘Enter’.  Βεβαιωθείτε ότι δεν έχετε οτιδήποτε χρήσιμα δεδομένα σε αυτό το δίσκο!
  19. Επιλογή ποσοστού χωρητικότητας που θα χρησιμοποιηθεί:

    Είναι εντάξει να χρησιμοποιήσετε όλο τον διαθέσιμο χώρο σε μια πειραματική μηχανή.
  20. Αποθήκευση αλλαγών στο δίσκο:

    Επιλέξτε Ναι και πατήστε ‘Enter’.

    • Αναμείνατε την ολοκλήρωση της εγκατάστασης του βασικού συστήματος.
  21. Ρύθμιση διαμεσολαβητή (Proxy):

    Αν δεν χρησιμοποιείτε διαμεσολαβητή αφήστε το πεδίο κενό και προχωρήστε.
  22. Μέθοδος διαχείρισης ενημερώσεων:

    Αυτό είναι ένα δύσκολο δίλημμα. Αν επιλέξετε Χωρίς αυτοματες ρυθμίσεις τότε μπορεί να ξεχάσετε να εφαρμόσετε τις ενημερώσεις ασφαλείας εγκαίρως και το σύστημα σας να είναι ευάλωτο σε επιθέσεις. Αν επιλέξετε Αυτόματη εγκατάσταση ενημερώσεων ασφαλείας τότε μπορεί να σπάσει το σύστημα σας από μια προβληματική ενημέρωση. Επιλέξτε σοφά!
  23. Επιλογή επιπρόσθετων πακέτων:

    Είναι καλή ιδέα να εγκαταστήσετε το πακέτο OpenSSH που θα σας επιτρέψει να διαχειριστείτε την μηχανή σας εξ αποστάσεως. Υπάρχει επίσης μια επιλογή LAMP εδώ αλλά θα εγκαταστήσει τη βάση MySQL αντί την MariaDB και ίσως να θέλετε να το αποφύγετε.

    • Αναμείνατε την ολοκλήρωση εγκατάστασης επιπρόσθετων πακέτων.
  24. Εγκατάσταση φορτωτή εκκίνησης GRUB:

    Eπιλέξτε Ναι σε αυτό το σημείο.
  25. Επανεκκινήστε το σύστημα σας:

    Επιλέξτε Συνέχεια για να ολοκληρώσετε την εγκατάσταση.
  26. Καλώς ήρθατε στο καινούργιο σας Ubuntu Server:
    Ubuntu-Server-28
    Αν καταφέρατε να φτάσετε μέχρι εδώ συγχαρητήρια! Μόλις εγκαταστήσατε με επιτυχία ένα φρέσκο Ubuntu Serve πανέτοιμο να ροκάρει.

Εγκατάσταση περιβάλλοντος LAMP

Η εγκατάσταση ενός περιβάλλοντος LAMP environment είναι εύκολη.  Χρειάζεται να εγκατασταθεί ο εξυπηρετητής ιστού Apache, η σχεσιακή βάση δεδομένων  MariaDB , η γλώσσα PHP και το πρόσθετο PHP του Apache.

  1. Πριν προχωρήσουμε με την εγκατάσταση του περιβάλλοντος LAMP είναι καλή ιδέα να φορτώσετε στο σύστημα τις τελευταίες ενημερώσεις. Η πιο κάτω εντολή θα κατεβάσει τις λίστες μα τις καινούργιες εκδόσεις των διαθέσιμων πακέτων.
    $ sudo apt-get update
    

    Η πιο κάτω εντολή θα κατεβάσει τα πακέτα προς ενημέρωση, θα αφαιρέσει τα ξεπερασμένα πακέτα και θα εγκαταστήσει καινούργια:

    $ sudo apt-get -y dist-upgrade
    
  2. Εγκατάσταση απαιτούμενων πακέτων:
    $ sudo apt-get -y install apache2 libapache2-mod-php5 mariadb-server php5-mysql 
    
  3. Ορισμός κωδικού για χρήστη root σε MariaDB:
    mariadb-gr-1
  4. Επαλήθευση κωδικού χρήστη root:
    mariadb-gr-2
  5. Επιβεβαίωση αντικατάστασης MySQL
    mariadb-gr-3
    Αυτή η επιλογή θα εμφανιστεί μόνο αν υπάρχει προηγούμενη εγκατάσταση MySQL ή MariaDB.

Όταν ολοκληρωθεί η εγκατάσταση όλων των πακέτων είμαστε έτοιμοι να ξεκινήσουμε!

Δοκιμάστε τον εξυπηρετητή ιστού

Πριν τις δοκιμές θα πρέπει να βρούμε τη διεύθυνση IP του εξυπηρετητή. Τρέξτε τη πιο κάτω εντολή στο εξυπηρετητή σας:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 08:00:27:5a:6e:a9 brd ff:ff:ff:ff:ff:ff
 inet 192.168.56.101/24 brd 192.168.56.255 scope global eth0
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe5a:6ea9/64 scope link 
 valid_lft forever preferred_lft forever

Η διεύθυνση IP σας είναι 192.168.56.101.

  1. Δοκιμή της σύνδεσης ssh με τον εξυπηρετητή:
    Πρώτα ας ελέγξουμε κατά πόσο δουλεύει η υπηρεσία ssh. Δοκιμάστε την πιο κάτω εντολή στο τερματικό του υπολογιστή σας:

    me@PC:~$ ssh user@192.168.56.101
    The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
    ECDSA key fingerprint is e4:e7:ac:6c:68:ea:71:90:29:03:bc:92:8e:23:f7:0e.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts.
    user@192.168.56.101's password: 
    Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-35-generic x86_64)
    
     * Documentation: https://help.ubuntu.com/
    
     System information as of Mon Sep 15 11:36:04 EEST 2014
    
     System load: 0.09 Processes: 84
     Usage of /: 4.5% of 38.02GB Users logged in: 0
     Memory usage: 13% IP address for eth0: 192.168.56.101
     Swap usage: 0%
    
     Graph this data and manage this system at:
     https://landscape.canonical.com/
    
    Last login: Mon Sep 15 11:36:04 2014
    user@webserver:~$

    Την πρώτη φορά που θα συνδεθείτε με οποιαδήποτε υπηρεσία ssh θα δείτε την προειδοποίηση ότι  «The authenticity of host ‘<myhost(myip)>’ can’t be established.» Αυτό συμβαίνει μόνο την πρώτη φορα που θα συνδεθείτε σε μια καινούργια υπηρεσία ssh και είναι μηχανισμός ασφαλείας απέναντι σε επιθέσεις ενδιάμεσου χρήστη (MITM). Πληκτρολογήστε yes (όχι y!) εδώ.

    Μετά θα ζητήσει τον κωδικό σας. Δεν θα δείτε τίποτα καθώς πληκτρολογείτε! Αυτό είναι φυσιολογικό.

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

  2.  Δοκιμή του εξυπηρετητή ιστού Apache:
    Ανοίξτε το φυλλομετρητή σας και πληκτρολογήστε αυτή τη διεύθυνση URL στη γραμμή διευθύνσεων:
    http://192.168.56.101
    Test-Apache
    Αν δείτε την πιο πάνω σελίδα να εμφανίζεται στο φυλλομετρητή σημαίνει ότι ο Apache είναι έτοιμος.
  3. Δοκιμή PHP:
    Θα χρειαστεί να δημιουργήσετε το πιο κάτω αρχείο κάτω από το ριζικό κατάλογο (DocumentRoot/var/www/html) του Apache. Πληκτρολογήστε τις πιο κάτω εντολές στο τερματικό του εξυπηρετητή σας:

    $ sudo -i
    [sudo] password for user:
    # cat > /var/www/html/phpinfo.php << EOF
    > <?php phpinfo(); ?>
    > EOF
    # exit
    

    Η εντολή sudo -i θα σας δώσει πρόσβαση ως ο υπερ-προνομιούχος χρήστης root. Προσέξτε πως το σήμα ετοιμότητας αλλάζει από $ σε #.

    Η εντολή cat … θα δημιουργήσει ένα καινούργιο αρχείο /var/www/html/phpinfo.php με περιεχόμενο το κείμενο <?php phpinfo(): ?>.  Αυτός είναι ένας απλός τρόπος να ελέγξετε τις ρυθμίσεις της PHP και να δείτε κάποιες βασικές πληροφορίες του περιβάλλοντος LAMP.

    Η εντολή exit θα σας φέρει πίσω στο λογαριασμό του απλού χρήστη. Δεν θεωρείται καλή πρακτική να είμαστε συνδεδεμένοι σαν root για πάρα πολύ.

    Τέλος πληκτρολογήστε την διεύθυνση http://192.168.56.101/phpinfo.php στο φυλλομετρητή σας και θα πρέπει να δείτε το πιο κάτω αποτέλεσμα:
    Test-php-1

    Αν προχωρήσετε περισσότερο θα δείτε ότι η διεπαφή της PHP για διαχείριση mysql έχει επίσης ενεργοποιηθεί:
    Test-php-2
    Για λόγους ασφαλείας είναι καλή ιδέα να διαγράψετε το αρχείο phpinfo.php όταν τελειώσετε με αυτή την δοκιμή:

    $ sudo rm /var/www/html/phpinfo.php
  4. Εγκατάσταση phpMyAdmin (προαιρετική):
    $ sudo apt-get -y install phpmyadmin
  5. Επιτρέψτε στο διαχειριστή πακέτων να διαχειρίζεται τις ρυθμίσεις του phpMyAdmin:
    phpmyadmin-gr-1
  6. Πληκτρολογήστε το κωδικό του χρήστη root της MariaDB:
    phpmyadmin-gr-2
  7. Ορίστε το κωδικό της βάσης δεδομένων του phpMyAdmin:
    phpmyadmin-gr-3
  8. Επαλήθευση κωδικού:
    phpmyadmin-gr-4
  9. Επιλογή του σωστού εξυπηρετητή ιστού (apache2):
    phpmyadmin-gr-5
  10. Ακολουθήστε την διεύθυνση του phpMyAdmin με το φυλλομετρητή σας:
    (http://192.168.56.101/phpmyadmin):
    phpmyadmin-gr-6
    Χρησιμοποιήστε το όνομα χρήστη root και το κωδικό του χρήστη root στην MariaDB για να συνδεθείτε.
  11. Τώρα μπορείτε να διαχειριστείτε τη MariaDB μέσω του phpMyAdmin:
    phpmyadmin-gr-7

Αυτή ήταν και η τελευταία δοκιμή για να βεβαιωθούμε ότι όλα δουλεύουν όπως πρέπει. Τώρα μπορείτε να αναπτύξετε την ιστοσελίδα σας σε PHP ή να εγκαταστήσετε μια εφαρμογή PHP όπως το WordPress ή το ownCloud.