PHP Handbuch
Zurück | Kapitel 6. Installation on Windows systems | Weiter

# Building from source

Before getting started, it is worthwhile answering the question: "Why is building on Windows so hard?" Two reasons come to mind:

1. 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.

2. 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.

## Anforderungen

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...

- ..the win32 buildtools from the PHP site at http://www.php.net/extra/win32build.zip.

- ..the source code for the DNS name resolver used by PHP from http://www.php.net/extra/bindlib_w32.zip. This is a replacement for the `resolv.lib` library included in `win32build.zip`.

- If you plan to compile PHP as a Apache module you will also need the Apache sources.

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.

## Putting it all together

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:

    +--c:\work
    |  |
    |  +--bindlib_w32
    |  |  |
    |  |  +--arpa
    |  |  |
    |  |  +--conf
    |  |  |
    |  |  +--...
    |  |
    |  +--php-4.x.x
    |  |  |
    |  |  +--build
    |  |  |
    |  |  +--...
    |  |  |
    |  |  +--win32
    |  |  |
    |  |  +--...
    |  |
    |  +--win32build
    |  |  |
    |  |  +--bin
    |  |  |
    |  |  +--include
    |  |  |
    |  |  +--lib

Create the directories `c:\usr\local\lib`. Copy `bison.simple` from `c:\work\win32build\bin` to `c:\usr\local\lib`.

> Anmerkung: Cygwin users may omit the last step. A properly installed Cygwin environment provides the mandatory files `bison.simple` and `bison.exe`.

## Configure MVC ++

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`

## Build resolv.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:

  - `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 `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.

## Compiling

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\`.

> Anmerkung: 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.

Zurück | Zum Anfang | Weiter
Xitami on Microsoft Windows | Nach oben | Installation of extensions on Windows