Εγκατάσταση και ρύθμιση του Apache
Οι παρακάτω σημειώσεις περιλαμβάνουν οδηγίες για την εγκατάσταση και το στήσιμο του apache, καθώς και οδηγίες για τη δημιουργία εικονικών server. Ο αναγνώστης χρειάζεται να έχει κάποιες βασικές γνώσεις από unix. Οι οδηγίες βασίζονται σε ένα παράδειγμα και περιγράφονται αναλυτικά με βήματα.
A. Εγκατάσταση
α1. Μπαίνουμε στο σύστημα ως root και κατεβάζουμε τον
apache από έναν ftp server. Για παράδειγμα από τον ftp του Πολυτεχνείου,
πληκτρολογούμε:
$ftp ftp.ntua.gr
Δίνουμε:
USER anonymous
PASSWD myemail@domain.gr
που ισχύει για όλους τους ελληνικούς ftp. (Ανώνυμο login)
α2. Bρίσκουμε το αρχείο και το κατεβάζουμε με την εντολή get
αφού πρώτα εκτελέσουμε την εντολή bin, επειδή αυτό που θέλουμε να κατεβάσουμε
είναι σε δυαδική μορφή:
$bin
$get apache_1.X.XX.tar.gz
α3. Βγαίνουμε από τον ftp και αποσυμπιέζουμε το αρχείο με την
εντολή gunzip:
$gunzip apache_1.X.XX.tar.gz
μετατρέποντάς το σε μορφή με κατάληξη tar.
α4. Aνακτούμε τα αρχεία του apache στον κατάλογο που θέλουμε με την
εντολή tar:
$tar -xvf apache_1.X.XX.tar [<κατάλογος>]
α5. Πηγαίνουμε στον κατάλογο που βρίσκονται τα αρχεία και εκτελούμε:
$./configure --prefix=/usr/apache ή οπου αλλου θελουμε να γινει η
εγκατασταση
$make
$make install
Β. Ρυθμίσεις
β1. Aν δεν θέλω ο apache να τρέχει από έναν ήδη υπάρχων χρήστη
τότε δημιουργώ ένα νέο χρήστη και μια νέα ομάδα με τις εντολές:
$groupadd webgroup
$useradd webuser -d /home/webuser -g webgroup
ορίζοντας home directory και group, και ύστερα δημιουργώ το home dir
β2. Αλλάζουμε τα δικαιώματα του home directory:
$chmod 740 /home/webuser
(r:4, w:2, x:1)
β3. Ανοίγουμε το αρχείο httpd.conf με κάποιον editor,
κατά προτίμηση τον vi. Aν δεν βρίσκουμε το αρχείο εκτελούμε την εντολή:
$find / -name httpd.conf
β4. Στον vi η αναζητηση μιας λεξης γινεται πατωντας /
και οχι σε insert mode. Πατώντας κάθε φορά * μετακινούμαστε
στο επόμενο σημείο που βρίσκεται αυτή η λέξη. Βρίσκουμε και αλλάζουμε το
User και το Group δίνοντας αυτά που δημιουργήσαμε πιο πάνω:
User webuser
Group webgroup
β5. Ορίζουμε το DocumentRoot, μέσα στο οποίο θα βρίσκεται
ό,τι εμείς θα βγάζουμε στο web:
DocumentRoot "/home/webuser/www/docs"
β6. Ορίζουμε το αρχείο ErrorLog (εκεί θα γράφονται τα errors, warnings..):
ErrorLog /home/webuser/www/log/err_log
β7. Επιλέγουμε τι είδους μηνύματα θέλουμε να γράφονται στο
παραπάνω αρχείο:
LogLevel [debug/info/notice/warn/error/crit/alert/emerg]
Επιλέγοντας μια τιμή επιλέγονται και όλες όσες είναι δεξιά αυτής.
β8. Ορίζουμε το ServerName:
ServerName www.mysite.gr
β9. Οριζουμε το DirectoryIndex (δηλαδη τις σελιδες που ο
server μας θα αναγνωριζει ως αρχικες):
DirectoryIndex index.html home.html
β10.Κλείνω το αρχείο αφού το σώζω. (Εντολή vi: wq)
β11.Δημιουργώ τους καταλόγους του DocumentRoot και
του ErrorLog και αλλάζω τον κάτοχο αυτών:
$mkdir /home/webuser/www
$mkdir /home/webuser/www/docs
$mkdir /home/webuser/www/log
$chown webuser:webgroup /home/webuser/www
$chown webuser:webgroup /home/webuser/www/docs
$chown webuser:webgroup /home/webuser/www/log
β12.Φτιάχνω την αρχική μου σελίδα (index.html), μέσα στο DocumentRoot:
$vi /home/webuser/www/docs/index.html
Παράδειγμα index.html:
<html>
<head>
<title>Welcome to www.mysite.gr</title>
</head>
<body><h1>Hello Everybody!</h1></body>
</html>
β13.Τρέχω τον apache.Εαν εχω εγκαταστήσει τον apache στον
κατάλογο π.χ. /usr/src/apache τοτε το εκτελέσιμο βρίσκεται στον
κατάλογο /usr/src/apache/bin και είναι το apachectl(start|stop). Για να
τρέχω τον apache από οποιοδήποτε φάκελο αντιγράφω το εκτελέσιμο στον κατάλογο /sbin.
Για το δικό μας παράδειγμα:
$cp /usr/apache/bin/apachectl /sbin/
Άλλα πιθανά ονόματα που μπορεί να έχει είναι httpd ή rcapache.
β14. Για να διαπιστώσω ότι λειτουργεί σωστά εκτελώ:
$ifconfig
για να δω την ΙP address μου, και ανοίγω έναν browser εισάγοντας την IP μου
στην γραμμή διευθύνσεων. Αν δω την αρχική μου σελίδα (index.html) τότε λειτουργεί!
Γ. Virtual Hosts
Οι παρακάτω ρυθμίσεις είναι για την περίπτωση που θέλω με μία ΙΡ δ/νση να έχω δύο ή περισσότερους εικονικούς servers.
γ1. Μέσα στο αρχείο httpd.conf αλλάζω την τιμή του
NameVirtualHost δίνοντας τη δικιά μου ΙΡ (παράδειγμα):
NameVirtualHost 195.130.100.150
γ2. Πηγαίνω στο τμήμα <VirtualHost IP> (συνήθως στο
τέλος του αρχείου) δίνοντας επίσης την ΙΡ μου και ορίζοντας όπως παραπάνω το
DocumentRoot, το ServerName και το ErrorLog:
<VirtualHost 195.130.100.150>
DocumentRoot /home/webuser/www/site1_docs
ServerName www.site1.gr
ErrorLog /home/webuser/www/log/site1_log
</VirtualHost>
<VirtualHost 195.130.100.150>
DocumentRoot /home/webuser/www/site2_docs
ServerName www.site2.gr
ErrorLog /home/webuser/www/log/site2_log
</VirtualHost>
γ3. Βγαίνω από το httpd.conf, δημιουργώ τους παραπάνω καταλόγους, αλλάζω δικαιώματα και κάτοχο, και φτιάχνω το index.html μέσα στο DocumentRoot, όπως στα βήματα β10-β12.
γ4. Τρέχω τον apache όπως στο βήμα β13.
γ5. Για να διαπιστώσω ότι λειτουργεί, τρέχω το εκτελέσιμο
όπως στο βήμα 13 και ανοίγω το αρχείο /etc/hosts. Eκεί προσθέτω τις εξής
γραμμές (για το παράδειγμα):
195.130.100.150 www.site1.gr
195.130.100.150 www.site2.gr
Δηλαδή την τρέχουσα ΙΡ μου και τους ServerName των VirtualHosts.
γ6. Ανοίγω ένα browser και βλέπω τις σελίδες μου!
γ7. Αν δεν θελουμε να συνδεθουμε στο internet για να δουμε αν λειτουργει σωστα ο server μας , μπορουμε να χρησιμοποιησουμε τον αριθμο 127.0.0.1 στη θεση των παραπανω IP.
Δ. Εγκατάσταση Apache με PHP
δ1. Για να επιτυχουμε την εγκατασταση του apache με την υποστηριξη της php ακολουθουμε τα βηματα α1-α2 , ομως αυτη τη φορα κατεβαζουμε και μια εκδοση της php , π.χ. php-x.x.x.tar.gz
δ2. Στη συνεχεια ακολουθουμε τις εξης εντολες:
$tar xvzf apache_1.x.xx.tar
$tar xvzf php-x.x.x.tar
$cd apache_1.x.xx
$./configure --prefix=/usr/src/apache (ή οπου αλλου θελουμε να εγκατασταθει)
$cd ../php-x.x.x
$./configure --with-mysql --with-apache=../apache_1.x.xx --enable-tracks-vars
$make
$make install
$cd ../apache_1.x.xx
$./configure --activate-module=src/modules/php3/libphp3.a
$./configure --activate-module=src/modules/php4/libphp4.a
$make
$make install
$cd ../php-x.x.x
$cp php.ini-dist /usr/local/lib/php.ini
δ3. Στη συνεχεια δημιουργουμε τους απαραιτητους καταλογους και κανουμε τις απαραιτητες ρυθμισεις οπως περιγραφονται παραπανω.
δ4. Για να μπορεσουμε να εκτελεσουμε την php πρεπει στο
httpd.conf να προσθεσουμε γραμμες του στυλ:
AddType application/x-httpd-php .php
Η παραπανω γραμμη επιτρεπει την εκτελεση php προγραμμματων με καταληξη .php.
Ομοιως βαζουμε οτι καταληξη εχουν τα αρχεια μας.
Οι συγγραφείς
Το άρθρο αυτό το έγραψαν οι Κρινής Βελισσάριος (bkrinis at yahoo.com) και Παπουτσής Σωτήρης (soter_pap at yahoo.com), φοιτητές του Τμήματος Πληροφορικής του ΤΕΙ Αθήνας. Τους ευχαριστούμε θερμά για αυτήν την συνεισφορά!