php Clădire din sursa sub ferestre

Build PHP de la sursa pe Windows

Instrucțiuni pentru construirea PHP sub WinNT folosind Microsoft Visual C ++

  • Pachetul Cygwin instrumente bizoni și flex.
  • Bindlib Căutare DNS Biblioteca Support.
  • adăugări Number4 la partea matematică.
  • Win32Build biblioteci gata necesare pentru asamblare.
  • MSSQL de programare de către biblioteci sub MS SQL 6.5.
  • client CVS pentru CVS depozit este nevoie pentru a descărca codul sursă PHP.

De asemenea, au nevoie de fișiere din MSVC ++ 6.0 (numai pentru MSVC ++ utilizatori 5.0)

  • OLE - a pus în VC \ includ. Necesare pentru sprijin COM.
  • HTTP - redenumiți disponibile * .hold și pus într-o nouă VC \ includ. Sunt necesare pentru asamblarea filtrului ISAPI.

INSTALARE

Instalarea pachetului Cygwin, de exemplu, în directorul C: \ Program Files \ Cygnus, în NT, este necesar să existe o variabilă de mediu cu o valoare Cygwin% SystemDrive% \ Program Files \ Cygnus \ Cygwin-B20

Iată cum: Du-te la Start-> Settings-> Control al Pannel rula comanda rapidă de sistem, pentru a alege cardul de mediu pe ea făcând clic pe fereastra de variabile de sistem din partea de jos a două linii variabile și valoarea în linia variabilă a scrie Cygwin și linia Valoare% SystemDrive% \ Program Files \ Cygnus \ Cygwin-B20 și faceți clic pe Set și apoi Apply.

Crearea rădăcină tmp pe unitatea de sistem, și trebuie doar să adăugați variabila cu valoarea de TMP% SystemDrive% \ tmp. Adăugarea la calea calea variabilă% SystemDrive% \ tmp

Faceți clic pe Apply și OK. După aceea trebuie să reporniți.

Expand arhiva win32build.zip la un director, cum ar fi C: \ Win32build

Noi rula MSVC ++ 5.0 mediu de du-te la Tools-> Opțiuni pe card director și adăugați la Forum

Următoarea cale, după caz:

  • C: \ Program Files \ Cygnus \ cygwin-B20 \ H-i586-cygwin32 \ bin
  • C: \ Win32Build \ includ
  • C: \ Win32Build \ lib

Expand Bindlib_w32.zip în directorul, cum ar fi C: \ Bindlib, se uită la fișier de proiect îl bindlib.dsp și se colectează-l din mediul MSVC. Directorul C: \ Bindlib \ Debug va resolve.lib, acesta trebuie să fie scrise în directorul C: \ Win32Build \ Lib peste cel vechi.

Instalarea CVS client (instrucțiuni de utilizare) și de a descărca codul sursă pentru PHP (PHP4, TSRM, Zend), Napimer în directorul C: \ php4, C: \ Tsrm și C: \ Zend, apoi cataloage TSRM si Zend muta în directorul PHP4.

Number4.tar.gz despachetați C: \ Number4 și pune conținutul în C: \ PHP4.

Noi ștampila în directorul C: \ php4 \ Tsrm și să colecteze TSRM.dsp, după asamblare în directorul C: \ php4 \ Tsrm \ Debug va Tsrm.lib, copiați-l la C: \ Win32Build \ Lib.

Du-te la folderul C: \ php4 \ Zend, proiectul ZendTS.dsp deschis și colecta după asamblare în directorul C: \ php4 \ Zend \ Debug Biblioteca va ZendTS.lib, copiați-l la C: \ Win32Build \ Lib.

Du-te la folderul C: \ php4 și proiectul php4ts.dsp deschis. Este primele 4 proiecte colecta php4ts (nu uitați să setați proiectul activ Proiect-> Set Active Project-> php4ts).

După asamblare în directorul C: \ php4 \ Debug va php4ts.lib fișier, php4ts.dll, php.exe. Php4ts.lib din nou copiate în C: \ Win32Build \ Lib. Această bibliotecă este necesară pentru a construi module externe php, de exemplu, pentru MSSQL suport de modul.

Realizarea proiectului php4isapi activ și colecta. Directorul C: \ php4 \ SAPI \ isapi \ de depanare va sta php4isapi.dll - filtru pentru IIS.

bug-uri cunoscute care împiedică foarte mult helluva de muncă și modalități de tratament

1. Prin elementele pe forme nu sunt rapid de date mai mari decât 4K, nu fișierele generale de încărcare mai mare decât 4K. proces php4.exe se blochează și pot fi eliminate doar IISa repornire. (Am scrie în raport un bug, dar atunci când remedierea nu este clar, încercați să-l reparați dvs.) .Reshenie: Gestionează folosind php 3.12-3.14 pentru forme de fișiere de răspuns de tratament. Mai lent, dar funcționează.

2. Atunci când se efectuează cod dinamic în care utilizarea rezultatelor analizori variabile serializate oshtbku. De exemplu:

Acest lucru se întâmplă datorită faptului că, în a patra versiune a personajelor <> folosit pentru a încapsula o variabilă string, de exemplu $ a = „Acesta este elementul“;

Dar reprezentarea serializate de matrice conține, de asemenea, simboluri <>.

În exemplul descris mai sus, parserul încearcă să încapsuleze o expresie care este de fapt o expresie a ceea ce este și nu este, și în mod natural cade cu o eroare.

Modul de asamblare PHP 4,03 betta pentru MS SQL 6.5 (mssql.dll)

mssql.zip Dezarhivare. * .lib aruncat în C: \ Win32Build \ Lib, și * .h în C: \ Win32Build \ Include.

Noi ștampila în directorul C: \ php4 \ ext \ MSSQL și mediu deschis în proiectul mssql.dsp MSVC.

Mergeți la Proiect-> Setări în C / C ++ în card suplimentare includ directoare adăugate. \ .. \ Tsrm, secțiunea Preprocessor adăuga COMPILE_DL, ZTS, MSSQL65, DBNTWIN32, și în secțiunea Object / module Biblioteci de pe cartela Link adăuga php4ts.lib, ntwdblib.lib. Apoi vom asambla proiectul. Directorul C: \ php4 \ ext \ MSSQL \ Debug va mssql.dll.