betz Fri Jan 24 15:36:23 2003 EDT
Modified files:
/phpdoc/en/chapters install.windows.xml
Log:
major rewrite of the build process on windows.
- cygwin is optional
- rewording and ues of entities for urls
Index: phpdoc/en/chapters/install.windows.xml
diff -u phpdoc/en/chapters/install.windows.xml:1.22
phpdoc/en/chapters/install.windows.xml:1.23
--- phpdoc/en/chapters/install.windows.xml:1.22 Sun Jan 19 17:10:19 2003
+++ phpdoc/en/chapters/install.windows.xml Fri Jan 24 15:36:23 2003
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.22 $ -->
+<!-- $Revision: 1.23 $ -->
<sect1 id="install.windows">
<title>Installation on Windows systems</title>
<para>
@@ -357,159 +357,207 @@
"Why is building on Windows so hard?" Two reasons come to mind:
</para>
<orderedlist>
- <listitem><simpara>
- 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.
- </simpara></listitem>
- <listitem><simpara>
- 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.
- </simpara></listitem>
+ <listitem>
+ <simpara>
+ 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.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ 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.
+ </simpara>
+ </listitem>
</orderedlist>
- <sect3 id="install.windows.build.prepare">
- <title>Preparations</title>
+ <sect3 id="install.windows.build.requirement">
+ &reftitle.required;
<para>
- Before you get started, you have a lot to download...
+ To compile and build <literal>PHP</literal> you need a Microsoft
+ Development Environment. Microsoft Visuaul C++ 6.0 is recommended.
+ To extract the downloaded files you need a extraction utilitiy
+ (e.g.: Winzip). If you don't already have an unzip utility, you
+ can get a free version from <ulink url="&url.infozip;">InfoZip</ulink>.
</para>
- <itemizedlist>
- <listitem><simpara>
- For starters, get the Cygwin toolkit from the closest <ulink
- url="http://sources.redhat.com/cygwin/download.html">cygwin</ulink>
- mirror site. This will provide you most of the popular GNU
- utilities used by the build process.
- </simpara></listitem>
- <listitem><simpara>
- Download the rest of the build tools you will need from the PHP
- site at <ulink url="http://www.php.net/extra/win32build.zip"
- >http://www.php.net/extra/win32build.zip</ulink>.
- </simpara></listitem>
- <listitem><simpara>
- Get the source code for the DNS name resolver used by PHP
- at <ulink url="http://www.php.net/extra/bindlib_w32.zip"
- >http://www.php.net/extra/bindlib_w32.zip</ulink>. This
- is a replacement for the <filename>resolv.lib</filename>
- library included in <filename>win32build.zip</filename>.
- </simpara></listitem>
- <listitem><simpara>
- If you don't already have an unzip utility, you will
- need one. A free version is available from <ulink
- url="http://www.cdrom.com/pub/infozip/UnZip.html">InfoZip</ulink>.
- </simpara></listitem>
- <listitem><simpara>If you plan to compile PHP as a static Apache
- module you will also need the
- <ulink url="http://httpd.apache.org/dist/httpd/">Apache sources</ulink>
- of your version of Apache.
- </simpara></listitem>
+ <para>
+ Before you get started, you have to download...
+ </para>
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ ..the win32 buildtools from the <literal>PHP</literal> site
+ at <ulink url="&url.win32.buildtools;">&url.win32.buildtools;</ulink>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ ..the source code for the DNS name resolver used by <literal>PHP
+ </literal> from <ulink url="&url.win32.dnsresolver;">
+ &url.win32.dnsresolver;</ulink>. This is a replacement for the
+ <filename>resolv.lib</filename> library included in <filename>
+ win32build.zip</filename>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ If you plan to compile <literal>PHP</literal> as a Apache
+ module you will also need the <ulink url="&url.apache.source;">Apache
+ sources</ulink>.
+ </simpara>
+ </listitem>
</itemizedlist>
<simpara>
- Finally, you are going to need the source to PHP 4 itself.
- You can get the latest development version using <ulink
- url="http://www.php.net/anoncvs.php">anonymous CVS</ulink>. If you get
- a <ulink url="http://snaps.php.net/">snapshot</ulink> or a <ulink
- url="http://www.php.net/downloads.php">source</ulink> 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 <filename>*.dsp</filename>
- and <filename>*.dsw</filename> files before Microsoft Visual C++
- will have anything to do with them.
+ Finally, you are going to need the source to PHP 4 itself. You can get
+ the latest development version using <ulink url="&url.php.anoncvs;">
+ anonymous CVS</ulink>, a <ulink url="&url.php.snapshots;">
+ snapshot</ulink> or the most recent released <ulink url="&url.php.downloads;">
+ source</ulink> tarball.
</simpara>
- <note>
- <simpara>
- Place the <filename>Zend</filename> and
- <filename>TSRM</filename> directories inside the
- <filename>php4</filename> directory in order for the projects
- to be found during the build process.
- </simpara>
- </note>
</sect3>
+
<sect3 id="install.windows.build.install">
<title>Putting it all together</title>
- <itemizedlist>
- <listitem><simpara>
- Follow the instructions for installing the unzip utility of
- your choosing.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Execute <filename>setup.exe</filename> and follow the installation
- instructions. If you choose to install to a path other than
- <filename>c:\cygnus</filename>, 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 <filename>autoexec.bat</filename>. On Windows NT, go to My
- Computer => Control Panel => System and select the
- environment tab.
- </simpara>
+ <para>
+ After downloading the required packages you have to extract them in a
+ proper place.
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Create a working directory where all files end up after extracting, e.g:
+ <filename>c:\work</filename>.
+ </simpara>
</listitem>
- </itemizedlist>
- <warning>
+ <listitem>
<simpara>
- Make a temporary directory for Cygwin to use, otherwise many
- commands (particularly bison) will fail. On Windows 95/98,
- <userinput>mkdir C:\TMP</userinput>. For Windows NT,
- <userinput>mkdir %SystemDrive%\tmp</userinput>.
+ Create the directory <filename>win32build</filename> under your
+ working directory (<filename>c:\work</filename>) and unzip <filename>
+ win32build.zip</filename> into it.
</simpara>
- </warning>
- <itemizedlist>
+ </listitem>
<listitem>
- <simpara>
- Make a directory and unzip <filename>win32build.zip</filename> into it.
- </simpara></listitem>
- <listitem>
- <simpara>
- 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 <filename>cygwin\bin</filename>,
- <filename>win32build\include</filename>, and
- <filename>win32build\lib</filename> 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:
- </simpara>
+ <simpara>
+ Create the directory <filename>bindlib_w32</filename> under your
+ working directory (<filename>c:\work</filename>) and unzip <filename>
+ bindlib_w32.zip</filename> into it.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Extract the downloaded PHP source code into your working directory
+ (<filename>c:\work</filename>).
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ Following this steps your directory structure looks like this:
+ <informalexample>
+ <programlisting>
+<![CDATA[
+
++--c:\work
+| |
+| +--bindlib_w32
+| | |
+| | +--arpa
+| | |
+| | +--conf
+| | |
+| | +--...
+| |
+| +--php-4.x.x
+| | |
+| | +--build
+| | |
+| | +--...
+| | |
+| | +--win32
+| | |
+| | +--...
+| |
+| +--win32build
+| | |
+| | +--bin
+| | |
+| | +--include
+| | |
+| | +--lib
+
+]]>
+ </programlisting>
+ </informalexample>
+ Create the directories <filename>c:\usr\local\lib</filename>. Copy
+ <filename>bison.simple</filename> from <filename>c:\work\win32build\bin
+ </filename> to <filename>c:\usr\local\lib</filename>.
+ </para>
+ <note>
+ <simpara>
+ <ulink url="&url.cygwin;">Cygwin</ulink> users may omit the last
+ step. A properly installed Cygwin environment provides the mandatory
+ files <filename>bison.simple</filename> and
+ <filename>bison.exe</filename>.
+ </simpara>
+ </note>
+ </sect3>
+
+ <sect3 id="install.windows.build.configure">
+ <title>Configure MVC ++</title>
+ <para>
+ 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:
<itemizedlist>
- <listitem><simpara>
- <filename>c:\cygnus\bin</filename>
- </simpara></listitem>
- <listitem><simpara>
- <filename>c:\php-win32build\include</filename>
- </simpara></listitem>
- <listitem><simpara>
- <filename>c:\php-win32build\lib</filename>
- </simpara></listitem>
+ <listitem>
+ <simpara>
+ Executable files: <filename>c:\work\win32build\bin</filename>,
+ Cygwin users: <filename>cygwin\bin</filename>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Include files: <filename>c:\work\win32build\include</filename>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Library files: <filename>c:\work\win32build\lib</filename>
+ </simpara>
+ </listitem>
</itemizedlist>
- <simpara>
- Press OK, and exit out of Visual C++.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Make another directory and unzip <filename>bindlib_w32.zip</filename>
- into it. Decide whether you want to have debug symbols available
- (bindlib - Win32 Debug) or not (bindlib - Win32 Release).
- Build the appropriate configuration:
- </simpara>
+ </para>
+ </sect3>
+
+ <sect3 id="install.windows.build.resolvlib">
+ <title>Build resolv.lib</title>
+ <para>
+ You must build the <filename>resolv.lib</filename> library.
+ Decide whether you want to have debug symbols available
+ (bindlib - Win32 Debug) or not (bindlib - Win32 Release).
+ Build the appropriate configuration:
<itemizedlist>
- <listitem><simpara>
- 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.
- </simpara></listitem>
<listitem>
<simpara>
- For command line users, make sure that you either have
- the C++ environment variables registered, or have run
- <command>vcvars.bat</command>, and then execute one of the
- following:
+ For GUI users, launch VC++, and then select File => Open
+ Workspace, navigate to <filename>c:\work\bindlib_w32</filename>and
+ select <filename>bindlib.dsw</filename>. Then select Build=>Set
+ Active Configuration and select the desired configuration.
+ Finally select Build=>Rebuild All.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ For command line users, make sure that you either have the C++
+ environment variables registered, or have run
+ <command>vcvars.bat</command>, and then execute one of the following
+ commands:
</simpara>
<itemizedlist>
<listitem>
@@ -524,63 +572,88 @@
</listitem>
</itemizedlist>
</listitem>
- <listitem><simpara>
- At this point, you should have a usable
- <filename>resolv.lib</filename> in either your
- <filename>Debug</filename> or <filename>Release</filename>
- subdirectories. Copy this file into your
- <filename>win32build\lib</filename> directory over the
- file by the same name found in there.
- </simpara></listitem>
</itemizedlist>
- </listitem>
- </itemizedlist>
+ At this point, you should have a usable <filename>resolv.lib</filename>
+ in either your <filename>c:\work\bindlib_w32\Debug</filename> or
+ <filename>Release</filename> subdirectories. Copy this file into your
+ <filename>c:\work\win32build\lib</filename> directory over the file
+ by the same name found in there.
+ </para>
</sect3>
<sect3 id="install.windows.build.compile">
<title>Compiling</title>
<simpara>
- The best way to get started is to build the standalone/CGI version.
+ The best way to get started is to build the CGI version.
</simpara>
<itemizedlist>
- <listitem><simpara>
- 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.
- </simpara></listitem>
+ <listitem>
+ <simpara>
+ For GUI users, launch VC++, and then select File => Open
+ Workspace and select <filename>c:\work\php-4.x.x\win32\php4ts.dsw
+ </filename>. Then select Build=>Set Active
+ Configuration and select the desired configuration, either
+ <literal>php4ts - Win32 Debug_TS</literal> or
+ <literal>php4ts - Win32 Release_TS</literal>. Finally select
+ Build=>Rebuild All.
+ </simpara>
+ </listitem>
<listitem>
<simpara>
For command line users, make sure that you either have
the C++ environment variables registered, or have run
<command>vcvars.bat</command>, and then execute one of the
- following:
+ following commands from the <filename>c:\work\php-4.x.x\win32
+ </filename> directory:
</simpara>
<itemizedlist>
- <listitem><simpara>
- <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"</userinput>
- </simpara></listitem>
- <listitem><simpara>
- <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"</userinput>
- </simpara></listitem>
- <listitem><simpara>
- At this point, you should have a usable
- <filename>php.exe</filename> in either
- your <filename>Debug_TS</filename> or
- <filename>Release_TS</filename> subdirectories.
- </simpara></listitem>
+ <listitem>
+ <simpara>
+ <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"</userinput>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <userinput>msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"</userinput>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ At this point, you should have a usable <filename>php.exe</filename>
+ in either your <filename>c:\work\php-4.x.x.\Debug_TS</filename> or
+ <filename>Release_TS</filename> subdirectories.
+ </simpara>
+ </listitem>
</itemizedlist>
</listitem>
</itemizedlist>
<simpara>
- Repeat the above steps with <filename>php4isapi.dsp</filename>
- (which can be found in <filename>sapi\isapi</filename>) in
- order to build the code necessary for integrating PHP with
- Microsoft IIS.
+ It is possible to do minor customization to the build process by editing
+ the <filename>main/config.win32.h.in</filename> file. For example you can
+ change the builtin extensions, the location of &php.ini; and
</simpara>
<simpara>
- It is possible to do minor customization to the build process by editing
- the main/config.win32.h.in file.
+ Next you may want to build the CLI version which is designed to use
+ <link linkend="features.commandline">PHP from the command line</link>.
+ The steps are the same as for building the CGI version, except you have
+ to select the <literal>php4ts_cli - Win32 Debug_TS</literal> or
+ <literal>php4ts_cli - Win32 Release_TS</literal> project file. After a
+ succcessfull compiling run you will find the <filename>php.exe</filename>
+ in either the directory <filename>Release_TS\cli\</filename> or
+ <filename>Debug_TS\cli\</filename>.
+ </simpara>
+ <note>
+ <simpara>
+ 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 documantation at the <ulink url="&.url.php.pear;manual/">
+ PEAR</ulink> website.
+ </simpara>
+ </note>
+ <simpara>
+ In order to build the SAPI module (<filename>php4isapi.dll</filename>
+ for integrating PHP with Microsoft IIS, set your active configuration to
+ <filename>php4isapi-whatever-config</filename> and build the desired dll.
</simpara>
</sect3>
</sect2>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php