Εργαστήριο 3 Εγκατάσταση LAMP Stack στο AWS ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Τί είναι ένας LAMP Server; Αποτελεί ένα πρότυπο μοντέλο για Web Services. Το ακρώνυμο αντιστοιχεί μέ: Linux Apache MySQL PHP ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Τί είναι ο Apache; Αποτελεί ένα web server ανοικτού κώδικα και δημόσιας χρήσης. Αναπτύχθηκε απο μεγάλο ποσοστό εθελοντών προγραμματιστών με το όνομα Apache Group. Το όνομα του έρχεται από την φυλή των ινδιάνων που ήταν γνωστή για την τεράστια αντοχή τους στο πεδίο της μάχης. Πρωτοεμφανίσθηκε το 1995. Επειδή ο πηγαίος κώδικας είναι ανοικτός, ο καθένας μπορεί να το υιοθετήσει για τις ανάγκες του. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Τί είναι ο Apache; Στην αρχή φτιάχτηκε για περιβάλλον UNIX και τώρα υπάρχει σε σχεδόν όλα τα OS. Αποτελεί τον πιό διάσημο και χρησιμοποιούμενο web server εκεί έξω. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Ιδιότητες του Apache DBM Databases for authentication: Κάνουν εύκολη την εισαγωγή για password-protected ιστοσελίδες και μεγάλο αριθμό από αδειοδοτούμενους χρήστες. Customized responses to errors and problems: Δίνει τη δυνατότητα συγγραφής script που να λαμβάνουν τα errors π.χ.http 500 και να παράγουν ανάλογα μηνύματα. Multiple DirectoryIndex directives: μπορεί να έχεις index.html που θα σταλεί στον user, αλλά και index.php το οποίο θα εκτελεστεί. Unlimited and flexible URL rewriting and aliasing: Δέν έχει περιορισμό στα Aliases και Redirects που μπορούν να δηλωθούν στα config αρχεία. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Ιδιότητες του Apache Content negotiation: Μπορεί να γίνει configured έτσι ώστε να στέλνει διαφορετικά αρχεία HTML στους διάφορους πελάτες βάσει των δυνατοτήτων τους. Virtual Hosts: Μπορεί να ξεχωρίσει requests που έγιναν σε διαφορετικά Ips ή ονόματα, τα οποία ήταν mapped στην ίδια μηχανή. Configurable and Reliable Piped logs: Παράγει log αρχεία σε format που θέλει ο server manager. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Βασικό Configuration Γενικά δέν υπάρχει ανάγκη για την όποια αλλαγή στα configuration αρχεία εάν θέλουμε ένα απλό web server. Το config αρχεία βρίσκονται στο /etc/httpd/conf/httpd.conf To αρχείο config χωρίζεται σε τρείς βασικούς τομείς: Global Section Default Section Virtual Hosts Section ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
1 ος Τομέας: Global Section Ο συγκεκριμένος τομέας διαχειρίζεται τη κοινή συμπεριφορά από όλα τα Apache Instances που τρέχουν στο σύστημα σας. Ακολουθούν συγκεκριμένα παραδείγματα: TimeOut: Αντιστοιχεί στον μέγιστο χρόνο για την εκτέλεση request. Το default είναι 300. KeepAlive: Αφήνει τη δημιουργία persistent connection μεταξύ serverclients. BindAddress: Καθορίζει το IP address στο οποίο θα απαντάει ο server. Το συγκεκριμένο χρησιμοποιείται σε μηχανές που τρέχουν πολλαπλά IP addresses ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
2 ος Τομέας: Main Default Section Ο συγκεκριμένος τομέας διαχειρίζεται τον default server. Δηλαδή αυτόν που διαχειρίζεται τα requested που δέν στοχεύονται για κάποιο virtual host. Οτι δηλωθεί σε αυτό το σημείο, υιοθετείται από τους virtual hosts. Τα settings μέσα στους virtual hosts θα διαγράψουν αυτά του default server. Ακολουθούν συγκεκριμένα παραδείγματα: Port: Αντιστοιχεί στον port που θα ακούει ο default server. Συνήθως είναι το 80. Προσοχή! Το συγκεκριμένο δέν υιοθετείται από τους virtual hosts. User: Π.χ. www ή apache που δηλώνεται για λόγους ασφαλείας και αναλαμβάνει τα request που έρχονται. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
2 ος Τομέας: Main Default Section Group: Όπως αλλάζει το UID σε www ή apache, έτσι αλλάζει και GID για λόγους ασφαλείας. DocumentRoot: Δηλόνεται το directory που θα ψάξει για το main index αρχείο. Alias: Αφήνει το redirection των requests απο το συγκεκριμένο alias στο πραγματικό host name. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
3 ος Τομέας: Virtual Servers - Hosts Οι virtual servers αποτελούν ένα τρόπο για ένα apache server να υποστηρίζει πολλαπλά domains. Αυτό γίνεται με τρέις τρόπους: Βάσει του port Βάσει του address Βάσει του name: Αποτελεί την πιο χρησιμοποιειμένη μέθοδο όπου πολλαπλά domains μοιράζονται το ίδιο IP (CNAME Aliasing). Οι virtual server γίνονται define μεταξύ των <VirtualHost> tags. Οτιδήποτε δηλωθεί μεταξύ των συγκεκριμένων tags, αντιστοιχεί στον συγκεκριμένο virtual host. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
3 ος Τομέας: Virtual Servers - Hosts Παράδειγμα δήλωσης virtual host για www.example.com και www.foo.org κάτω απο το ίδιο ΙΡ. NameVirtualHost * <VirtualHost> ServerAdmin webmaster@example.com DocumentRoot /www/docs/example.com ServerName example.com ErrorLog logs/example.com_error </VirtualHost> <VirtualHost> ServerAdmin webmaster@foo.org DocumentRoot /www/docs/foo.org ServerName foo.org ErrorLog logs/foo.org_error </VirtualHost> ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Ενωθείτε με το AWS Instance σας μέσω SSH. ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Εγκαταστήστε τον Apache HTTP Server. sudo apt-get update sudo apt-get install apache2 Ελέγξετε εάν έχει εγκατασταθεί επιτυχώς μπαίνοντας πάνω στον AWS host σας μέσω του web browser. Μπορείτε να πάρετε το ΙΡ σας με το να εκτελέσετε την πιο κάτω εντολή (είτε να το δείτε μέσα απο το AWS Dashboard). curl http://19.254.19.254/latest/meta-data/public-ipv4 ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Θα πρέπει να δείτε κατι παρόποιο με το ακόλουθο: ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Εγκαταστήστε την MySQL. sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql Ενεργοποιήστε την κάνοντας: sudo mysql_install_db Ασφαλίστε την εκτελόντας: sudo /usr/bin/mysql_secure_installation ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Εγκαταστήστε την ΡΗΡ. sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt Τοποθετήστε ένα αρχείο index.php στο directory index. Τροποποιήστε το dir.conf αρχείο σας κάνοντας: sudo nano /etc/apache2/mods-enabled/dir.conf Προσθέστε το index.php στην αρχή του DirectoryIndex: <IfModule mod_dir.c> </IfModule> DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Ελέγξετε την εγκατάσταση του LAMP Stack. Δημιουργήστε ένα αρχείο info.php μέσα στο /var/www/html/info.php sudo nano /var/www/html/info.php Γράψετε μέσα την πιό κάτω γραμμή, κάντε save και exit. Τροποποιήστε το dir.conf αρχείο σας κάνοντας: <?php phpinfo();?> Κάντε επανεκκίνηση τον Apache HTTP Server sudo service apache2 restart ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201
Εγκατάσταση LAMP Stack στο AWS Mπαίνοντας πάνω στον AWS host σας μέσω του web browser θα πρέπει να δείτε κατι παρόποιο με το ακόλουθο: ΕΠΛ425 - Τεχνολογίες Διαδικτύου Χειμερινό Εξάμηνο 201