Before getting started, it is worthwhile answering the question:
"Why is building on Windows so hard?" Two reasons come to mind:
Windows does not (yet) enjoy a large community of developers
who are willing to freely share their source. As a direct
result, the necessary investment in infrastructure required
to support such development hasn't been made. By and large,
what is available has been made possible by the porting of
necessary utilities from Unix. Don't be surprised if some of
this heritage shows through from time to time.
Pretty much all of the instructions that follow are of the
"set and forget" variety. So sit back and try follow the
instructions below as faithfully as you can.
To compile and build PHP you need a Microsoft
Development Environment. Microsoft Visual C++ 6.0 is recommended.
To extract the downloaded files you need a extraction utility
(e.g.: Winzip). If you don't already have an unzip utility, you
can get a free version from InfoZip.
Before you get started, you have to download...
Finally, you are going to need the source to PHP itself. You can get
the latest development version using
anonymous CVS, a
snapshot or the most recent released
source tarball.
After downloading the required packages you have to extract them in a
proper place.
Create a working directory where all files end up after extracting, e.g:
C:\work.
Create the directory win32build under your
working directory (C:\work) and unzip
win32build.zip into it.
Create the directory bindlib_w32 under your
working directory (C:\work) and unzip
bindlib_w32.zip into it.
Extract the downloaded PHP source code into your working directory
(C:\work).
Following this steps your directory structure looks like this:
Create the directories
c:\usr\local\lib. Copy
bison.simple from
c:\work\win32build\bin
to
c:\usr\local\lib.
注:
Cygwin users may omit the last
step. A properly installed Cygwin environment provides the mandatory
files bison.simple and
bison.exe.
The next step is to configure MVC ++ to prepare for compiling.
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. Your entries should look
like this:
Executable files: c:\work\win32build\bin,
Cygwin users: cygwin\bin
Include files: c:\work\win32build\include
Library files: c:\work\win32build\lib
You must build the resolv.lib library.
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, navigate to c:\work\bindlib_w32 and
select bindlib.dsw. 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
commands:
At this point, you should have a usable
resolv.lib
in either your
c:\work\bindlib_w32\Debug or
Release subdirectories. Copy this file into your
c:\work\win32build\lib directory over the file
by the same name found in there.
The best way to get started is to build the CGI version.
For GUI users, launch VC++, and then select File => Open
Workspace and select c:\work\php-4.x.x\win32\php4ts.dsw
. Then select Build=>Set Active
Configuration and select the desired configuration, either
php4ts - Win32 Debug_TS or
php4ts - Win32 Release_TS. 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 commands from the c:\work\php-4.x.x\win32
directory:
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 c:\work\php-4.x.x.\Debug_TS or
Release_TS subdirectories.
It is possible to do minor customization to the build process by editing
the main/config.win32.h file. For example you can
change the default location of php.ini, the built-in extensions, and the
default location for your extensions.
Next you may want to build the CLI version which is designed to use
PHP from the command line.
The steps are the same as for building the CGI version, except you have
to select the php4ts_cli - Win32 Debug_TS or
php4ts_cli - Win32 Release_TS project file. After a
successful compiling run you will find the php.exe
in either the directory Release_TS\cli\ or
Debug_TS\cli\.
注:
If you want to use PEAR and the comfortable command line installer,
the CLI-SAPI is mandatory. For more information about PEAR and the
installer read the documentation at the
PEAR website.
In order to build the SAPI module (php4isapi.dll)
for integrating PHP with Microsoft IIS, set your active configuration to
php4isapi-whatever-config and build the desired dll.