Bu bölüm Windows 95/98/ME ve Windows NT/2000/XP kullanıcılarına yöneliktir. PHP Windows 3.1 gibi 16 bit platformlarda çalışmamaktadır. Zaman zaman desteklenen Windows platformları yerine Win32 sözcüğünü kullandık.
PHP'yi Windows altında kurmak için iki ana yöntem mevcut; ya elle ya da InstallShield kullanarak.
Microsoft Visual Studio uygulamasına sahipseniz, PHP'yi kaynak kodundan derleyebilirsiniz.
PHP'yi bir defa sisteminize kurduktan sonra, farklı uzantıları deneyebilirsiniz.
Windows PHP yükleyicisi http://www.php.net/, adresindeki indirme sayfasından edinilebilir. Bu yükleyici PHP'nin CGI sürümünü kuracak ve IIS, PWS ve Xitami sunucuları için kullanıma hazır hale getirecektir. Öte yandan, InstallShield yükleyicisi PHP kurulumunu kolaylaştırmakla birlikte, birçok yönden kısıtlayıcı olabilir, örneğin uzantıların otomatik olarak yüklenmesi desteklenmemektedir.
Kullanmak istediğinizHTTP sunucunuzu sisteminize yükleyin ve çalıştığından emin olun.
Kurulum dosyasını çalıştırın ve size sorulan soruları cevaplayın. İki farklı tipte kurulum desteklenmektedir - standart, bütün ayarlar öntanımlı değerler gözetilerek yapılır, ve ileri düzey, sizin verdiğiniz cevaplar üzerinden yapılır.
Kurulum sihirbazı php.ini için gerekli veriyi toplar ve web sunucusunu PHP'ye hazır hale getirir. NT üzerindeki IIS ve PWS için, script map ayarları ile ilgili liste görüntülenir ve sizden yapmak istediğiniz eklenti hakkında bilgi alınır.
Kurulum bir defa tamamlandıktan sonra, sihirbaz sizden sistemi yeniden başlatmanızı isteyecek, sisteminizi yeniden başlatın ve PHP'yi kullanmaya başlayın.
Uyarý |
PHP'nin bu şekilde kurulumunun güvenli olmadığını unutmayın. Eğer güvenli bir PHP kurulumu istiyorsanız, elle kurulum yöntemini izlemeli ve her seçeneği dikkatle gözden geçirmelisiniz. Bu otomatik kurulum size PHP'yi hızlı ve sorunsuz biçimde kullanma imkanı sağlar, ancak bu online sunucularda kullanıma da hazırdır anlamına gelmemelidir. |
Bu kurulum rehberi size PHP'yi Windows web sunucunuzda kurup ayarlayabilmeniz için yardımcı olacaktır. http://www.php.net/. adresinden PHP'nin binary zip sürümünü indirmeniz gereklidir. Bu rehberin orjinal sürümü Bob Silva tarafından hazırlanmıştır ve http://www.umesd.k12.or.us/php/win32install.html adresinde bulunabilir.
Bu rehber aşağıdaki elle kurulum yöntemlerini destekler:
Kişisel Web Sunucusu 3 ve 4 ya da daha yenisi
Internet Information Server 3 veya 4 ya da daha yenisi
Apache 1.3.x
OmniHTTPd 2.0b1 ve yukarsı
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
Windows için PHP 4 iki farklı şekilde gelir - bir CGI çalıştırılabiliri (php.exe), ve birkaç SAPI modülü (örneğin: php4isapi.dll). Sonraki şekil PHP 4 için daha yenidir, ve ciddi anlamda performans ve yeni özellik getirisi sağlar.
Uyarý |
Öte yandan, SAPI modüllerinin henüz üretim kalitesinde OLMADIĞINI bilmelisiniz. Genelde, ISAPI modülü ile özellikle W2K platformu dışındaki ortamlarda ciddi problemler yaşayabilirsiniz.- Şimdiden ASP gibi diğer birçok modülün de kurtulamadığı bir sürü 500 hatasıyla karşılaşmaya hazırlıklı olun. Uyarmadı demeyin! Bu çakılmaların nedeni, PHP SAPI modülünün PHP kodunun thread-safe sürümünü kullanmalarıdır. Bu yöntem PHP 4 için yenidir, ve henüz tamamen kararlı denebilmesi için yeterli anlamda test edilememiştir, ve birkaç bilinen hata taşımaktadır. Öte yandan, bazı kişiler SAPI modüllerini kullanarak oldukça iyi sonuçlar elde etmişlerdir, ancak biz bu modülleri üretim aşamasında kullanan siteler olup olmadığınu bilmiyoruz. Kısaca - kararlılık sizin için vazgeçilmezse, SAPI modüllerinin performansı ile CGI çalıştırılabilirinin kararlılığını takas edin. |
Eğer SAPI modüllerinden birini kullanmaya karar verir ve Windows 95 kullanırsanız, Microsoft DCOM sayfalarından DCOM güncellemesini indirip kurun. ISAPI modülü için, ISAPI 4.0 ile uyumlu bir web sunucusu gereklidir (IIS 4.0, PWS 4.0 ve IIS 5.0 ile test edilmiştir). IIS 3.0 DESTEKLENMEMEKTEDİR. Eğer gerçek PHP desteği istiyorsanız, IIS 4.0 içeren Windows NT 4.0 Option Pack'i indirip kurmalısınız.
Aşağıdaki adımlar bütün kurulumlar için istisnasız yapılmalıdır.
Sıkıştırılmış dosyayı kendi isteğinize göre bir klasöre açın. "c:\php\" iyi bir başlangıç olacaktır.
PHP'nin kullandığı dll dosyalarını bulabileceğinden emin olmalısınız. Kullanılan DLL dosyaları hangi web sunucusunu kullandığınıza ve CGI mı yoksa sunucu modülü mü tercih ettiğinize göre değişir. php4ts.dll her durumda kullanılır. Eğer bir sunucu modülü kullanıyorsanız (ISAPI veya Apache gibi) bu durumda sapi klasöründeki DLL'ler kullanılacaktır. Eğer bir PHP uzantısı kullanıyorsanız, bunlara yine ihtiyacınız olacak. DLL'lerin bulunacağından emin olmak için, bu dosyaları sistem klasörüne (örn. winnt/system32 ya da windows/system) kopyalayabilir ya da hepsinin kullandığınız sunucu tipine göre php.exe ya da ilgili sunucu modülü ile aynı klasöre taşıyabilirsiniz.
PHP çalıştırılabiliri, SAPI modülleri ve bazı uzantılar çalışabilmek için dış DLL dosyalarına bağımlıdırlar. BU DLL dosyalarının Windows PATH'ine dahil bir klasörde olduklarından emin olun. Bunu yapmanın en iyi yolu, bu dosyaları sistem klasörünüzün altına atmaktır. Genellikle bu
Windows 9X/ME için c:\windows\system |
Windows NT/2000/XP için c:\winnt\system32 |
'php4ts.dll', mevcutsa üstüne yazdırın. |
Dağıtımınıza ait dosyaların ait olduğu 'dll' klasörü. Bu dosyalar zaten sisteminizde yüklüyse, yalnızca bir şeylerin düzgün çalışmaması durumunda üzerlerine yazdırın. (Üzerlerine yazdırmadan önce, yedeklerini almanızda ya da başka bir klasöre taşımanızda fayda var - bir şeylerin yolunda gitmeme durumuna karşı. |
Platformunuz için Microsoft Data Access Components (MDAC) uygulamasının son sürümünü indirin. Özellikle Microsoft 9X/NT4 kullanıcılarının yapmasında fayda var. MDAC'ı http://www.microsoft.com/data/ adresinde bulabilirsiniz.
Tercih ettiğiniz ini dosyasını (aşağıya bakın) Windows 9X/ME kullanıyorsanız '%WINDOWS%' klasörüne, Windows NT/2000/XP kullanıyorsanız '%SYSTEMROOT%' klasörüne kopyalayın ve ismini php.ini olarak değiştirin. '%WINDOWS%' ya da '%SYSTEMROOT%' klasörlerinin genel olarak bulundukları yerler:
Windows 9x/Me için c:\windows |
NT/2000/XP sunucuları için c:\winnt ya da c:\winnt40 |
Zip dosyası ile birlikte iki farklı ini dosyası gelir, php.ini-dist ve php.ini-optimized. Size önerimiz php.ini-optimized dosyasını kullanmanız, çünkü bu dosyadaki ayarlar performans ve güvenlik düşünülerek hazırlanmıştır. Yapılacak en iyi iş, bütün dosyayı incelemek ve ini ayarlarının her birini tek tek elle onaylamaktır. Güvenliği son sınırına çıkarmak istiyorsanız, bu yolu izleyebilirsiniz, öte yandan PHP öntanımlı ini dosyalarıyla sorunsuz biçimde çalışmaktadır.
Yeni ';php.ini' dosyanızı düzenleyin:
'extension_dir' ayarını php-kurulum-klasörünün ya da php_*.dll dosyaları klasörünün yerini gösterecek biçimde değiştirmelisiniz. örn: c:\php\extensions
OmniHTTPd'yi kullanmayı seçtiyseniz, şimdiki adımı atlayın. 'doc_root' ayarını değiştirin ve web sunucunuzun document_root değerini yazın. Örneğin: c:\apache\htdocs ya da c:\webroot
PHP başladığında hangi uzantıların yükleneceğini seçin. Windows uzantıları bölümünden uzantıların nasıl kurulduğu ve hangilerinin önyüklü geldiklerini öğrenebilirsiniz. Ancak öncelikle PHP'yi hiçbir uzantı yüklemeden test edip çalıştığından emin olmanızı, uzantıları sonra etkinleştirmenizi tavsiye ediyoruz.
PWS ve IIS üzerinde, browscap.ini dosyasını 'c:\windows\system\inetsrv\browscap.ini' ya da 'c:\winnt\system32\inetsrv\browscap.ini' klasörlerinden birini gösterecek biçimde ayarlayabilirsiniz.
Windows dağıtımı ile birlikte gelen mibs klasörü, SNMP desteği için gerekli dosyaları içermektedir. Bu klasör DRIVE:\usr\mibs olarak taşınmalıdır. (DRIVE PHP'nin kurulu olduğu sürücüyü gösterir.)
Başlamadan önce bir soruyu cevaplamakta yarar var: "Windows altında derleme neden bu kadar zor?" . Akla iki neden geliyor:
Windows kaynaklarını özgürce paylaşmaktan hoşlanan yazılımcılara (henüz) yeterince sahip değil. Bunun sonucu olarak, yazılım geliştirme için harcanması gereken maddi kaynak çok daha yukarda kalıyor. Bu nedenle yapılanlar, ihtiyaç duyulan araçların Unixten taşınmasıyla mümkün olabiliyor.
Aşağıdaki bilgilerin çoğu "yap ve sorma" biçimindedir. O nedenle arkanıza yaslanın ve komutları mümkün olabildiğince sadık biçimde uygulamaya başlayın.
Before you get started, you have a lot to download...
For starters, get the Cygwin toolkit from the closest cygwin mirror site. This will provide you most of the popular GNU utilities used by the build process.
Download the rest of the build tools you will need from the PHP site at http://www.php.net/extra/win32build.zip.
Get the source code for the DNS name resolver used by PHP at http://www.php.net/extra/bindlib_w32.zip. This is a replacement for the resolv.lib library included in win32build.zip.
If you don't already have an unzip utility, you will need one. A free version is available from InfoZip.
Finally, you are going to need the source to PHP 4 itself. You can get the latest development version using anonymous CVS. If you get a snapshot or a source tarball, you not only will have to untar and ungzip it, but you will have to convert the bare linefeeds to crlf's in the *.dsp and *.dsw files before Microsoft Visual C++ will have anything to do with them.
Not: Place the Zend and TSRM directories inside the php4 directory in order for the projects to be found during the build process.
Follow the instructions for installing the unzip utility of your choosing.
Execute setup.exe and follow the installation instructions. If you choose to install to a path other than c:\cygnus, let the build process know by setting the Cygwin environment variable. On Windows 95/98 setting an environment variable can be done by placing a line in your autoexec.bat. On Windows NT, go to My Computer => Control Panel => System and select the environment tab.
Uyarý |
Make a temporary directory for Cygwin to use, otherwise many commands (particularly bison) will fail. On Windows 95/98, mkdir C:\TMP. For Windows NT, mkdir %SystemDrive%\tmp. |
Make a directory and unzip win32build.zip into it.
Launch Microsoft Visual C++, and from the menu select Tools => Options. In the dialog, select the directories tab. Sequentially change the dropdown to Executables, Includes, and Library files, and ensure that cygwin\bin, win32build\include, and win32build\lib are in each list, respectively. (To add an entry, select a blank line at the end of the list and begin typing). Typical entries will look like this:
c:\cygnus\bin
c:\php-win32build\include
c:\php-win32build\lib
Press OK, and exit out of Visual C++.
Make another directory and unzip bindlib_w32.zip into it. Decide whether you want to have debug symbols available (bindlib - Win32 Debug) or not (bindlib - Win32 Release). Build the appropriate configuration:
For GUI users, launch VC++, and then select File => Open Workspace and select bindlib. Then select Build=>Set Active Configuration and select the desired configuration. Finally select Build=>Rebuild All.
For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following:
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
At this point, you should have a usable resolv.lib in either your Debug or Release subdirectories. Copy this file into your win32build\lib directory over the file by the same name found in there.
The best way to get started is to build the standalone/CGI version.
For GUI users, launch VC++, and then select File => Open Workspace and select php4ts. Then select Build=>Set Active Configuration and select the desired configuration. Finally select Build=>Rebuild All.
For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following:
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
At this point, you should have a usable php.exe in either your Debug_TS or Release_TS subdirectories.
Repeat the above steps with php4isapi.dsp (which can be found in sapi\isapi) in order to build the code necessary for integrating PHP with Microsoft IIS.
After installing PHP and a webserver on Windows, you will probably want to install some extensions for added functionality. The following table describes some of the extensions available. You can choose which extensions you would like to load when PHP starts by uncommenting the: 'extension=php_*.dll' lines in php.ini. You can also load a module dynamically in your script using dl().
The DLLs for PHP extensions are prefixed with 'php_' in PHP 4 (and 'php3_' in PHP 3). This prevents confusion between PHP extensions and their supporting libraries.
Not: In PHP 4.0.6 BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX and XML support is built in. You don't need to load any additional extensions in order to use these functions. See your distributions README.txt or install.txt for a list of built in modules.
Not: Some of these extensions need extra dlls to work. Couple of them can be found in the distribution package, in the 'dlls' folder but some, for example Oracle (php_oci8.dll) require dlls which are not bundled with the distribution package.
Copy the bundled dlls from 'dlls' folder to your Windows PATH, safe places are:
If you have them already installed on your system, overwrite them only if something doesn't work correctly (Before overwriting them, it is a good idea to make a backup of them, or move them to another folder - just in case something goes wrong).
c:\windows\system for Windows 9x/Me c:\winnt\system32 for Windows NT/2000/XP
Tablo 2-1. PHP Extensions
Extension | Description | Notes |
---|---|---|
php_bz2.dll | bzip2 compression functions | None |
php_calendar.dll | Calendar conversion functions | Built in since PHP 4.0.3 |
php_cpdf.dll | ClibPDF functions | None |
php3_crypt.dll | Crypt functions | unknown |
php_ctype.dll | ctype family functions | None |
php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled) |
php_cybercash.dll | Cybercash payment functions | None |
php_db.dll | DBM functions | Deprecated. Use DBA instead (php_dba.dll) |
php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None |
php_dbase.dll | dBase functions | None |
php3_dbm.dll | Berkeley DB2 library | unknown |
php_domxml.dll | DOM XML functions | Requires: libxml2.dll (bundled) |
php_dotnet.dll | .NET functions | None |
php_exif.dll | Read EXIF headers from JPEG | None |
php_fbsql.dll | FrontBase functions | None |
php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled) |
php_filepro.dll | filePro functions | Read-only access |
php_ftp.dll | FTP functions | Built-in since PHP 4.0.3 |
php_gd.dll | GD library image functions | None |
php_gettext.dll | Gettext functions | Requires: gnu_gettext.dll (bundled) |
php_hyperwave.dll | HyperWave functions | None |
php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled) |
php_ifx.dll | Informix functions | Requires: Informix libraries |
php_iisfunc.dll | IIS management functions | None |
php_imap.dll | IMAP POP3 and NNTP functions | PHP 3: php3_imap4r1.dll |
php_ingres.dll | Ingres II functions | Requires: Ingres II libraries |
php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled) |
php_java.dll | Java extension | Requires: jvm.dll (bundled) |
php_ldap.dll | LDAP functions | Requires: libsasl.dll (bundled) |
php_mhash.dll | Mhash Functions | None |
php_ming.dll | Ming functions for Flash | None |
php_msql.dll | mSQL functions | Requires: msql.dll (bundled) |
php3_msql1.dll | mSQL 1 client | unknown |
php3_msql2.dll | mSQL 2 client | unknown |
php_mssql.dll | MSSQL functions | Requires: ntwdblib.dll (bundled) |
php3_mysql.dll | MySQL functions | Built-in in PHP 4 |
php3_nsmail.dll | Netscape mail functions | unknown |
php3_oci73.dll | Oracle functions | unknown |
php_oci8.dll | Oracle 8 functions | Requires: Oracle 8 client libraries |
php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled) |
php_oracle.dll | Oracle functions | Requires: Oracle 7 client libraries |
php_pdf.dll | PDF functions | None |
php_pgsql.dll | PostgreSQL functions | None |
php_printer.dll | Printer functions | None |
php_sablot.dll | XSLT functions | Requires: sablot.dll (bundled) |
php_snmp.dll | SNMP get and walk functions | NT only! |
php_sybase_ct.dll | Sybase functions | Requires: Sybase client libraries |
php_yaz.dll | YAZ functions | None |
php_zlib.dll | ZLib compression functions | None |