Εγκατάσταση σε συστήματα Windows

Αυτή η ενότητα αναφέρεται σε Windows 95/98/Me και Windows NT/2000/XP. Μην περιμένετε την PHP να δουλεύει σε 16 bit πλατφόρμες όπως Windows 3.1. Κάποτε προτιμούμε να αναφέρουμε τις υποστηριζόμενες Windows πλατφόρμες ως Win32.

Υπάρχουν δυο κύριοι τρόποι να εγκατασταθεί η PHP στα Windows: είτε manually είτε χρησιμοποιώντας τον InstallShield installer.

Αν έχετε το Microsoft Visual Studio, μπορείτε επίσης να κάνετε build την PHP από το original source code.

Όταν έχετε εγκαταστήσει την PHP πάνω στο Windows σύστημα σας, μπορεί επίσης να θέλετε να φορτώσετε διάφορες επεκτάσεις για επιπρόσθετη λειτουργικότητα.

Windows InstallShield

Ο Windows PHP installer που είναι διαθέσιμος από την σελίδα των downloads στο http://www.php.net/, εγκαθιστά την CGI έκδοσητης PHP και, για τον IIS, PWS, and Xitami, ρυθμίζει επίσης τον web server. Επίσης σημειώστε, πως ενώ ο InstallShield installer είναι ένας εύκολος τρόπος για να κάνετε την PHP να δουλέψει, περιορίζεται σε πολλούς τομείς, όπως για παράδειγμα η αυτόματη ρύθμιση των extensions δεν υποστηρίζεται.

Εγκαταστήστε τον επιλεγμένο σας HTTP server στο σύστημα σας και σιγουρευτείτε ότι δουλεύει.

Τρέξτε τον εκτελέσιμο installer και ακολουθήστε τις οδηγίες που δίνονται από τον installation wizard (οδηγός εγκατάστασης). Υποστηρίζονται δύο τύποι εγκατάστασης - ο standard (συνηθισμένος), ο οποίος δίνει λογικές και συνετές προκαθορισμένες τιμές σε όλες τις ρυθμίσεις που μπορεί, και ο advanced (προχωρημένος), ο οποίος ζητάει τις τιμές καθώς η διαδικασία προχωράει.

Ο οδηγός εγκατάστασης μαζεύει αρκετές πληροφορίες για να ρυθμίσει τον web server ώστε να χρησιμοποιεί την PHP. Για τον IIS και επίσης για τον PWS στα NT Workstation, μια λίστα με όλα τα nodes στον server με τα script map settings εμφανίζεται, και μπορείτε να επιλέξετε αυτούς τους κόμβους που μπορείτε να προσθέσετε τα PHP script mappings.

Όταν η εγκατάσταση ολοκληρωθεί, ο installer θα σας ενημερώσει για το ότι πρέπει να επανεκκινήσετε το σύστημα σας, να επανεκκινήσει τον server, ή απλά να αρχίσετε να χρησιμοποιείτε την PHP.

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

Προσοχή, αυτός ο τρόπος ρύθμισης της PHP δεν είναι ασφαλής. Αν θα θέλατε ένα ασφαλή τρόπο ρύθμισης της PHP, καλύτερα να επιλέξετε να κάνετε τις ρυθμίσεις με το χέρι και να ορίσετε κάθε τιμή προσεκτικά. Αυτός ο τρόπος μπορεί να ρυθμίζει αυτόματα μια εγκατάσταση της PHP που δουλεύει, αλλά δεν είναι προορισμένος για χρήση σε online servers.

Βήματα για Manual Installation

Αυτός ο οδηγός εγκατάστασης θα σας βοηθήσει να εγκαταστήσετε και να ρυθμίσετε manually την PHP στον Windows webserver σας. Χρειάζεστε να κάνετε download το zip binary distribution (συμπιεσμένο αρχείο της έκδοσης) από την σελίδα downloads στο http://www.php.net/. Η πρωτότυπη έκδοση αυτού του οδηγού έγινε compile από τον Bob Silva, και μπορεί να βρεθεί στο http://www.umesd.k12.or.us/php/win32install.html.

Αυτός ο οδηγός δίνει υποστήριξη για χειροκίνητη εγκατάσταση για:

Η PHP 4 έρχεται σε δύο γεύσεις για Windows - ένα CGI executable (php.exe), και διάφορα SAPI modules (για παράδειγμα: php4isapi.dll). Η τελευταία μορφή είναι καινούρια στην PHP 4, και δίνει σημαντικά βελτιωμένη απόδοση και κάποια νέα λειτουργικότητα.

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

Τα SAPI modules έχουν βελτιωθεί σημαντικά στην έκδοση 4.1, αλλά, μπορεί να συναντήσετε κάποια server errors ή άλλα server modules όπως το ASP να αποτυγχάνουν, σε παλαιότερα συστήματα.

Αν επιλέξετε ένα από τα SAPI modules και χρησιμοποιείτε Windows 95, σιγουρευτείτε να κάνετε download το DCOM update από τις σελίδες του Microsoft DCOM. Για το ISAPI module, ένας ISAPI 4.0 συμβατός Web server χρειάζεται (δοκιμασμένο στους IIS 4.0, PWS 4.0 και IIS 5.0). Ο IIS 3.0 ΔΕΝ υποστηρίζεται. Θα πρέπει να κάνετε download και να εγκαταστήσετε το Windows NT 4.0 Option Pack με τον IIS 4.0 αν θέλετε native PHP υποστήριξη.

Τα παρακάτω βήματα πρέπει να εκτελούνται σε όλες τις εγκαταστάσεις πριν από τις οδηγίες που είναι συγκεκριμένες για τον server.

Κάνοντας Build από το source

Πριν αρχίσετε, αξίζει να απαντήσετε στην ερώτηση: "Γιατί το build στα Windows είναι τόσο δύσκολο?" Δύο απαντήσεις έρχονται στο μυαλό:

  1. Τα Windows δεν έχουν (ακόμη) απολαύσει μια μεγάλη κοινότητα από developers οι οποίοι είναι πρόθυμοι να μοιράσουν ελεύθερα τον κώδικα τους. Άμεσο αποτέλεσμα αυτού, είναι η έλλειψη της απαραίτητης επένδυσης σε υποδομή που απαιτείται για την υποστήριξη τέτοιας ανάπτυξης προγραμμάτων. Γενικά, ό,τι είναι διαθέσιμο, έγινε δυνατό μέσω μεταφοράς των απαραίτητων εργαλείων από το Unix. Μην εκπλήσσεστε όταν κάποια από αυτή την κληρονομιά εμφανίζεται από καιρούς σε καιρούς.

  2. Αρκετές από τις οδηγίες που ακολουθούν είναι της ιδέας του είδους "set and forget" (ρύθμισε το και ξέχασέ το). Έτσι καθήστε πίσω και δοκιμάστε τις οδηγίες παρακάτω όσο πιο πιστά μπορείτε.

Προετοιμασίες

Πριν αρχίσετε, έχετε αρκετά να κάνετε download...

  • Για αρχή, πάρτε το Cygwin toolkit από το πιο κοντινό σας cygwin mirror site. Αυτό θα σας προμηθεύσει με τα πιο δημοφιλή εργαλεία GNU που χρησιμοποιούνται από την διαδικασία του build.

  • Κάντε download τα υπόλοιπα build εραλεία που χρειάζεστε από το PHP site στο http://www.php.net/extra/win32build.zip.

  • Πάρτε το source code για το DNS name resolver που χρησιμοποιεί η PHP στο http://www.php.net/extra/bindlib_w32.zip. Αυτό είναι αντικατάσταστο για την βιβλιοθήκη resolv.lib που συμπεριλαμβάνεται στο win32build.zip.

  • Αν δεν έχετε ένα εργαλείο για unzip, θα χρειαστείτε ένα. Μια δωρεάν έκδοση είναι διαθέσιμη από το InfoZip.

  • Αν σκοπεύετε να κάνετε compile την PHP σαν ένα static Apache module θα χρειαστείτε επίσης τα Apache sources της έκδοσης του Apache σας.

Τέλος, θα χρειαστείτε το source της ίδιας της PHP 4. Μπορείτε να πάρετε την τελευταία development έκδοση χρησιμοποιώντας anonymous CVS. Αν πάρετε ένα snapshot ή ένα source tarball, δεν χρειάζεται απλά να το κάνετε untar και ungzip, αλλά θα πρέπει να μετατρέψετε τα απλά linefeeds σε crlf μέσα στα αρχεία *.dsp και *.dsw πριν η Microsoft Visual C++ κάνει οτιδήποτε με αυτά.

Σημείωση: Τοποθετήστε τους καταλόγους Zend και TSRM μέσα στον κατάλογο php4 ώστε τα projects να βρεθούν στο διάστημα της build διαδικασίας.

Βάζοντας τα όλα μαζί

  • Ακολουθήστε τις οδηγίες για να εγκαταστήσετε το εργαλείο συμπίεσης της επιλογής σας.

  • Εκτελέστε το setup.exe και ακολουθήστε τις οδηγίες εγκατάστασης. Αν επιθυμείτε να το εγκαταστήσετε σε ένα κατάλογο εκτός από τον c:\cygnus, σιγουρευτείτε πως η διαδικασία του build θα το ξέρει, ορίζοντας την Cygwin environment μεταβλητή. Στα Windows 95/98 ο ορισμός μιας environment μεταβλητής μπορεί να γίνει τοποθετώντας μια γραμμή μέσα στο autoexec.bat αρχείο σας. Στα Windows NT, πηγαίνετε στο My Computer => Control Panel => System και επιλέξτε το environment tab.

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

Δημιουργήστε ένα προσωρινό κατάλογο για να χρησιμοποιήσει το Cygwin, αλλιώς πολλές εντολές (ειδικά το bison) θα αποτύχουν. Στα Windows 95/98, mkdir C:\TMP. Στα Windows NT, mkdir %SystemDrive%\tmp.

  • Φτιάξτε ένα κατάλογο και αποσυμπιέστε το win32build.zip μέσα σε αυτή.

  • Ανοίξτε το Microsoft Visual C++, και από το μενού επιλέξτε Tools => Options. Σε αυτό το dialog (παράθυρο διαλόγου), επιλέξτε το directories tab. Ακολούθως αλλάξτε το dropdown σε Executables, Includes, και Library files, και σιγουρευτείτε πως τα cygwin\bin, win32build\include, και win32build\lib είναι σε κάθε λίστα, αντίστοιχα. (Για να προσθέσετε μια καταχώρηση, επιλέξτε μια άδεια γραμμή στο τέλος της λίστας και αρχίστε να γράφετε). Τυπικές καταχωρήσεις θα είναι ως εξής:

    • c:\cygnus\bin

    • c:\php-win32build\include

    • c:\php-win32build\lib

    Πατήστε OK, και κλείστε την Visual C++.

  • Δημιουργήστε ακόμη ένα κατάλογο και αποσυμπιέστε το bindlib_w32.zip μέσα. Αποφασίστε αν θέλετε να έχετε debug symbols διαθέσιμα (bindlib - Win32 Debug) ή όχι (bindlib - Win32 Release). Κάντε build το ανάλογο σετ ρυθμίσεων:

    • Για χρήστες GUI, ανοίξτε το VC++, και τότε επιλέξτε File => Open Workspace και επιλέξτε bindlib. Τότε επιλέξτε Build=>Set Active Configuration και επιλέξτε την επιθυμητό σετ ρυθμίσεων. Τέλος, επιλέξτε Build=>Rebuild All.

    • Για χρήστες του command line, σιγουρευτείτε πως είτε έχετε ορίσει τις C++ environment μεταβλητές, είτε έχετε τρέξει το vcvars.bat, και τότε εκτελέσατε ένα από τα ακόλουθα:

      • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

      • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

    • Σε αυτό το σημείο, θα πρέπει να έχετε ένα χρησιμοποιήσιμο resolv.lib σε ένα από τους Debug ή Release υποκαταλόγους. Αντιγράψτε αυτό το αρχείο μέσα στον κατάλογο win32build\lib πάνω από το αρχείο με το ίδιο όνομα που θα βρεθεί εκεί.

Κάνοντας Compile

Ο καλύτερος τρόπος να ξεκινήσετε είναι να κάνετε build την standalone/CGI έκδοση.

  • Για χρήστες GUI, ξεκινήστε το VC++, και επιλέξτε File => Open Workspace και επιλέξτε php4ts. Τότε επιλέξτε Build=>Set Active Configuration και επιλέξτε το επιθυμητό σετ ρυθμίσεων. Τέλος, επιλέξτε Build=>Rebuild All.

  • Για χρήστες του command line, σιγουρευτείτε πως είτε έχετε ορίσει τις C++ environment μεταβλητές είτε έχετε τρέξει το vcvars.bat, και τότε εκτελέσατε ένα από τα ακόλουθα:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • Σε αυτό το σημείο, θα πρέπει να έχετε ένα χρησιμοποιήσιμο php.exe είτε στον υποκατάλογο Debug_TS είτε στον Release_TS.

Επαναλάβετε τα παραπάνω βήματα με το php4isapi.dsp (το οποίο μπορεί να βρεθεί στο sapi\isapi) για να κάνετε build των απαραίτητο κώδικα ώστε να ενσωματωθεί η PHP στον Microsoft IIS.

Είναι δυνατόν να γίνουν μικρές προσαρμογές στη διαδικασία του build αλλάζοντας το αρχείο main/config.win32.h.in.

Εγκατάσταση των Windows επεκτάσεων

Μετά την εγκατάσταση της PHP και ενός webserver στα Windows, πιθανόν να χρειαστεί να εγκαταστήσετε κάποιες επεκτάσεις για πρόσθετη λειτουργικότητα. Ο ακόλουθος πίνακας περιγράφει κάποιες από της διαθέσιμες επεκτάσεις. Μπορείτε να επιλέξετε ποιες θέλετε να φορτώσετε όταν ξεκινά η PHP βγάζοντας από σχόλια τις γραμμές: 'extension=php_*.dll' στο php.ini. Μπορείτε επίσης να φορτώσετε δυναμικά ένα module στα script σας χρησιμοποιώντας τη συνάρτηση dl().

Τα DLL για τις επεκτάσεις της PHP έχουν πρόθεμα 'php_' στην PHP 4 (και 'php3_' στη PHP 3). Αυτό αποτρέπει σύγχιση μεταξύ των επεκτάσεων της PHP και των βιβλιοθηκών υποστήριξης τους.

Σημείωση: Στην PHP 4.0.6, η υποστήριξη για τα BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX και XML είναι ενσωματωμένη. Δεν χρειάζεται να φορτώσετε κάποιες πρόσθετες επεκτάσεις για να χρησιμοποιήσετε αυτές τις συναρτήσεις. Δείτε το αρχείο README.txt της διανομής σας ή το install.txt για ένα κατάλογο των ενσωματωμένων modules.

Σημείωση: Μερικές από αυτές τις επεκτάσεις χρειάζονται επιπλέον DLL για να δουλέψουν. Μερικές από αυτές μπορούν να βρεθούν μέσα στο πακέτο διανομής, στον κατάλογο 'dlls' αλλά κάποιες, όπως για παράδειγμα η Oracle (php_oci8.dll) χρειάζονται DLL τα οποία δεν είναι συσκευασμένη με το πακέτο διανομής.

Αντιγράψτε τα συσκευασμένα DLL από τον κατάλογο 'DLLs' στο Windows PATH, ασφαλή μέρη είναι:

c:\windows\system για τα Windows 9x/Me
c:\winnt\system32 για τα Windows NT/2000
c:\windows\system32 για τα Windows XP

Αν τα έχετε ήδη εγκατεστημένα στο σύστημα σας, κάντε τα overwrite μόνο όταν κάτι δεν δουλεύει σωστά (πριν να τα κάνετε overwite, καλή ιδέα είναι να κρατήσετε ένα αντίγραφο τους, ή να τα μετακινήσετε σε κάποιο άλλο κατάλογο - μήπως και πάει κάτι στραβά).

Πίνακας 3-1. Επεκτάσεις της PHP

ΕπέκτασηΠεριγραφήΣημειώσεις
php_bz2.dllbzip2: Συναρτήσεις συμπίεσηςΚαμία
php_calendar.dllCalendar: Συναρτήσεις μετατροπής ημερολογίουΕνσωματωμένες από τη PHP 4.0.3
php_cpdf.dllClibPDF συναρτήσειςΚαμία
php_crack.dllCrack συναρτήσειςΚαμία
php3_crypt.dllCrypt συναρτήσειςάγνωστο
php_ctype.dllctype-οικογένειας συναρτήσειςΚαμία
php_curl.dllCURL, Client URL συναρτήσεις βιβλιοθήκηςΑπαιτεί: libeay32.dll, ssleay32.dll (συσκευασμένα)
php_cybercash.dllCybercash συναρτήσεις πληρωμής Καμία
php_db.dllDBM συναρτήσειςΞεπερασμένες. Αντί αυτών, χρησιμοποιήστε τις DBA (php_dba.dll)
php_dba.dllDBA: DataBase (dbm-είδους) Abstraction layer (αφαιρετικού επιπέδου) συναρτήσειςΚαμία
php_dbase.dlldBase συναρτήσειςΚαμία
php3_dbm.dllBerkeley DB2 βιβλιοθήκηάγνωστο
php_domxml.dllDOM XML συναρτήσειςΑπαιτεί: libxml2.dll (συσκευασμένο)
php_dotnet.dll.NET συναρήσειςΚαμία
php_exif.dllRead EXIF: Ανάγνωση JPEG headers (επικεφαλίδες)Καμία
php_fbsql.dllFrontBase συναρτήσειςΚαμία
php_fdf.dllFDF: Forms Data Format συναρτήσειςΑπαιτεί: fdftk.dll (συσκευασμένο)
php_filepro.dllfilePro συναρτήσειςΠρόσβαση Read-only (Μόνο-ανάγνωση)
php_ftp.dllFTP συναρτήσειςΕνσωματωμένες από τη PHP 4.0.3
php_gd.dllGD: Συναρτήσεις βιβλιοθήκης εικόνων GDΚαμία
php_gettext.dllGettext συναρτήσειςΑπαιτεί: gnu_gettext.dll (συσκευασμένο)
php_hyperwave.dllHyperWave συναρτήσειςΚαμία
php_iconv.dllICONV: Μετατροπή charactersetΑπαιτεί: iconv-1.3.dll (συσκευασμένο)
php_ifx.dllInformix συναρτήσειςΑπαιτεί: Βιβλιοθήκες Informix
php_iisfunc.dllIIS συναρτήσεις διαχείρησηςΚαμία
php_imap.dllIMAP POP3 και NNTP συναρτήσεις PHP 3: php3_imap4r1.dll
php_ingres.dllIngres II συναρτήσειςΑπαιτεί: Βιβλιοθήκες Ingres II
php_interbase.dllInterBase συναρτήσειςΑπαιτεί: gds32.dll (συσκευασμένο)
php_java.dllJava επέκτασηΑπαιτεί: jvm.dll (συσκευασμένο)
php_ldap.dllLDAP συναρτήσειςΑπαιτεί: libsasl.dll (συσκευασμένο)
php_mhash.dllMhash συναρτήσειςNone
php_ming.dllMing συναρτήσεις για FlashΚαμία
php_msql.dllmSQL συναρτήσειςΑπαιτεί: msql.dll (συσκευασμένο)
php3_msql1.dllmSQL 1 clientάγνωστο
php3_msql2.dllmSQL 2 clientάγνωστο
php_mssql.dllMSSQL συναρτήσειςΑπαιτεί: ntwdblib.dll (συσκευασμένο)
php3_mysql.dllMySQL συναρτήσειςΕνσωματωμένο στην PHP 4
php3_nsmail.dllNetscape mail συναρτήσειςάγνωστο
php3_oci73.dllOracle συναρτήσειςάγνωστο
php_oci8.dllOracle 8 συναρτήσειςΑπαιτεί: Βιβλιοθήκες Oracle 8 client
php_openssl.dllOpenSSL συναρτήσειςΑπαιτεί: libeay32.dll (συσκευασμένο)
php_oracle.dllOracle συναρτήσειςΑπαιτεί: Βιβλιοθήκες Oracle 7 client
php_pdf.dllPDF συναρτήσειςΚαμία
php_pgsql.dllPostgreSQL συναρτήσειςΚαμία
php_printer.dllPrinter συναρτήσειςΚαμία
php_xslt.dllXSLT συναρτήσειςΑπαιτεί: sablot.dll (συσκευασμένο)
php_snmp.dllSNMP get and walk συναρτήσειςΜόνο NT!
php_sybase_ct.dllSybase συναρτήσειςΑπαιτεί: Βιβλιοθήκες Sybase client
php_yaz.dllYAZ συναρτήσειςΚαμία
php_zlib.dllZLib συναρτήσεις συμπίεσηςΚαμία