Εισαγωγή στον Apache και την PHP - Πως ρυθμίζουμε τα Suhosin, mod_deflate, και e-Accelerator

dimitris | Κυρ, 09/02/2012 - 10:50 | 28'
Γνωρίστε τους δύο θεμέλιους λίθους χάρη στους οποίους λειτουργούν οι περισσότεροι ιστοτόποι και μάθετε πως γίνεται η εγκατάστασή τους από το Α ως το Ω.

Του Βαγγέλη Μπαλάσκα

Στις μέρες μας οι περισσότεροι (χωρίς τεχνικές γνώσεις) συνάνθρωποι μας, συγχέουν το Internet με την λειτουργία διάφορων social sites όπως για παράδειγμα το Facebook και το Twitter. Επίσης οι περισσότεροι από εμάς κάνουμε χρήση δωρεάν υπηρεσιών όπως π.χ. το GMail ή κάποιο blog engine (Wordpress/Blogspot) για να φιλοξενήσουμε τις προσωπικές μας σελίδες. Θεωρούμε αυτονόητο ότι όλα αυτά τα sites λειτουργούν μέρα νύχτα με μοναδικό σκοπό να εξυπηρετήσουν κάθε μας ανάγκη, κάθε μας κλικ.

Μα πως παίζουν όλα αυτά; Υπάρχει κάτι πίσω από δαύτα που τρέχει συνέχεια, όλο τον χρόνο, μέρα και νύχτα ώστε όλα αυτά τα sites να λειτουργούν αδιάκοπτα; Η απάντηση είναι ναι! Και λέγεται διακομιστής ιστοσελίδων ή web server. Υπάρχουν πάρα πολλοί web servers μα εμείς θα ασχοληθούμε με τον Apache HTTP Server [2] ο οποίος αυτή την στιγμή κατέχει το 65.05% της παγκόσμιας αγοράς [1].

Ο σκοπός αυτού του άρθρου είναι να παρουσιάσει την βασική εγκατάσταση και μερικά από τα πιο ενδιαφέροντα σημεία παραμετροποίησης που θα χρειαστεί κανείς για να φιλοξενήσει το δικό του site. Σε αντίθεση με τα προηγούμενα άρθρα μας, σε αυτό θα παρουσιάσουμε την εγκατάσταση των προγραμμάτων μέσω πηγαίου κώδικα, καθώς θεωρούμε ότι μπορεί να χρησιμοποιηθεί ως οδηγός για κάθε πρόγραμμα.

Μία ακόμα αφορμή για να παρουσιάσουμε την εγκατάσταση του Apache web server από τον πηγαίο κώδικα, είναι γιατί πρόσφατα αποκαλύφθηκε ένα τρωτό σημείο (vulnerability) [4], το οποίο μπορεί να τερματίσει την λειτουργία του Apache. Εάν και ήδη σχεδόν όλες οι διανομές Linux έχουν ανανεώσει τα αποθετήριά τους κι έχουν ήδη αναβαθμίσει την έκδοση του Apache, θέλουμε να παρουσιάσουμε κι αυτόν τον τρόπο για τους χρήστες που έχουν ήδη κάνει την εγκατάσταση από πηγαίο κώδικα.

Πριν ξεκινήσουμε, δημιουργήστε έναν κατάλογο εργασίας και κατεβάστε όλα τα προγράμματα που μπορεί να χρειαστούμε από πριν. Έτσι δεν θα διακόψετε την προσπάθειά σας, από κάποια αδυναμία του δικτύου αργότερα.

mkdir -pv sources
cd sources

wget -c http://apache.otenet.gr/dist//httpd/httpd-2.2.20.tar.bz2
wget -c http://gr.php.net/distributions/php-5.3.8.tar.bz2
wget -c http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1…
wget -c http://download.suhosin.org/suhosin-patch-5.3.7-0.9.10.patch.gz
wget -c http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccele…

Ενώ θα πρέπει να έχουμε ήδη εγκατεστημένα τα παρακάτω προγράμματα:

  • gcc
  • gcc-c++
  • patch
  • make
  • unzip
  • autoconf
  • automake
  • libtool
  • m4

Εάν θέλουμε να προσθέσουμε μερικά επιπλέον χαρακτηριστικά στην PHP, τότε χρειαζόμαστε και τα εξής:

  • libxml2
  • curl
  • libpng
  • libmcrypt
  • mysql
  • mysqlclient
  • libmysqlclient

Πως θα δουλέψουμε

Πηγαίνουμε στον κατάλογο όπου έχουμε κατεβάσει τον πηγαίο κώδικα από όλα τα παραπάνω προγράμματα. Η διαδικασία που θα ακολουθήσουμε αποτελείται από 4 βήματα:

  • Αποσυμπίεση του προγράμματος που κατεβάσαμε
  • Διαμόρφωση του προγράμματος που θέλουμε να μεταγλωττίσουμε
  • Μεταγλωττισμό του πηγαίου κώδικα
  • Εγκατάσταση του προγράμματος στο αρχείο συστημάτων μας.

Η διαδικασία είναι παρόμοια για όλα τα προγράμματα αυτού του οδηγού κι όχι μόνο. Εάν κατανοήσετε τα παραπάνω βήματα τότε μπορείτε να εγκαταστήσετε οποιοδήποτε πρόγραμμα σε οποιαδήποτε διανομή Linux από τον πηγαίο του κώδικα κι όχι από τον διαχειριστή πακέτων που έχει κάθε διανομή.

Για όλες τις παρακάτω εντολές υποθέτουμε ότι έχετε δικαιώματα διαχειριστή, είτε έχετε συνδεθεί ως διαχειριστής είτε έχετε γίνει διαχειριστής μέσω της εντολής su/sudo. Σε κάθε περίπτωση θα πρέπει να βλέπετε το "#" σύμβολο για να τρέξετε όλες τις παρακάτω εντολές. Φυσικά αυτό απαραίτητο είναι μόνο στην εγκατάσταση ενός προγράμματος, αλλά χάριν ευκολίας θα εκτελέσουμε όλες τις εντολές ως διαχειριστές.

# tar jxvf httpd-2.2.20.tar.bz2
# cd httpd-2.2.20
# ./configure
# make
# make install

Αυτό είναι το βασικό σετ εντολών. Με τις παραπάνω εντολές έχουμε έναν web server έτοιμο! Ναι είναι τόσο απλό! Πως μπορούμε να δούμε ότι τρέχει;

/usr/local/apache2/bin/httpd -k start
 

Κι εάν έχουμε ανοιχτό το firewall (iptables) στην πόρτα 80 θα μπορούμε δια μέσου ενός web browser να πληκτρολογήσουμε το

http://localhost
και να δούμε ότι παίζει - θα εμφανιστεί το μήνυμα "it works".

Εγκατάσταση του Apache

Μέχρι αυτό το σημείο όμως, δεν έχουμε τίποτε άλλο εκτός από έναν σκέτο web server στο μηχάνημά μας. Εάν θέλουμε να του προσθέσουμε κάποιες επιπλέον λειτουργίες θα πρέπει να παραμετροποιήσουμε τον Apache μας. Αυτό γίνεται, και σχεδόν σε όλα τα προγράμματα γίνεται με τον ίδιο τρόπο, στο βήμα της διαμόρφωσης (configure). Με την παρακάτω εντολή μπορούμε να δούμε όλες τις δυνατότητες ή τις παραμέτρους που μπορούμε να δώσουμε πριν την μεταγλώττιση του Apache:

./configure –-help

Ορίστε κι ένα έτοιμο set από παραμέτρους:

./configure \
–-enable-dav \
--enable-rewrite \
--enable-ssl \
--enable-so \
--enable-proxy \
--enable-headers \
--enable-deflate \
--enable-cache \
--enable-disk-cache
 

Θα με ρωτήσετε τι κάνουν όλα αυτά; Σε γενικές γραμμές, ενεργοποιούμε κάποιες επιπλέον δυνατότητες στον Αpache, οι οποίες φορτώνονται ως αρθρώματα (modules). Μερικές από τις δυνατότητες που ενεργοποιούμε με το παραπάνω σύνολο παραμέτρων είναι η συμπίεση αρχείων, η προσωρινή αποθήκευση των δυναμικών αντικειμένων, η υποστήριξη πιστοποιητικών ασφαλείας κα.

Αφού τελειώσουμε τη διαμόρφωση του Apache, τον μεταγλωττίζουμε και τον εγκαθιστύμεε με τις εντολές make και make install.

Βασικές ρυθμίσεις Apache

Αφού τελειώσαμε με την εγκατάσταση του Apache, ας περάσουμε στη ρύθμιση. Το βασικό αρχείο ρυθμίσεων του Apache είναι το αρχείο httpd.conf. Στην εγκατάσταση που περιγράψαμε αυτό βρίσκεται στην εξής διαδρομή:

/usr/local/apache2/conf/httpd.conf
μα στις περισσότερες διανομές, κι εάν έχει γίνει εγκατάσταση από την προσθαφαίρεση λογισμικού, θα βρίσκεται στην παρακάτω διαδρομή:

/etc/httpd/conf/httpd.conf

Για πλήρη τεκμηρίωση θα πρέπει να επισκεφτείτε την εξής διεύθυνση: httpd.apache.org/docs/2.2.

Εμείς εδώ θα δούμε μερικά από τα βασικά σημεία αυτού του αρχείου. Για οποιαδήποτε απορία σας, μην διστάσετε να επικοινωνήστε με το forum του Linux Inside ή κατευθείαν μαζί μου.

  • ServerRoot - ο βασικός κατάλογος εγκατάστασης του Αpache μας
  • Listen - Σε ποια TCP πόρτα θα ακούει εξ'ορισμού ο web server
  • LoadModule - Ποια αρθρώματα έχουμε εγκαταστήσει
  • User/Group - Σε ποιον χρήστη μεταβιβάζουμε τα δικαιώματα εκτέλεσης του apache
  • ServerAdmin - Σε ποιον πρέπει να στείλουμε email εάν κάτι δεν πάει καλά
  • ServerName - Το βασικό όνομα του site μας
  • DocumentRoot - Ο βασικός κατάλογος στον οποίο φιλοξενούμε τις σελίδες και τα site μας
  • ErrorLog - Το βασικό αρχείο καταγραφής σφαλμάτων
  • LogLevel - Το επίπεδο σφαλμάτων που καταγράφονται

Τέλος στον κατάλογο /usr/local/apache2/conf/extra θα βρείτε επιπλέον αρχεία που περιέχουν επιπλέον βασικές ρυθμίσεις για τον apache web server. 

Βασικές εντολές Apache

Στην συνέχεια θα περιγράψουμε μερικές από τις πιο βασικές εντολές του Apache.

Εάν θέλουμε να διαβάσει το αρχείο ρύθμισης ο Apache web server χωρίς να σταματήσει και να επανεκκινήσει τότε αρκεί να πληκτρολογήσουμε την εξής εντολή:

/usr/local/apache2/bin/httpd -k graceful

Ενώ μερικές ενδιαφέρουσες εντολές είναι οι εξής:

  • /usr/local/apache2/bin/httpd -t   (Ελέγχει την σύνταξη του αρχείου ρυθμίσεων)
  • /usr/local/apache2/bin/httpd -S  (Ελέγχει τις ρυθμίσεις στα Virtual Hosts & το configuration file)
  • /usr/local/apache2/bin/httpd -v  (Εμφανίζει πληροφορίες για την τρέχουσα έκδοση του apache)
  • /usr/local/apache2/bin/httpd -V  (Εμφανίζει πληροφορίες εγκατάστασης)
  • /usr/local/apache2/bin/httpd -l  (Εμφανίζει τα αρθρώματα που είναι εγκατεστημένα)
  • /usr/local/apache2/bin/httpd -L  (Εμφανίζει όλες τις πιθανές ρυθμίσεις που μπορούμε να κάνουμε)
  • /usr/local/apache2/bin/ab  (Benchmark εργαλείο για τον apache)
  • /usr/local/apache2/bin/htpasswd (Εντολή για να δημιουργήσουμε αρχείο πρόσβασης με χρήστες/συνθηματικά)
  • /usr/local/apache2/bin/apachectl  (Εργαλείο ελέγχου του apache web server)

 

PHP: Hypertext Preprocessor

Η ύπαρξη ενός web server όπως είναι ο Apache, μας δίνει την δυνατότητα να έχουμε ένα στατικό site. Με τον όρο στατικό εννοούμε ότι οι σελίδες html που δείχνουν τα περιεχόμενα ενός site δεν αλλάζουν και δείχνουν πάντα το ίδιο περιεχόμενο σε όλους. Εάν θέλουμε να κάνουμε μια αλλαγή, θα πρέπει να ανεβάζουμε την νέα σελίδα μας στον αντίστοιχο χώρο του apache (π.χ. /var/www σε Debian) ώστε να ανανεωθεί το site μας.

Εάν θέλουμε να έχουμε δυναμικό περιεχόμενο ή να μπορούν οι χρήστες να αλληλεπιδρούν με το web site που έχουμε δημιουργήσει, χρειαζόμαστε μια δυναμική γλώσσα που να μπορεί να υποστηρίζει ο web server μας. Η δημοφιλέστερη δυναμική γλώσσα που υπάρχει αυτή την στιγμή στο διαδίκτυο είναι η PHP [3]. Μάλιστα μερικές από τις πιο γνωστές διαδικτυακές εφαρμογές έχουν γραφτεί σε PHP (πχ Drupal, Joomla, Wordpress, Wikimedia κα)

Η εγκατάσταση της PHP δεν διαφέρει και πάρα πολύ από την διαδικασία εγκατάστασης του Apache. Ορίστε και τα βήματα:

tar jxvf php-5.3.8.tar.bz2
cd php-5.3.8
./configure --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
 

Ακριβώς όπως κάναμε και στη διαδικασία εγκατάστασης του Apache! Εάν θέλουμε ένα πιο πλήρες setup θα πρέπει να δούμε τι επιλογές μπορούμε να ενεργοποιήσουμε μέσα από τη διαμόρφωση της PHP, πριν την εγκατάστασή της:

./configure –-help | less
 

Για παράδειγμα, ένα πιο πλήρες setup είναι το εξης:

./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-zlib \
--with-openssl \
--with-gd \
--enable-mbstring \
--with-mcrypt \
--with-curl
 

Αφού τελειώσουμε με τη διαμόρφωση, προχωράμε στον μεταγλωττισμό (make) και την εγκατάσταση (make install) της PHP. Στη συνέχεια, το βασικό αρχείο για την ρύθμιση της PHP είναι το εξής: /usr/local/lib/php.ini

Για να δούμε ότι έχουμε ενεργοποιήσει την PHP στο μηχάνημά μας, θα πρέπει να ελέγξουμε ότι στο αρχείο httpd.conf υπάρχουν τα εξής:

LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
 

Και φυσικά, εάν δεν έχουμε επανεκκινήσει τον Apache, θα πρέπει να το κάνουμε:

/usr/local/apache2/bin/httpd -k restart
 

Για να επιβεβαιώσουμε ότι λειτουργεί η PHP στο μηχάνημά μας, αρκεί στον κατάλογο DocumentRoot να δημιουργήσουμε ένα νέο αρχείο με όνομα index.php και το παρακάτω περιεχόμενο:

<?php phpinfo();?>

Τέλος μέσω του αγαπημένου μας web server, πληκτρολογούμε στη γραμμή διευθύνσεων: http://localhost/index.php και θα πρέπει να δούμε μια δυναμική σελίδα με όλες τις πληροφορίες για τον Apache και την PHP στο μηχάνημά μας.  Σημειώστε ότι η πλήρης τεκμηρίωση της PHP  βρίσκεται εδώ: http://www.php.net/manual/en/Κι είναι από τα πληρέστερα εγχειρίδια που υπάρχουν καθώς σε κάθε ενότητα έχει παραδείγματα μα και παραδείγματα που έχουν συνεισφέρει διάφοροι χρήστες.

Μέχρι στιγμής έχουμε περιγράψει μονάχα δύο προγράμματα κι είτε το πιστεύετε είτε όχι αρκούν για να τρέξουμε μερικές από τις πιο γνωστές διαδικτυακές εφαρμογές. Στις παρακάτω γραμμές του άρθρου θα περιγράψουμε πως μπορούμε να προσθέσουμε ταχύτητα αλλά και προστασία στην εγκατάσταση που έχουμε υλοποιήσει μέχρι τώρα

Συμπίεση δεδομένων με το mod_deflate

Εάν έχουμε ενεργοποιήσει το mod_deflate κατά την μεταγλώττιση του Apache, τότε έχουμε την δυνατότητα να συμπιέζουμε το περιεχόμενο του site μας. Η συμπίεση των αρχείων γίνεται στον web server ο οποίος πλέον σερβίρει την “συμπιεσμένη έκδοση” του site μας στο διαδίκτυο. Φυσικά θα πρέπει ο αγαπημένος μας web browser μας (πχ. Firefox, Chromium) να καταλάβει την συμπιεσμένη κίνηση και να αποσυμπιέζει τις σελίδες πριν μας τις δείξει!

Για να ενεργοποιήσουμε τη συμπίεση δεδομένων, αρκεί στο httpd.conf να προσθέσουμε το εξής:

SetOutputFilter DEFLATE

κι έπειτα επανεκκινούμε τον http daemon 

/usr/local/apache2/bin/httpd -k restart

για να ξεκινήσει να συμπιέζει τις σελίδες και το περιεχόμενό τους.

Εάν θέλουμε να συμπιέζουμε μονάχα συγκεκριμένα αρχεία, π.χ. τα html και τα txt, τότε η παραπάνω δήλωση μπορεί να γραφτεί ως εξής:
AddOutputFilterByType DEFLATE text/html text/plain text/xml

όπου με αυτόν τον τρόπο συμπιέζουμε μονάχα τα αρχεία απλού κειμένου με κατάληξη (txt, xml και html)του site μας. Στα logs θα πρέπει να δούμε κάτι τέτοιο:
[Wed Oct 05 14:51:41 2011] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 13309 to 2688 : URL /blog/index.php

Επιτάχυνση με «κασάρισμα»

Για να βελτιώσουμε την ταχύτητα ενός site στον web server, μπορούμε να αποθηκεύουμε προσωρινά το αποτέλεσμα του δυναμικού περιεχομένου (το οποίο παράγεται στον server και παράγεται ως στατικό περιεχόμενο). Εάν μέσα σε ένα μικρό διάστημα χρόνου η ίδια σελίδα ζητηθεί εκ νέου, τότε ο web server δεν θα στείλει το αίτημα ώστε να παραχθεί, αλλά θα το σερβίρει από την προσωρινή του μνήμη. 
Προσωπικά δημιουργώ έναν ξεχωριστό κατάλογο, κι αποθηκεύω εκεί τις σελίδες. Για να ενεργοποιήσουμε το caching, αρκούν οι παρακάτω δύο γραμμές:

CacheRoot "/usr/local/apache2/tmp/"
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1

στο βασικό αρχείο ρυθμίσεων του apache: /usr/local/apache2/conf/httpd.confκαι φυσικά να μην ξεχάσουμε να επανεκκινήσουμε τον web server μας.

Επαλήθευση μέσω Apache

Εάν θέλουμε να προσθέσουμε ένα βασικό “πέπλο ασφαλείας” σε έναν κατάλογο ή web site, μπορούμε να το κάνουμε μέσα από την βασική εγκατάσταση του Apache. Μην όμως παρανοήσετε αυτές τις γραμμές, για να υπάρχει πραγματική ασφάλεια σε ένα web site χρειάζονται πολύ περισσότερα από τις παρακάτω γραμμές. Εδώ απλά θα παρουσιάσουμε μια απλή κι εύκολη λύση.

Ο Apache web server μπορεί να “διαβάσει” απλά αρχεία κειμένου, στα οποία θα έχουμε προσθέσει χρήστες και κρυπτογραφημένα συνθηματικά κι έτσι να εξασφαλίσουμε ένα πρώτο επίπεδο ασφάλειας. 

Για αρχή προσθέτουμε τους χρήστες σε ένα αρχείο:

/usr/local/apache2/bin/htpasswd -c /www/web/passwords ebal

κι έτσι με αυτόν τον τρόπο προσθέτουμε τους χρήστες μας.

Τώρα θα πρέπει να τροποποιήσουμε κατάλληλα το αρχείο ρυθμίσεων του apache: httpd.conf ώστε να προσθέσουμε τις εξής γραμμές:
<Directory "/www/website"> 
# Auth Support

AuthType Basic
AuthName "My Web Site Authentication"
AuthUserFile /www/web/passwords
Require valid-user 
</Directory> 

και φυσικά δεν πρέπει να ξεχνάμε να επανεκκινήσουμε τον Apache μας.

/usr/local/apache2/bin/httpd -k graceful

Προστασία από επιθέσεις DoS και Brute με το mod_evasive

Ένας web server, λόγω την φύσης της δουλειάς που θέλουμε να κάνει, είναι προσβάσιμος από το διαδίκτυο. Θέλουμε να διαφημίζει το site μας. Άρα σημαίνει ότι είναι ορθάνοικτος σε επιθέσεις! Επομένως, θα πρέπει να προστατεύσουμε τον Apache που μόλις εγκαταστήσαμε. Σε αυτό το άρθρο δεν θα μπούμε σε αναλυτικές οδηγίες, απλά θα σας δώσουμε μερικές κατευθύνσεις:
Το module mod_evasive έχει μια πολύ απλή λογική. Μετράει όλα τα http request που γίνονται στον Apache που έχουμε εγκαταστήσει. Από κάποιο όριο και πάνω, μπλοκάρει τα νέα αιτήματα από μια συγκεκριμένη IP με σκοπό να προστατεύει στην υποδομή μας. Συνεργάζεται με αρκετά προγράμματα, έχει πολύ μικρό μέγεθος και είναι αρκετά ευέλικτο.
Η εγκατάστασή του γίνεται με το εξής τρόπο:

tar zxvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c

Με τις παραπάνω εντολές θα πρέπει να δείτε το mod_evasive module να έχει εγκατασταθεί στον κατάλογο

/usr/local/apache2/modules/

Χρειάζεται να επιβεβαιώσουμε ότι έχει μπει το συγκεκριμένο module στο αρχείο ρυθμίσεων του Apache, καθώς και να περάσουμε μερικές γραμμές για τη ρύθμιση του mod_evasive. Έτσι στο εξής αρχείο:
/usr/local/apache2/conf/httpd.conf

θα πρέπει να δούμε την εξής δήλωση (εάν όχι, την βάζουμε εμείς) 

LoadModule evasive20_module modules/mod_evasive20.so

ενώ το προκαθορισμένο σύνολο από παραμέτρους ρύθμισης είναι το εξής:

  DOSHashTableSize 3097
   DOSPageCount 2
   DOSSiteCount 50
   DOSPageInterval 1
   DOSSiteInterval 1
   DOSBlockingPeriod 10

Υπάρχουν ακόμα δύο μεταβλητές που θα πρέπει να δείτε λίγο καλύτερα

DOSWhitelistDOSBlacklist

Με τις οποίες μπορείτε να ανοίξετε ή να κλείσετε την πρόσβαση προς τον server σας για συγκεκριμένες IPs που γνωρίζεται.

PHP Hardening 

Ένας ακόμα τρόπος για να έχουμε ασφαλή web sites, είναι μέσω του suhosin [5], ενός πρόσθετου για την PHP. Το suhosin προστατεύει κάποια κομμάτια και περιοχές της PHP ώστε να μην μπορεί κάποιο κακογραμμένο διαδικτυακό πρόγραμμα να γίνει στόχος επίθεσης. Ο τρόπος εγκατάστασης του είναι πολύ απλός, αλλά πρέπει να γίνει πριν την παραμετροποίηση της PHP! Εάν έχετε ήδη κάνει την εγκατάσταση τότε θα πρέπει να καθαρίσετε πρώτα τον κατάλογο εργασίας από τα μεταγλωτισμένα αρχεία που έχουν ήδη δημιουργηθεί πριν εφαρμόσετε το suhosin.  Αυτή η διαδικασία καθαρισμού μπορεί να γίνει μετά από κάθε εγκατάσταση πηγαίου κώδικα – εάν έχουμε πρόβλημα χώρου ή πριν γίνει κάποια παραμετροποίηση εκ νέου:

make clean
make distclean

Και τώρα είμαστε έτοιμοι να εφαρμόσουμε το suhosin patch στον κατάλογο της PHP.

gunzip suhosin-patch-5.3.7-0.9.10.patch
cd php-5.3.8
patch -p -1 -i ../suhosin-patch-5.3.7-0.9.10.patch

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

./configure –-with-apxs2=/usr/local/apach2/bin/apxs

Δεν ξεχνάμε, μετά από κάθε αλλαγή ή τροποποίηση, πρέπει να κάνουμε επανεκκίνηση του Apache.

PHP eAccelerator

Θα ολοκληρώσουμε αυτό το άρθρο με την παρουσίαση του eAccelerator. Βασισμένο στο TurckMMCache, το eAccelerator προσπαθεί να βελτιώσει τον κώδικα και την ταχύτητα εκτέλεσης σελιδών PHP που φιλοξενούνται στον διακομιστή μας. Μεταγλωττίζει τμήματα κώδικα PHP και τα αποθηκεύει προσωρινά στην μνήμη του διακομιστή. Αυτό έχει ως αποτέλεσμα την επιτάχυνση εκτέλεσης κώδικα που έχει βρεθεί ήδη στην μνήμη (άρα δεν χρειάζεται να ξαναμεταγλωτιστεί).
Η εγκατάσταση είναι αρκετά απλή, καθώς κάνει χρήση της διαδικασίας εγκατάστασης επεκτάσεων της PHP. Οι εντολές είναι οι εξής: 

phpize
./configure
make
make install

και μετά την εγκατάσταση θα πρέπει να έχουν προστεθεί οι αντίστοιχες νέες γραμμές ρύθμισης στο τέλος του αρχείου php.ini. 
Μετά την επανεκκίνηση του Apache θα πρέπει στο php.ini να βλέπουμε να έχει προστεθεί κάτι σαν κι αυτό:

with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

Επίλογος

Ελπίζουμε το παρόν άρθρο να σας δώσει αρκετές από τις απαραίτητες πληροφορίες για να δοκιμάσετε μόνοι σας και να εγκαταστήσετε τον Apache web server. Δεν είναι τυχαία ο νούμερο ένα παγκοσμίως σε εγκαταστάσεις Το γεγονός ότι είναι ανοικτού κώδικα προσθέτει στην ασφάλειά του κι επίσης μέσω των modules, μπορεί να γίνει εξαιρετικά ευέλικτος και δυνατός. Μάλιστα, η πληθώρα των modules τον κάνει αδιαμφισβήτητα τον πληρέστερο web server που υπάρχει αυτή την στιγμή. Επιπλέον, υπάρχει πολύ τεκμηρίωση στο διαδίκτυο: Μπορείτε να μάθετε από το πως να φτιάχνετε δικά σας πιστοποιητικά ασφαλείας μέχρι να είστε σε θέση να χειρίζεστε μερικές από τις πιο δημοφιλείς διαδικτυακές εφαρμογές. Αξίζει πραγματικά - έστω κι ως άσκηση - να εγκαταστήσετε τον Apache από πηγαίο κώδικα. 

Χρήσιμες εντολές

 

  • Αναγκάζοντας τον apache να διαβάσει το νέο αρχείο ρυθμίσεων
    /usr/local/apache2/bin/httpd -k graceful
  • Δημιουργία test php σελίδας: index.php
    <?php phpinfo(); ?>

 

 

 

 

Φόρουμ
Δώσε αστέρια!