ΕΓΚΑΤΑΣΤΑΣΗ ΚΑΙ ΡΥΘΜΙΣΗ ΤΩΝ APACHE,MYSQL,MOD_SSL,PHP,WEBMAIL

ΕΙΣΑΓΩΓΗ
Σε αυτό το άρθρο θα βρείτε αναλυτικές λεπτομέριες για το πως να εγκαταστήσετε τις τελευταίες εκδόσεις των:
apache web server,mysql,php με υποστήριξη imap για webmail,mod_ssl για ασφαλή κρυπτογράφηση των δεδομένων.Τα πακέτα αυτά τα περιλαμβάνουν όλες οι διανομές linux που κυκλοφορούν.Ωστόσο,κατά καιρούς διαπιστώνονται προβλήματα στη λειτουργία και κυρίως στην ασφάλεια των προγραμμάτων αυτών,οπότε ο administrator πρέπει να είναι σε θέση να εγκαταστήσει τα προγράμματα,γιατί έτσι 
α)ελέγχει ο ίδιος που θα εγκατασταθούν τα προγράμματα και τα configuration scripts,ενώ από διανομή σε διανομή αυτά είναι σε διαφορετικές θέσεις
β)γνωρίζει καλύτερα και βαθύτερα τη λειτουργία των προγραμμάτων
γ)μπορεί οποιαδήποτε στιγμή θελήσει να αναβαθμίσει ένα συγκεκριμένο πρόγραμμα,χωρίς να υπάρχει πρόβλημα με  dependencies
Ούτως η άλλως τις περισσότερες φορές,τα συγκεκριμένα πακέτα πρέπει να εγκατασταθούν από τον κώδικα,γιατί δεν υπάρχουν rpm's που να καλύπτουν όλες τις απαιτήσεις για έναν κόμβο-πχ η php δεν έρχεται σε rpm με όλα τα features της,αλλά πρέπει να εγκατασταθούν manually.

ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ
Συνδεόμαστε στο server μας σαν root και κατεβάζουμε τα προγράμματα.Μπορούμε να επισκευτούμε τα επίσημα sites και να δούμε ορισμένες πληροφορίες για τα προγράμματα που μας ενδιαφέρουν,πχ ποια είναι η πιο πρόσφατη έκδοση.Για καλύτερες συνδέσεις επιλέγουμε το ftp του ntua,ftp.ntua.gr.

Αυτή τη στιγμή ο apache βρίσκεται στην έκδοση 1.3.29,ενώ υπάρχει και η σειρά 2.x η οποία είναι σε πειραματικό στάδιο.Η php είναι στην έκδοση 4.3.4.Για την mysql η καλύτερη επιλογή είναι η έκδοση 4.0.17 standard.Γενικά για την mysql προτιμάμε standard έκδοση-όπως και για κάθε πρόγραμμα.Το openssl βρίσκεται στην έκδοση 0.9.7c .Καλό είναι αν διαθέτετε κάποια προηγούμενη έκδοση να το αναβαθμίσσεται,γιατί οι εκδόσεις πριν την 0.9.6e έχουν σοβαρό πρόβλημα στην ασφάλεια.To mod_ssl θα το κατεβάσετε από τη διεύθυνση www.modssl.org και θα πρέπει να ταιριάζει στην έκδοση του apache.Για την υποστήριξη imap η php χρειάζεται τη βιβλιοθήκη c-client του imap η οποία υπάρχει στο ftp.cac.washington.edu/imap .

Συνολικά τα πακέτα είναι τα εξής:

apache:apache_1.3.29.tar.gz
mod_ssl:mod_ssl-2.8.16-1.3.29.tar.gz
mysql:mysql-standard-4.0.17-pc-linux-i686.tar.gz
php:php-4.3.4.tar.gz
imap:c-client.tar.Z
openssl:openssl-0.9.7c.tar.gz

Και πάλι,στο ftp.ntua.gr υπάρχουν όλα τα προγράμματα και βολεύει να τα κατεβάσουμε από κει.

1.)ΕΓΚΑΤΑΣΤΑΣΗ OPENSSL

To openssl εγκαθίσταται εύκολα στο σύστημα,αφού το κάνουμε unzip:

tar zxfv  openssl-0.9.7c.tar.gz
cd openssl-0.9.7c
./config --prefix=/usr/local/ssl
make
make test
make install

2.)ΕΓΚΑΤΑΣΤΑΣΗ MYSQL
Κάνουμε unzip το πακέτο:

tar zxfv mysql-standard-4.0.17-pc-linux-i686.tar.gz
cd mysql-standard-4.0.17
./configure --prefix=/usr/local/mysql
make
make install

Η εγκατάσταση τελείωσε είναι απαραίτητες όμως μερικές ρυθμίσεις:

cd /usr/local/mysql/scripts/
./mysql_install_db
cd /usr/local/mysql/bin
./safe_mysqld &    (ξεκινάμε τη mysql )
./mysqldadmin -uroot password 'kainourgios_kwdikos' (Αλλάζουμε τον κωδικό για τον root.Στο συγκεκριμένο παράδειγμα,ο κωδικός που μπαίνει είναι το kainourgios_kwdikos)

3.)ΕΓΚΑΤΑΣΤΑΣΗ ΤΗΣ ΒΙΒΛΙΟΘΗΚΗΣ C-CLIENT ΤΟΥ IMAP
Κάνουμε unzip το πακέτο:

tar zxfv c-client.tar.Z
cd imap2002e   (βάζει τα αρχεία σε αυτό τον φάκελο)
more README (απαραίτητο να διαβάσουμε το README)
make slx
cd c-client
ο φάκελος c-client έχει τα αρχεία που μας ενδιαφέρουν.Επειδή το σύστημά μας πιθανόν θα τρέχει imapd για να μη γίνει μπέρδεμα δημιουργούμε ένα directory στο οποίο θα βάλουμε τα αρχεία που μας ενδιαφέρουν:

mkdir /usr/local/imap-2004
mkdir /usr/local/imap-2004/lib
mkdir /usr/local/imap-2004/include
cp *.h /usr/local/imap-2004/include/    (είμαστε ακόμα στο c-client/)
cp *.c /usr/local/imap-2004/lib/
cp c-client.a /usr/local/imap-2004/lib/libc-client.a

Έχουμε τελειώσει με την υποστήριξη imap για την php.Όταν θα την κάνουμε compile θα προσθέσουμε το όρισμα
--with-imap=/usr/local/imap-2004

4.)ΕΓΚΑΤΑΣΤΑΣΗ APACHE,PHP,MOD_SSL
Κάνουμε unzip τον apache:

tar zxfv apache_1.3.29.tar.gz
cd apache_1.3.29
 ./configure --prefix=/usr/local/apache
το χρειάζεται η php και το mod_ssl
cd ..

Κάνουμε unzip την php 

tar zxfv php-4.3.4.tar.gz
cd php-4.3.4
./configure -help|more δείχνει όλες τις επιλογές-ορίσματα που μπορεί να πάρει η php
Για τη συγκεκριμένη εγκατάσταση θέλουμε να εγκατασταθεί με τα εξής:apache,imap support,ssl support,mysql support.Οπότε:
./configure --prefix=/usr/local/ \
 --with-apache=../apache_1.3.29 \
--with-imap=/usr/local/imap-2004/  \
 --with-mysql=/usr/local/mysql \
 --with-openssl=/usr/local/ssl/

μετά

make 
make install
cp php.ini-dist /usr/local/lib/php.ini

Το php.ini είναι το αρχείο στο οποίο ορίζονται οι επιλογές της php.Μπορούμε να το επεξεργαστούμε και να αλλάξουμε τις τιμές,ανάλογα με το σύστημα και τη χρήση που θέλουμε να κάνουμε.
Μια σημαντική παράμετρος πχ είναι το 
register globals			
το οποίο default είναι off.

5.)ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ MOD_SSL
Κάνουμε unzip τo mod_ssl

tar zxfv mod_ssl-2.8.16-1.3.29.tar.gz
cd mod_ssl-2.8.16
./configure --with-apache=../apache_1.3.29/

6)ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ APACHE-ΡΥΘΜΙΣΗ ΤΩΝ ΠΙΣΤΟΠΟΙΗΤΙΚΩΝ

cd apache_1.3.29
 ./configure --prefix=/usr/local/apache \
 --enable-module=ssl \
 --activate-module=src/modules/php4/libphp4.a \
 --enable-module=php4 
make

make certificate TYPE=custom

επιλέγουμε TYPE=custom στον τύπο του πιστοποιητικού,εκτός κι αν έχουμε πιστοποιητικά από κάποια υπάρχουσα CA-certificate authority.
Aπαντάμε στις ερωτήσεις ανάλογα με τις ανάγκες μας.
Στο τέλος θα υπογράψουμε τα πιστοποιητικά που παρήχθησαν με μια φράση.Καλό είναι να βάλουμε μια μεγάλη φράση που δεν θα έχει πιθανότητα κάποιος να μαντέψει.
Τέλος εγκαθιστούμε τον apache:

make install

Προτού το τρέξουμε για πρώτη φορά είναι απαραίτητο να κάνουμε τα εξής:

Ανοίγουμε το αρχείο httpd.conf ,το οποίο έχει όλες τις ρυθμίσεις για τον apache και κοιτάμε αν έχει τα εξής:

AddModule mod_php4.c
AddType application/x-httpd-php .php 

Αν δεν τα έχει φροντίζουμε ΟΠΩΣΔΗΠΟΤΕ να τα προσθέσουμε

vi /usr/local/apache/conf/httpd.conf
...

Επίσης τροποποιούμε το directoryindex ως εξής-για να διαβάζει πρώτα τo index.php και μετά το index.html σε κάθε directory που μπαίνει

DirectoryIndex index.php index.html

Σιγουρευόμαστε επίσης οτι υπάρχει μια γραμμή σαν την παρακάτω
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
Καλό είναι να απενεργοποιήσουμε το directory indexing,για περισσότερη ασφάλεια.

Επειδή κάθε φορά που θα ξεκινάει ο apache με ssl θα πρέπει να βάζουμε την passphrase που δώσαμε παραπάνω,πράγμα αδύνατο βέβαια,δημιουργούμε ένα μίνι-script το οποίο αυτόματα καλεί το httpd.conf με την έναρξη του apache.

cat > scriptaki
echo "edw bazoume thn passphrase"

Πατάμε control-D ταυτόχρονα για να σώσει το αρχείο.Το κάνουμε εκτελέσιμο
chmod +x scriptaki
Βάζουμε φυσικά τα κατάλληλα permissions ώστε να μην μπορεί να το διαβάσει οποιοσήποτε
Tέλος στο httpd.conf βρίσκουμε την παρακάτω γραμμή

#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog  builtin

και την αλλάζουμε ως εξής:

SSLPassPhraseDialog  exec:/usr/local/apache/scriptaki
 ή οπουδήποτε αλλού είναι το αρχείο που φτιάξαμε.

Έχουμε τελειώσει και το μόνο που μένει είναι να ξεκινήσουμε τον apache

/usr/local/apache/bin/apachectl startssl

7.)TΕΛΟΣ!
Έχουμε εγκαταστήσει με επιτυχία όλα τα προγράμματα.
Μπορούμε τώρα πια να εγκαταστήσουμε κάποιο πρόγραμμα webmail όπως το horde ή κάποιο πιο απλό,που μπορούμε να κατεβάσουμε από το sourceforge πχ.
Μπορούμε εύκολα να ρυθμίσουμε το σύστημά μας σε κάθε εκκίνηση να ξεκινάει και τη mysql,τον apache με php,mod_ssl,imap βάζοντας σε κάποιο αρχείο εκκίνησης τις εξής εντολές:
/usr/bin/mysql/bin/safe_mysqld &
/usr/local/apache/bin/apachectl startssl

ΕΠΙΜΕΛΕΙΑ
Το άρθρο έγραψε ο Μάρκος Γώγουλος,(cs00013 at icsd.aegean.gr)