Hits : 5510
apache :: a very simple tutorial
Apache
Το πρόγραμμα Apache Httpd Server είναι μία προσπάθεια να αναπτυχθεί και να υποστηριχθεί ένα ανοιχτού-κώδικα διακομιστής πρωτοκόλλου HTTP για σύγχρονα λειτουργικά συστήματα.
(web server)
The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.
The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
Simple Installation
Μία πολύ απλή εγκατάσταση μπορεί να γίνει με τις παρακάτω εντολές:
$ wget -c http://apache.otenet.gr/dist/httpd/httpd-2.0.63.tar.bz2 $ tar jxvf httpd-2.0.63.tar.bz2 $ cd httpd-2.0.63 $ ./configure $ make $ make install
Έτσι έχουμε καταφέρει να εγκαταστήσουμε έναν web server.
Η εγκατάσταση εξ'ορισμού (όπως παραπάνω) ορίζει την διαδρομή του httpd daemon να είναι η εξής:
/usr/local/apache2
Άρα για να δούμε ότι όλα παίζουν σωστά, ως διαχειριστής πληκτρολογούμε την παρακάτω εντολή :
# /usr/local/apache2/bin/httpd -k start
Ανοίγουμε έναν http client (web browser --> firefox) και πληκτρολογούμε το εξής:
http://localhost
Installation
Με το παραπάνω τμήμα κώδικα μπορεί κανείς εύκολα και γρήγορα να εγκαταστήσει έναν web server.
Τις περισσότερες φορές όμως θέλουμε να εγκαταστήσουμε έναν web server που να έχει την δυνατότητα να
φιλοξενεί δυναμικά sites π.χ. γραμμένα σε php. Παρακάτω ακολουθεί ένας τυπικός οδηγός.
Έστω λοιπόν ότι θέλουμε να έχουμε :
- php
- mod_rewrite
- ssl
- php : Για να μπορούμε να δημιουργήσουμε ένα php site
- mod_rewrite : Γιατί αρκετά php projects χρησιμοποιούν αυτή την δυνατότητα
- ssl : Για να μπορούμε να χρησιμοποιήσουμε https πρωτόκολλο για ασφαλής συναλλαγές.
ΠΡΟΣΟΧΗ:
Το παρακάτω παράδειγμα προϋποθέτει την εγκατάσταση του openssl πακέτου.
Τυπική εγκατάσταση υπάρχει στο τέλος της σελίδας.
Για να μην ξαναγράψω την παραπάνω διαδικασία, απλά πραγματοποιήστε την αντικατάσταση της γραμμής:
$ ./configure
με την γραμμή:
$ ./configure --enable-modules=so --enable-ssl --enable-rewrite --with-ssl=/usr/local/ssl/ --enable-mods-shared='rewrite'
Φυσικά με την εντολή:
./configure --help
Μπορεί να δει κανείς το πλήθος των επιλογών που μπορεί να ορίσει.
Check
Αφού ολοκληρώσουμε την εγκατάσταση είμαστε έτοιμοι να δούμε ότι όλα είναι δουλεύουν σωστα.
Για να γίνει αυτό χρειάζεται για αρχή να ελέγξουμε ότι το αρχείο ρυθμίσεων είναι "συντακτικά" σωστό.
Αυτό γίνεται με την παρακάτω εντολή ως διαχειριστής :
Syntax Check
# /usr/local/apache2/bin/httpd -t Syntax OK
Για να δούμε μερικές πληροφορίες όπως π.χ. την έκδοση του προγράμματος :
# /usr/local/apache2/bin/httpd -V Server version: Apache/2.0.61 Server built: Nov 29 2007 11:33:07 Server's Module Magic Number: 20020903:12 Server loaded: APR 0.9.16, APR-UTIL 0.9.15 Compiled using: APR 0.9.16, APR-UTIL 0.9.15 Architecture: 32-bit Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT="/usr/local/apache2" -D SUEXEC_BIN="/usr/local/apache2/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
Για να πραγματοποιήσουμε τυπικό έλεγχο της σωστής λειτουργίας της υπηρεσίας, που μόλις εγκαταστήσαμε,
χρειάζεται να εκκινήσουμε την υπηρεσία με την παρακάτω εντολή:
# /usr/local/apache2/bin/httpd -k start
Και στην συνέχεια στον firefox πληκτρολούμε την εξής ηλεκτρονική διεύθυνση:
Formatter "highlight/html" not found
Το οποίο θα μας επιστρέψει εάν όλα είναι καλά το εξής:
It works!
Ένα πολύ τυπικό παράδειγμα του αρχείου ρυθμίσεων μπορείτε να βρείτε εδώ:
file:httpd.conf.pdf
Παράρτημα
php
PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.
$ wget -c http://gr2.php.net/distributions/php-5.2.5.tar.bz2 $ tar jxvf php-5.2.5.tar.bz2 $ cd php-5.2.5 $ ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql-sock=/tmp/mysql.sock \ --with-openssl=/usr/local/ssl $ make $ make install
openssl
Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols
Τυπική εγκατάσταση:
$ wget -c http://www.openssl.org/source/openssl-0.9.8g.tar.gz $ tar zxvf openssl-0.9.8g.tar.gz $ cd openssl-0.9.8g/ $ ./config $ make $ make test $ make install $ ls -ls /usr/local/ssl
Benchmark
$ /usr/local/apache2/bin/ab -n 1000 http://localhost/