Εγκατάσταση και ρύθμιση του Apache

Δημοσίευση από admin στις 10 Μαρτίου 2003

Οι παρακάτω σημειώσεις περιλαμβάνουν οδηγίες για την εγκατάσταση και το στήσιμο του 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), φοιτητές του Τμήματος Πληροφορικής του ΤΕΙ Αθήνας. Τους ευχαριστούμε θερμά για αυτήν την συνεισφορά!