View source for apache

Hits :  **{{hits}}**

{{anchor href="top"}}

== apache :: a very simple tutorial ==

{{ToC from="h2" to="h3"}}

=== Apache ===

http://httpd.apache.org/

Το πρόγραμμα 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.

((#top))
-----------

=== Simple Installation ===

Μία πολύ απλή εγκατάσταση μπορεί να γίνει με τις παρακάτω εντολές:

%%(code)
$ 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**

¶ρα για να δούμε ότι όλα παίζουν σωστά, ως διαχειριστής πληκτρολογούμε την παρακάτω εντολή :

%%(code)
# /usr/local/apache2/bin/httpd -k start
%%

Ανοίγουμε έναν http client (web browser --> firefox) και πληκτρολογούμε το εξής:

%%(html5)
http://localhost
%%

((#top))
-----------

=== Installation ===

Με το παραπάνω τμήμα κώδικα μπορεί κανείς εύκολα και γρήγορα να εγκαταστήσει έναν web server.
Τις περισσότερες φορές όμως θέλουμε να εγκαταστήσουμε έναν web server που να έχει την δυνατότητα να 
φιλοξενεί δυναμικά sites π.χ. γραμμένα σε php. Παρακάτω ακολουθεί ένας τυπικός οδηγός.

Έστω λοιπόν ότι θέλουμε να έχουμε :
  * php
  * mod_rewrite
  * ssl

  * php : Για να μπορούμε να δημιουργήσουμε ένα php site
  * mod_rewrite : Γιατί αρκετά php projects χρησιμοποιούν αυτή την δυνατότητα
  * ssl : Για να μπορούμε να χρησιμοποιήσουμε https πρωτόκολλο για ασφαλής συναλλαγές.

**ΠΡΟΣΟΧΗ:** 
Το παρακάτω παράδειγμα προϋποθέτει την εγκατάσταση του openssl πακέτου. 
Τυπική εγκατάσταση υπάρχει στο τέλος της σελίδας.

Για να μην ξαναγράψω την παραπάνω διαδικασία, απλά πραγματοποιήστε την αντικατάσταση της γραμμής:

%%(code)
$ ./configure
%%

με την γραμμή: 

%%(code)
$ ./configure --enable-modules=so --enable-ssl --enable-rewrite --with-ssl=/usr/local/ssl/ --enable-mods-shared='rewrite'
%%

Φυσικά με την εντολή:

%%(code)
./configure --help
%%

Μπορεί να δει κανείς το πλήθος των επιλογών που μπορεί να ορίσει.

((#top))
-----------

=== Check ===

Αφού ολοκληρώσουμε την εγκατάσταση είμαστε έτοιμοι να δούμε ότι όλα είναι δουλεύουν σωστα.
Για να γίνει αυτό χρειάζεται για αρχή να ελέγξουμε ότι το αρχείο ρυθμίσεων είναι "συντακτικά" σωστό.
Αυτό γίνεται με την παρακάτω εντολή ως διαχειριστής : 

Syntax Check

%%(code)
# /usr/local/apache2/bin/httpd -t
Syntax OK
%%

Για να δούμε μερικές πληροφορίες όπως π.χ. την έκδοση του προγράμματος : 

%%(html5)
# /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"

%%

Για να πραγματοποιήσουμε τυπικό έλεγχο της σωστής λειτουργίας της υπηρεσίας, που μόλις εγκαταστήσαμε, 
χρειάζεται να εκκινήσουμε την υπηρεσία με την παρακάτω εντολή:

%%(code)
# /usr/local/apache2/bin/httpd -k start
%%

Και στην συνέχεια στον firefox πληκτρολούμε την εξής ηλεκτρονική διεύθυνση:

%%(html)
http://localhost
%%

Το οποίο θα μας επιστρέψει εάν όλα είναι καλά το εξής:

** It works! **

Ένα πολύ τυπικό παράδειγμα του αρχείου ρυθμίσεων μπορείτε να βρείτε εδώ:
file:httpd.conf.pdf

((#top))
-----------

=== Παράρτημα ===

==== php ====

https://php.net/

PHP  is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. 

%%(code)
$ 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
%%

((#top))
-----------

==== openssl ====

http://www.openssl.org

Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols 

Τυπική εγκατάσταση: 

%%(code)
$ 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
%%

((#top))
-----------

==== Benchmark  ====

%%(code)
$ /usr/local/apache2/bin/ab -n 1000 http://localhost/
%%

((#top))
-----------