Servers-Apache 2.0

Αυτή η ενότητα περιέχει σημειώσεις και συμβουλές ειδικά για εγκαταστάσεις της PHP με τον Apache 2.0, τόσο για Unix όσο και για Windows εκδόσεις.

Προειδοποίηση

Μην χρησιμοποιείτε τον Apache 2.0 και την PHP σε ένα production περιβάλλον ούτε σε Unix όυτε σε Windows.

Προτείνεται έντονα να ρίξετε μια ματιά στο Apache Documentation για να έχετε μια βασική κατανόηση του Apache 2.0 Server.

Σημειώσεις συμβατότητας της PHP και του Apache 2.0

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

Αυτές οι εκδόσεις της PHP είναι συμβατές με τον Apache 2.0.40 και νεότερο.

Σημείωση: Η υποστήριξη του Apache 2.0 για SAPI άρχισε από την PHP 4.2.0. Η PHP 4.2.3 δουλεύει με τον Apache 2.0.39, μην χρησιμοποιήσετε άλλη έκδοση του Apache με την PHP 4.2.3. Ωστόσο, η προτεινόμενη εγκατάσταση είναι με την PHP 4.3.0 ή νεότερη με την πιο πρόσφατη έκδοση του Apache2.

Όλες οι εκδόσεις της PHP που αναφέρθηκαν θα δουλεύουν με τον Apache 1.3.x.

PHP και Apache 2 στο Linux

Κάντε download την πιο πρόσφατε έκδοση του Apache 2.0 και μια κατάλληλη έκδοση της PHP από τις τοποθεσίες που αναφέρθηκαν πιο πριν. Αυτός ο γρήγορος οδηγός καλύπτει όλα τα βασικά για να αρχίσετε με τον Apache 2.0 και την PHP. Για περισσότερες πληροφορίες διαβάστε το Apache Documentation. Οι αριθμοί των εκδόσεων έχουν παραληφθεί εδώ, ώστε οι οδηγίες να μην είναι αναληθείς. Θα χρειαστεί να αντικαταστήσετε τα 'NN' με τις σωστές τιμές από τα αρχεία σας.

Παράδειγμα 3-6. Οδηγίες Εγκατάστασης (Έκδοση Apache 2 Shared Module)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Now you have Apache 2.0.NN available under /usr/local/apache2,
    configured with loadable module support and the standard MPM prefork.
    To test the installation use your normal procedure for starting
    the Apache server, e.g.:
    /usr/local/apache2/bin/apachectl start
    and stop the server to go on with the configuration for PHP:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini

    Edit your php.ini file to set PHP options. If
    you prefer this file in another location, use
    --with-config-file-path=/path in step 10.

14. Edit your httpd.conf file and check that these lines are
    present:
  
   LoadModule php4_module modules/libphp4.so
   AddType application/x-httpd-php .php

  You can choose any extension you wish here. .php is simply the one
  we suggest.
 
  The path on the right hand side of the LoadModule statement must point
  to the path of the PHP module on your system. The above statement is
  correct for the steps shown above.

15. Use your normal procedure for starting the Apache server, e.g.:
   /usr/local/apache2/bin/apachectl start

Ακολουθώντας τα βήματα παραπάνω θα έχετε ένα Apache 2.0 που θα τρέχει με υποστήριξη για PHP όπως το SAPI module. Φυσικά υπάρχουν πολύ περισσότερες επιλογές ρύθμισης διαθέσιμες τόσο για τον Apache όσο και για την PHP. Για περισσότερες πληροφορίες χρησιμοποιήστε το ./configure --help στο ανάλογο source tree. Σε περίπτωση που θέλετε να κάνετε build μια multithreaded (πολυνηματική) έκδοση του Apache 2.0 πρέπει να κάνετε overwrite το κοινό MPM-Module prefork με ένα από τα worker ή perchild. Για να το κάνετε αυτό, προσθέστε στην configure γραμμή σας στο βήμα 6, ένα από τα --with-mpm=worker ή --with-mpm=perchild. Λάβετε υπόψιν τις συνέπειες και κατανοήστε το τι κάνετε. Για περισσότερες πληροφορίες διαβάστε το Apache documentation σχετικά με τα MPM-Modules.

Σημείωση: Για να κάνετε build μια multithreaded έκδοση του Apache, το σύστημα σας πρέπει να υποστηρίζει threads (νήματα). Αυτό υποδηλώνει να κάνετε build την PHP με το πειραματικό Zend Thread Safety (ZTS). Έτσι, δεν θα είναι όλες οι επεκτάσεις διαθέσιμες. Η προτεινόμενη εγκατάσταση είναι να κάνετε build τον Apache με το κοινό prefork MPM-Module.

PHP και Apache 2.0 στα Windows

Λάβετε υπόψιν το να διαβάσετε τις Σημειώσεις ειδικά για Windows για τον Apache 2.0.

Προειδοποίηση

Ο Apache 2.0 σχεδιάστηκε για να τρέχει σε Windows NT 4.0, Windows 2000 ή Windows XP. Αυτή τη στιγμή, η υποστήριξη για Windows 9x είναι ατελής. Ο Apache 2.0 δεν αναμένεται να δουλεύει σε αυτά τα συστήματα τώρα.

Κάντε download την πιο πρόσφατε έκδοση του Apache 2.0 και μια κατάλληλη έκδοση της PHP από τις τοποθεσίες που αναφέρθηκαν πιο πάνω. Ακολουθήστε τα Βήματα Χειροκίνητης Εγκατάστασης και ελάτε πίσω για να προχωρήσετε στην συνεργασία της PHP και του Apache.

Υπάρχουν δύο τρόποι να ρυθμίσετε την PHP να δουλεύει με τον Apache 2.0 στα Windows. Ο ένας είναι να χρησιμοποιήσετε το CGI binary, ο άλλος είναι να χρησιμοποιήσετε το Apache module DLL. Σε κάθε περίπτωση πρέπει να σταματήσετε τον Apache server και να μορφοποιήσετε το httpd.conf σας για να ρυθμίσετε τον Apache ώστε να δουλεύει με την PHP.

Πρέπει να εισάγετε αυτές τις τρεις γραμμές στο httpd.conf αρχείο ρυθμίσεων του Apache σας για να ρυθμίσετε το CGI binary:

Παράδειγμα 3-7. PHP και Apache 2.0 σαν CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Αν θέλετε να χρησιμοποιήσετε την PHP σαν ένα module στον Apache 2.0, μετακινήσετε το php4ts.dll στο winnt/system32 (για τα Windows NT/2000) ή στο windows/system32 (for Windows XP), κάνοντας overwriting τυχόν παλαιότερο αρχείο. Πρέπει να εισάγετε αυτές τις δυο γραμμές στο αρχείο ρυθμίσεων httpd.conf του Apache σας για να ρυθμίσετε το PHP-Module για τον Apache 2.0:

Παράδειγμα 3-8. PHP και Apache 2.0 σαν Module

LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

Σημείωση: Θυμηθείτε να αντικαταστήσετε το c:/php/ με το πραγματικό σας path στο PHP στα παραπάνω παραδείγματα. Προσέξτε να χρησιμοποιήσετε το php4apache2.dll στο LoadModule directive σας και όχι το php4apche.dll. Το τελευταίο έχει σχεδιαστεί για να τρέχει με τον Apache 1.3.x.

Προειδοποίηση

Μην αναγκατεύετε τις εγκαταστάσεις σας με αρχεία dll από διαφορετικές εκδόσεις PHP . Η μόνη σας επιλογή είναι να χρησιμοποιήσετε τα dll και τις επετκάσεις που έρχονται με την έκδοση της PHP που έχετε κάνει download.