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