eschmid Fri Jan 12 09:53:47 2001 EDT Modified files: /phpdoc/pt_BR/chapters config.xml security.xml install.xml Log: Newer versions from the en tree. The Portugese PHP manual is now XML error free.
Index: phpdoc/pt_BR/chapters/config.xml diff -u phpdoc/pt_BR/chapters/config.xml:1.1 phpdoc/pt_BR/chapters/config.xml:1.2 --- phpdoc/pt_BR/chapters/config.xml:1.1 Sun Aug 20 12:54:06 2000 +++ phpdoc/pt_BR/chapters/config.xml Fri Jan 12 09:53:46 2001 @@ -84,26 +84,50 @@ <title>General Configuration Directives</title> <para> <variablelist> - - <varlistentry id="ini.asp-tags"> - <term> - <parameter>asp_tags</parameter> - <type>boolean</type> - </term> - <listitem> - <simpara> - Enables the use of ASP-like <% %> tags in addition to - the usual <?php ?> tags. This includes the - variable-value printing shorthand of <%= $value %>. For - more information, see <link linkend="language.basic-syntax.phpmode">Escaping from HTML</link>. - </simpara> - - <note> - <para>Support for ASP-style tags was added in 3.0.4.</para> - </note> + <varlistentry id="ini.allow-url-fopen"> + <term> + <parameter>allow_url_fopen</parameter> + <type>boolean</type> + </term> + <listitem> + <para> + This option enables the URL-aware fopen wrappers that enable accessing URL +object + like files. Default wrappers are provided for the access of + <link linkend="features.remote-files">remote files</link> + using the ftp or http protocol, some extensions like zlib may register +additional wrappers. + </para> - </listitem> - </varlistentry> + <note> + <para> + This option was introduced immediately after the release of version 4.0.3. + For versions up to and including 4.0.3 you can only disable this feature at + compile time by using the configuration switch + <link +linkend="install.configure.disable-url-fopen-wrapper"><parameter>--disable-url-fopen-wrapper</parameter></link>. + </para> + </note> + + </listitem> + </varlistentry> + + <varlistentry id="ini.asp-tags"> + <term> + <parameter>asp_tags</parameter> + <type>boolean</type> + </term> + <listitem> + <simpara> + Enables the use of ASP-like <% %> tags in addition to + the usual <?php ?> tags. This includes the + variable-value printing shorthand of <%= $value %>. For + more information, see <link linkend="language.basic-syntax.phpmode">Escaping +from HTML</link>. + </simpara> + + <note> + <para>Support for ASP-style tags was added in 3.0.4.</para> + </note> + + </listitem> + </varlistentry> <varlistentry id="ini.auto-append-file"> <term> @@ -431,15 +455,16 @@ <varlistentry id="ini.max-execution-time"> <term> - <parameter>max_execution_time</parameter> - <type>integer</type> + <parameter>max_execution_time</parameter> + <type>integer</type> </term> <listitem> - <para> - This sets the maximum time in seconds a script is allowed to - take before it is terminated by the parser. This helps - prevent poorly written scripts from tieing up the server. - </para> + <para> + This sets the maximum time in seconds a script is allowed to + take before it is terminated by the parser. This helps + prevent poorly written scripts from tying up the server. The + default setting is <literal>30</literal>. + </para> </listitem> </varlistentry> @@ -467,7 +492,31 @@ </para> </listitem> </varlistentry> - + + <varlistentry id="ini.register-globals"> + <term> + <parameter>register_globals</parameter> + <type>boolean</type> + </term> + <listitem> + <para> + Tells whether or not to register the EGPCS (Environment, GET, + POST, Cookie, Server) variables as global variables. You may + want to turn this off if you don't want to clutter your + scripts' global scope with user data. This makes the most + sense when coupled with <link + linkend="ini.track-vars">track_vars</link> - in which case + you can access all of the EGPCS variables through the + <varname>$HTTP_ENV_VARS</varname>, + <varname>$HTTP_GET_VARS</varname>, + <varname>$HTTP_POST_VARS</varname>, + <varname>$HTTP_COOKIE_VARS</varname>, and + <varname>$HTTP_SERVER_VARS</varname> + arrays in the global scope. + </para> + </listitem> + </varlistentry> + <varlistentry id="ini.short-open-tag"> <term> <parameter>short_open_tag</parameter> @@ -508,15 +557,23 @@ <varlistentry id="ini.track-vars"> <term> - <parameter>track_vars</parameter> - <type>boolean</type> + <parameter>track_vars</parameter> + <type>boolean</type> </term> <listitem> - <para> - If enabled, GET, POST and cookie input can be found in the - global associative arrays <symbol>$HTTP_GET_VARS</symbol>, - <symbol>$HTTP_POST_VARS</symbol> and - <symbol>$HTTP_COOKIE_VARS</symbol>, respectively.</para> + <para> + If enabled, then Environment, GET, POST, Cookie, and Server + variables can be found in the global associative arrays + <varname>$HTTP_ENV_VARS</varname>, + <varname>$HTTP_GET_VARS</varname>, + <varname>$HTTP_POST_VARS</varname>, + <varname>$HTTP_COOKIE_VARS</varname>, and + <varname>$HTTP_SERVER_VARS</varname>. + </para> + <para> + Note that as of PHP 4.0.3, <systemitem + role="directive">track_vars</systemitem> is always turned on. + </para> </listitem> </varlistentry> @@ -758,7 +815,8 @@ </term> <listitem> <para> - Whether to allow persistent MySQL connections.</para> + Whether to allow persistent MySQL connections. + </para> </listitem> </varlistentry> @@ -769,8 +827,8 @@ </term> <listitem> <para> - The default server host to use when connecting to the database - server if no other host is specified. + The default server host to use when connecting to the database + server if no other host is specified. </para> </listitem> </varlistentry> @@ -782,8 +840,8 @@ </term> <listitem> <para> - The default user name to use when connecting to the database - server if no other name is specified. + The default user name to use when connecting to the database + server if no other name is specified. </para> </listitem> </varlistentry> @@ -795,8 +853,8 @@ </term> <listitem> <para> - The default password to use when connecting to the database - server if no other password is specified. + The default password to use when connecting to the database + server if no other password is specified. </para> </listitem> </varlistentry> @@ -808,8 +866,8 @@ </term> <listitem> <para> - The maximum number of persistent MySQL connections per - process. + The maximum number of persistent MySQL connections per + process. </para> </listitem> </varlistentry> @@ -821,8 +879,8 @@ </term> <listitem> <para> - The maximum number of MySQL connections per process, including - persistent connections. + The maximum number of MySQL connections per process, including + persistent connections. </para> </listitem> </varlistentry> @@ -919,6 +977,74 @@ </variablelist> </sect2> + + <sect2 id="ini.sect.sesam"> + <title>SESAM Configuration Directives</title> + <variablelist> + + <varlistentry id="ini.sesam-oml"> + <term> + <parameter>sesam_oml</parameter> + <type>string</type> + </term> + <listitem> + <para> + Name of BS2000 PLAM library containing the loadable SESAM + driver modules. Required for using SESAM functions. The + BS2000 PLAM library must be set ACCESS=READ,SHARE=YES + because it must be readable by the apache server's user id. + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.sesam-configfile"> + <term> + <parameter>sesam_configfile</parameter> + <type>string</type> + </term> + <listitem> + <para> + Name of SESAM application configuration file. Required for + using SESAM functions. The BS2000 file must be readable by + the apache server's user id. + </para> + <para> + The application configuration file will usually contain a + configuration like (see SESAM + reference manual): + <informalexample> + <programlisting role="bs2000"> +CNF=B +NAM=K +NOTYPE</programlisting> + </informalexample> + </para> + </listitem> + </varlistentry> + + <varlistentry id="ini.sesam-messagecatalog"> + <term> + <parameter>sesam_messagecatalog</parameter> + <type>string</type> + </term> + <listitem> + <para> + Name of SESAM message catalog file. In most cases, this + directive is not neccessary. Only if the SESAM message file + is not installed in the system's BS2000 message file table, + it can be set with this directive. + </para> + <para> + The message catalog must be set ACCESS=READ,SHARE=YES because + it must be readable by the apache server's user id. + </para> + </listitem> + </varlistentry> + + </variablelist> + </sect2> + + <sect2 id="ini.sect.sybase"> <title>Sybase Configuration Directives</title> <variablelist> @@ -1282,8 +1408,8 @@ </term> <listitem> <para> - Name of browser capabilities file. See also - <function>get_browser</function>. + Name of browser capabilities file. See also + <function>get_browser</function>. </para> </listitem> </varlistentry> @@ -1391,7 +1517,7 @@ sgml-indent-step:1 sgml-indent-data:t sgml-parent-document:nil -sgml-default-dtd-file:"../manual.ced" +sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil Index: phpdoc/pt_BR/chapters/security.xml diff -u phpdoc/pt_BR/chapters/security.xml:1.2 phpdoc/pt_BR/chapters/security.xml:1.3 --- phpdoc/pt_BR/chapters/security.xml:1.2 Sat Oct 14 06:26:37 2000 +++ phpdoc/pt_BR/chapters/security.xml Fri Jan 12 09:53:46 2001 @@ -9,8 +9,9 @@ properties make anything run on a web server insecure by default. PHP is designed specifically to be a more secure language for writing CGI programs than Perl or C, and with correct selection of - compile-time and runtime configuration options it gives you - exactly the combination of freedom and security you need. + compile-time and runtime configuration options, and proper coding + practices, it can give you exactly the combination of freedom and + security you need. </simpara> <simpara> As there are many different ways of utilizing PHP, there are many @@ -18,12 +19,25 @@ selection of options guarantees you can use PHP for a lot of purposes, but it also means there are combinations of these options and server configurations that result in an insecure - setup. This chapter explains the different configuration option - combinations and the situations they can be safely used. + setup. </simpara> + <simpara> + The configuration flexibility of PHP is equally rivalled by the + code flexibility. PHP can be used to build complete server + applications, with all the power of a shell user, or it can be used + for simple server-side includes with little risk in a tightly + controlled environment. How you build that environment, and how + secure it is, is largely up to the PHP developer. + </simpara> + <simpara> + This chapter starts by explaining the different configuration + option combinations and the situations they can be safely used. It + then describes different considerations in coding for different + levels of security, and ends with some general security advice. + </simpara> <sect1 id="security.cgi"> - <title>CGI binary</title> + <title>Installed as CGI binary</title> <sect2 id="security.cgi.attacks"> <title>Possible attacks</title> @@ -85,7 +99,7 @@ </simpara> <simpara> In PHP, compile-time configuration option <link - linkend="enable-force-cgi-redirect">--enable-force-cgi-redirect</link> + +linkend="install.configure.enable-force-cgi-redirect">--enable-force-cgi-redirect</link> and runtime configuration directives <link linkend="ini.doc-root">doc_root</link> and <link linkend="ini.user-dir">user_dir</link> can be used to prevent @@ -107,7 +121,7 @@ you to do redirects, or the server does not have a way to communicate to the PHP binary that the request is a safely redirected request, you can specify the option <link - linkend="enable-force-cgi-redirect">--disable-force-cgi-redirect</link> + +linkend="install.configure.enable-force-cgi-redirect">--enable-force-cgi-redirect</link> to the configure script. You still have to make sure your PHP scripts do not rely on one or another way of calling the script, neither by directly <filename @@ -233,7 +247,7 @@ To get PHP to handle <envar>PATH_INFO</envar> and <envar>PATH_TRANSLATED</envar> information correctly with this setup, the php parser should be compiled with the <link - linkend="enable-discard-path">--enable-discard-path</link> + linkend="install.configure.enable-discard-path">--enable-discard-path</link> configure option. </para> </sect2> @@ -241,14 +255,329 @@ </sect1> <sect1 id="security.apache"> - <title>Apache module</title> + <title>Installed as an Apache module</title> <simpara> When PHP is used as an Apache module it inherits Apache's user - permissions (typically those of the "nobody" - user). + permissions (typically those of the "nobody" user). This has several + impacts on security and authorization. For example, if you are using + PHP to access a database, unless that database has built-in access + control, you will have to make the database accessable to the + "nobody" user. This means a malicious script could access and modify + the databse, even without a username and password. It's entirely + possible that a web spider could stumble across a database + adminisitror's web page, and drop all of your databases. You can + protect against this with Apache authorization, or you can design + your own access model using LDAP, .htaccess files, etc. and include + that code as part of your PHP scripts. + </simpara> + <simpara> + Often, once security is established to the point where the PHP user + (in this case, the apache user) has very little risk, it is + discovered that PHP now has been prevented from writing virus files + to user directories. Or perhaps it has been prevented from accessing + or changing a non-public database. It has equally been secured from + writing files that it should, or entering database transactions. </simpara> + <simpara> + A frequent security mistake made at this point is to allow apache + root permissions. + </simpara> + <simpara> + Escalating the Apache user's permissions to root is extremely + dangerous and may compromise the entire system, so sudo'ing, + chroot'ing ,or otherwise running as root should not be considered by + those who are not security professionals. + </simpara> </sect1> + + <sect1 id="security.filesystem"> + <title>Filesystem Security</title> + <simpara> + PHP is subject to the security built into most server systems with + respect to permissions on a file and directory basis. This allows + you to control which files in the filesystem may be read. Care + should be taken with any files which are world readable to ensure + that they are safe for reading by all users who have access to that + filesystem. + </simpara> + <simpara> + Since PHP was designed to allow user level access to the filesystem, + it's entirely possible to write a PHP script that will allow you + to read system files such as /etc/password, modify your ethernet + connections, send massive printer jobs out, etc. This has some + obvious implications, in that you need to ensure that the files + that you read from and write to are the appropriate ones. + </simpara> + <simpara> + Consider the following script, where a user indicates that they'd + like to delete a file in their home directory. This assumes a + situation where a PHP web interface is regularly used for file + management, so the Apache user is allowed to delete files in + the user home directories. + </simpara> + <para> + <example> + <title>Poor variable checking leads to....</title> + <programlisting role="php"> +<?php +// remove a file from the user's home directory +$username = $user_submitted_name; +$homedir = "/home/$username"; +$file_to_delete = "$userfile"; +unlink ($homedir/$userfile); +echo "$file_to_delete has been deleted!"; +?> + </programlisting> + </example> + Since the username is postable from a user form, they can submit + a username and file belonging to someone else, and delete files. + In this case, you'd want to use some other form of authentication. + Consider what could happen if the variables submitted were + "../etc/" and "passwd". The code would then effectively read: + <example> + <title>... A filesystem attack</title> + <programlisting role="php"> +<?php +// removes a file from anywhere on the hard drive that +// the PHP user has access to. If PHP has root access: +$username = "../etc/"; +$homedir = "/home/../etc/"; +$file_to_delete = "passwd"; +unlink ("/home/../etc/passwd"); +echo "/home/../etc/passwd has been deleted!"; +?> + </programlisting> + </example> + There are two important measures you should take to prevent these + issues. + <itemizedlist> + <listitem> + <simpara> + Only allow limited permissions to the PHP web user binary. + </simpara> + </listitem> + <listitem> + <simpara> + Check all variables which are submitted. + </simpara> + </listitem> + </itemizedlist> + Here is an improved script: + <example> + <title>More secure file name checking</title> + <programlisting role="php"> +<?php +// removes a file from the hard drive that +// the PHP user has access to. +$username = $HTTP_REMOTE_USER; // use an authentication mechanisim + +$homedir = "/home/$username"; + +$file_to_delete = basename("$userfile"); // strip paths +unlink ($homedir/$file_to_delete); + +$fp = fopen("/home/logging/filedelete.log","+a"); //log the deletion +$logstring = "$HTTP_REMOTE_USER $homedir $file_to_delete"; +fputs ($fp, $logstring); +fclose($fp); + +echo "$file_to_delete has been deleted!"; +?> + </programlisting> + </example> + Alternately, you may prefer to write a more customized check: + <example> + <title>More secure file name checking</title> + <programlisting role="php"> +<?php +$username = $HTTP_REMOTE_USER; +$homedir = "/home/$username"; + +if (!ereg('^[^./][^/]*$', $userfile)) + die('bad filename'); //die, do not process +//etc... +?> + </programlisting> + </example> + Depending on your operating system, there are a wide variety of files + which you should be concerned about, including device entries (/dev/ + or COM1), configuration files (/etc/ files and the .ini files), + well known file storage areas (/home/, My Documents), etc. For this + reason, it's usually easier to create a policy where you forbid + everything except for what you explicitly allow. + </para> + </sect1> + + <sect1 id="security.errors"> + <title>Error Reporting</title> + <simpara> + A standard attack tactic involves profiling a system by feeding + it improper data, and checking for the kinds, and contexts, of the + errors which are returned. This allows the system cracker to probe + for information about the server, to determine possible weaknesses. + </simpara> + <simpara> + The PHP errors which are normally returned can be quite helpful to a + developer who is trying to debug a script, indicating such things + as the function or file that failed, the PHP file it failed in, + and the line number which the failure occured in. This is all + information that can be exploited. + </simpara> + <simpara> + For example, the very style of error indicates a system is running + PHP. If the attacker was looking at an .html page, and wanted to + probe for the back-end (to look for known weaknesses in the system), + by feeding it the wrong data they may be able to determine that a + system was built with PHP. + </simpara> + <simpara> + A function error can indicate whether a system may be running a + specific database engine, or give clues as to how a web page or + programmed or designed. This allows for deeper investigation into + open database ports, or to look for specific bugs or weaknesses + in a web page. By feeding different pieces of bad data, for example, + an attacker can determine the order of authentication in a script, + (from the line number errors) as well as probe for exploits that + may be exploited in different locations in the script. + </simpara> + <simpara> + A filesystem or general PHP error can indicate what permissions + the webserver has, as well as the structure and organization of + files on the web server. + </simpara> + <simpara> + There are three major solutions to this issue. The first is to + scrutinize all functions, and attempt to compensate for the bulk + of the errors. The second is to disable error reporting entirely + on the running code. The third is to use PHP's custom error + handling functions to create your own error handler. Depending + on your security policy, you may find all three to be applicable + to your situation. + </simpara> + </sect1> + + <sect1 id="security.variables"> + <title>User Submitted Data</title> + <para> + The greatest weakness in many PHP programs is not inherent in the + language itself, but merely an issue of code not being written with + security in mind. For this reason, you should always take the time + to consider the implications of a given piece of code, to ascertain + the possible damage if an unexpected variable is submitted to it. + <example> + <title>Dangerous Variable Usage</title> + <programlisting role="php"> +<?php +// remove a file from the user's home directory... or maybe +// somebody else's? +unlink ($evil_var); + +// Write logging of their access... or maybe not? +fputs ($fp, $evil_var); + +// Execute something trivial.. or rm -rf *? +system ($evil_var); +exec ($evil_var); + +?> + </programlisting> + </example> + You should always carefully examine your code to make sure that any + variables being submitted from a web browser are being properly + checked, and ask yourself the following questions: + <itemizedlist> + <listitem> + <simpara> + Will this script only affect the intended files? + </simpara> + </listitem> + <listitem> + <simpara> + Can unusual or undesirable data be acted upon? + </simpara> + </listitem> + <listitem> + <simpara> + Can this script be used in unintended ways? + </simpara> + </listitem> + <listitem> + <simpara> + Can this be used in conjunction with other scripts in a negative + manner? + </simpara> + </listitem> + <listitem> + <simpara> + Will any transactions be adequately logged? + </simpara> + </listitem> + </itemizedlist> + By adequately asking these questions while writing the script, + rather than later, you prevent an unfortunate re-write when you + need to increase your security. By starting out with this mindset, + you won't guarantee the security of your system, but you can help + improve it. + </para> + <para> + You may also want to consider turning off register_globals, + magic_quotes, or other convenience settings which may confuse + you as to the validity, source, or value of a given variable. + Working with PHP in error_reporting(E_ALL) mode can also help warn + you about variables being used before they are checked or + initialized (so you can prevent unusual data from being + operated upon). + </para> + </sect1> + + <sect1 id="security.general"> + <title>General considerations</title> + <simpara> + A completely secure system is a virtual impossibility, so an + approach often used in the security profession is one of balancing + risk and usability. If every variable submitted by a user required + two forms of biometric validation (such as a retinal scan and a + fingerprint), you would have an extremely high level of + accountability. It would also take half an hour to fill out a fairly + complex form, which would tend to encourage users to find ways of + bypassing the security. + </simpara> + <simpara> + The best security is often inobtrusive enough to suit the + requirements without the user being prevented from accomplishing + their work, or over-burdening the code author with excessive + complexity. Indeed, some security attacks are merely exploits of + this kind of overly built security, which tends to erode over time. + </simpara> + <simpara> + A phrase worth remembering: A system is only as good as the weakest + link in a chain. If all transactions are heavily logged based on + time, location, transaction type, etc. but the user is only + verified based on a single cookie, the validity of tying the users + to the transaction log is severely weakened. + </simpara> + <simpara> + When testing, keep in mind that you will not be able to test all + possibilities for even the simplest of pages. The input you + may expect will be completely unrelated to the input given by + a disgruntled employee, a cracker with months of time on their + hands, or a housecat walking across the keyboard. This is why it's + best to look at the code from a logical perspective, to discern + where unexpected data can be introduced, and then follow how it is + modified, reduced, or amplified. + </simpara> + <simpara> + The Internet is filled with people trying to make a name for + themselves by breaking your code, crashing your site, posting + inappropriate content, and otherwise making your day interesting. + It doesn't matter if you have a small or large site, you are + a target by simply being online, by having a server that can be + connected to. Many cracking programs do not discern by size, they + simply trawl massive IP blocks looking for victims. Try not to + become one. + </simpara> + </sect1> </chapter> <!-- Keep this comment at the end of the file Index: phpdoc/pt_BR/chapters/install.xml diff -u phpdoc/pt_BR/chapters/install.xml:1.1 phpdoc/pt_BR/chapters/install.xml:1.2 --- phpdoc/pt_BR/chapters/install.xml:1.1 Sun Aug 20 12:54:06 2000 +++ phpdoc/pt_BR/chapters/install.xml Fri Jan 12 09:53:46 2001 @@ -1,7 +1,7 @@ <chapter id="installation"> <title>Installation</title> - <sect1 id="downloading"> + <sect1 id="install.downloading"> <title>Downloading the latest version</title> <simpara> The source code, and binary distributions for some platforms @@ -10,12 +10,16 @@ </simpara> </sect1> - <sect1 id="install-unix"> + <sect1 id="install.unix"> <title>Installation on UNIX systems</title> <para> This section will guide you through the configuration and - installation of PHP. Prerequisite knowledge and software: + installation of PHP. + </para> + + <para> + Prerequisite knowledge and software: <itemizedlist> <listitem> @@ -37,14 +41,62 @@ </itemizedlist> </para> - <sect2> - <title> - Quick Installation Instructions (Apache Module Version) - </title> + <para> + There are several ways to compile and configure PHP for the Unix + platform. The entire configuration process is controlled by the + use of commandline options to the <filename>configure</filename> + script. This page outlines the usage of the most common options, + but there are many others to play with. Check out the <link + linkend="install.configure">Complete list of configure + options</link> for an exhaustive rundown. + <itemizedlist> + <listitem> + <simpara> + As an <link linkend="install.unix.apache-module">Apache module</link> + </simpara> + </listitem> + <listitem> + <simpara> + As an <link linkend="install.unix.fhttpd">fhttpd module</link> + </simpara> + </listitem> + <listitem> + <simpara> + For use with <link + linkend="install.unix.otherhttpd">AOLServer, NSAPI, + phttpd, Pi3Web, Roxen, thttpd, or Zeus.</link> + </simpara> + </listitem> + <listitem> + <simpara> + As a <link linkend="install.unix.commandline">CGI executable</link> + </simpara> + </listitem> + </itemizedlist> + </para> + <sect2 id="install.unix.apache-module"> + <title>Apache Module</title> + + <para> + PHP can be compiled in a number of different ways as an Apache + module. First we show the quick instructions. Following this is + a list of various examples with explanations, to provide an + overview of how to accomplish certain things. + </para> + <para> - <informalexample> - <programlisting> + You can select arguments to add to the + <command>configure</command> on line 8 below from the <link + linkend="install.configure">Complete list of configure + options</link>. + </para> + + <example id="install.unix.apache-module.quick"> + <title> + Quick Installation Instructions (Apache Module Version) + </title> + <programlisting> 1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-x.x.x.tar.gz @@ -60,789 +112,2525 @@ for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a 13. make 14. make install + + Instead of this step you may prefer to simply copy the httpd binary + overtop of your existing binary. Make sure you shut down your + server first though. + +15. cd ../php-x.x.x +16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini + for PHP 4: cp php.ini-dist /usr/local/lib/php.ini + + You can edit your .ini file to set PHP options. If + you prefer this file in another location, use + --with-config-file-path=/path in step 8. + +17. Edit your httpd.conf or srm.conf file and add: + + For PHP 3: AddType application/x-httpd-php3 .php3 + For PHP 4: AddType application/x-httpd-php .php + + You can choose any extension you wish here. .php is simply the one + we suggest. You can even include .html . + + +18. Use your normal procedure for starting the Apache server. (You must + stop and restart the server, not just cause the server to reload by + use a HUP or USR1 signal.) + </programlisting> + </example> + + <para> + <informalexample> + <programlisting> +./configure --with-apxs --with-pgsql + </programlisting> + </informalexample> + </para> + <para> + This will create a <filename>libphp4.so</filename> shared + library that is loaded into Apache using a LoadModule line in + Apache's <filename>httpd.conf</filename> file. The PostgreSQL + support is embedded into this <filename>libphp4.so</filename> + library. + </para> + <para> + <informalexample> + <programlisting> +./configure --with-apxs --with-pgsql=shared + </programlisting> + </informalexample> + </para> + <para> + This will again create a <filename>libphp4.so</filename> shared + library for Apache, but it will also create a + <filename>pgsql.so</filename> shared library that is loaded into + PHP either by using the extension directive in + <filename>php.ini</filename> file or by loading it explicitly in + a script using the <function>dl</function> function. + </para> + <para> + <informalexample> + <programlisting> +./configure --with-apache=/path/to/apache_source --with-pgsql + </programlisting> + </informalexample> + </para> + <para> + This will create a <filename>libmodphp4.a</filename> library, a + <filename>mod_php4.c</filename> and some accompanying files and + copy this into the <literal>src/modules/php4</literal> directory + in the Apache source tree. Then you compile Apache using + <literal>--activate-module=src/modules/php4/libphp4.a</literal> + and the Apache build system will create + <filename>libphp4.a</filename> and link it statically into the + <filename>httpd</filename> binary. The PostgreSQL support is + included directly into this <filename>httpd</filename> binary, + so the final result here is a single <filename>httpd</filename> + binary that includes all of Apache and all of PHP. + </para> + <para> + <informalexample> + <programlisting> +./configure --with-apache=/path/to/apache_source --with-pgsql=shared + </programlisting> + </informalexample> + </para> + <para> + Same as before, except instead of including PostgreSQL support + directly into the final <filename>httpd</filename> you will get + a <filename>pgsql.so</filename> shared library that you can load + into PHP from either the <filename>php.ini</filename> file or + directly using <function>dl</function>. + </para> + <para> + When choosing to build PHP in different ways, you should consider + the advantages and drawbacks of each method. Building as a shared + object will mean that you can compile apache separately, and don't + have to recompile everything as you add to, or change, PHP. + Building PHP into apache (static method) means that PHP will + load and run faster. For more information, see the Apache + <ulink url="&url.apachedso;">webpage on DSO support</ulink>. + </para> + </sect2> + + <sect2 id="install.unix.fhttpd"> + <title>fhttpd Module</title> + <para> + To build PHP as an fhttpd module, answer "yes" to "Build as an + fhttpd module?" (the <option><link + linkend="install.configure.with-fhttpd"> + --with-fhttpd</link>=<replaceable>DIR</replaceable></option> + option to configure) and specify the fhttpd source base + directory. The default directory is <filename + class="directory">/usr/local/src/fhttpd</filename>. If you are + running fhttpd, building PHP as a module will give better + performance, more control and remote execution capability. + </para> + </sect2> + + <sect2 id="install.unix.otherhttpd"> + <title>Other web servers</title> + <para> + PHP can be built to support a large number of web servers. Please + see <link linkend="install.configure.servers">Server-related + options</link> for a full list of server-related configure + options. + </para> + </sect2> + + <sect2 id="install.unix.commandline"> + <title>CGI/Commandline version</title> + <para> + The default is to build PHP as a CGI program. This creates a + commandline interpreter, which can be used for CGI processing, or + for non-web-related PHP scripting. If you are running a web + server PHP has module support for, you should generally go for + that solution for performance reasons. However, the CGI version + enables Apache users to run different PHP-enabled pages under + different user-ids. Please make sure you read through the <link + linkend="security">Security chapter</link> if you are going to + run PHP as a CGI. + </para> + </sect2> + + <sect2 id="database-support-options"> + <title>Database Support Options</title> + <para> + PHP has native support for a number of databases (as well as + ODBC). To enable support for the various databases, options are + given to the <filename>configure</filename> script at compile + time. Read the <link linkend="install.configure.databases">list + of all database-related options</link> for more information. + </para> + + <para> + For a list of all possible options to + <filename>configure</filename>, please see the <link + linkend="install.configure">Complete list of configure + options</link>. + </para> + </sect2> + + <sect2 id="install.building"> + <title>Building</title> + <simpara> + When PHP is configured, you are ready to build the CGI executable + or the PHP library. The command <command>make</command> should + take care of this. If it fails and you can't figure out why, see + the <link linkend="install-problems">Problems section</link>. + </simpara> + </sect2> + + <sect2 id="install.testing"> + <title>Testing</title> + <simpara> + If you have built PHP as a CGI program, you may test your build + by typing <command>make test</command>. It is always a good idea + to test your build. This way you may catch a problem with PHP on + your platform early instead of having to struggle with it later. + </simpara> + </sect2> + + <sect2 id="install.benchmarking"> + <title>Benchmarking</title> + <simpara> + If you have built PHP 3 as a CGI program, you may benchmark your + build by typing <command>make bench</command>. Note that if safe + mode is on by default, the benchmark may not be able to finish if + it takes longer then the 30 seconds allowed. This is because the + <function>set_time_limit</function> can not be used in safe + mode. Use the <link + linkend="ini.max-execution-time">max_execution_time</link> + configuration setting to control this time for your own + scripts. <command>make bench</command> ignores the <link + linkend="configuration.file">configuration file</link>. + </simpara> + <note> + <simpara> + <command>make bench</command> is only available for PHP 3. + </simpara> + </note> + </sect2> + + </sect1> + + <sect1 id="install.configure"> + <title>Complete list of configure options</title> + + <note> + <para> + These are only used at compile time. If you want to alter PHP's + runtime configuration, please go to <link + linkend="configuration">Configuration</link>. + </para> + </note> + + <para> + The following is a complete list of options supported by the PHP 3 + and PHP 4 <filename>configure</filename> scripts, used when + compiling in Unix-like environments. Some are available in PHP 3, + some in PHP 4, and some in both, as noted. There are many options + the names of which have changed between PHP 3 and PHP 4, but which + accomplish the same things. These entries are cross-referenced to + each other, so if you have a problem getting your PHP 3-era + configuration options to work, check here to see whether the names + have changed. + </para> + + <itemizedlist> + <listitem> + <para> + <link linkend="install.configure.databases">Database</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.ecommerce">Ecommerce</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.graphics">Graphics</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.misc">Miscellaneous</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.networking">Networking</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.php">PHP Behaviour</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.servers">Server</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.text">Text and language</link> + </para> + </listitem> + <listitem> + <para> + <link linkend="install.configure.xml">XML</link> + </para> + </listitem> + </itemizedlist> + + <sect2 id="install.configure.databases"> + <title>Database</title> + + <variablelist> + <varlistentry id="install.configure.with-adabas"> + <term> + <parameter>--with-adabas[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Adabas D support. DIR is the Adabas base + install directory, defaults to /usr/local. + </para> + <para> + <ulink url="&url.adabas;">Adabas home page</ulink> + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-dba"> + <term> + <parameter>--enable-dba=shared</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Build DBA as a shared module + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-dbase"> + <term> + <parameter>--enable-dbase</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.with-dbase">--with-dbase</link> + instead. + </para> + <para> + PHP 4: Enable the bundled dbase library. No external libraries + are required. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-dbase"> + <term> + <parameter>--with-dbase</parameter> + </term> + <listitem> + <para> + PHP 3: Include the bundled dbase library. No external + libraries are required. + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.enable-dbase">--enable-dbase</link> + instead. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-db2"> + <term> + <parameter>--with-db2[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Berkeley DB2 support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-db3"> + <term> + <parameter>--with-db3[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Berkeley DB3 support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-dbm"> + <term> + <parameter>--with-dbm[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include DBM support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-dbmaker"> + <term> + <parameter>--with-dbmaker[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include DBMaker support. DIR is the DBMaker base install + directory, defaults to where the latest version of DBMaker is installed + (such as /home/dbmaker/3.6). + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-empress"> + <term> + <parameter>--with-empress[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Empress support. DIR is the Empress base install + directory, defaults to $EMPRESSPATH + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-filepro"> + <term> + <parameter>--enable-filepro</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.with-filepro">--with-filepro</link> + instead. + </para> + <para> + PHP 4: Enable the bundled read-only filePro support. No + external libraries are required. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-filepro"> + <term> + <parameter>--with-filepro</parameter> + </term> + <listitem> + <para> + PHP 3: Include the bundled read-only filePro support. No + external libraries are required. + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.enable-filepro">--enable-filepro</link> + instead. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-gdbm"> + <term> + <parameter>--with-gdbm[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include GDBM support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-hyperwave"> + <term> + <parameter>--with-hyperwave</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Hyperwave support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ibm-db2"> + <term> + <parameter>--with-ibm-db2[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include IBM DB2 support. DIR is the DB2 base + install directory, defaults to + <filename>/home/db2inst1/sqllib</filename>. + </para> + <para> + <ulink url="&url.ibmdb2;">IBM DB2 home page</ulink> + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-informix"> + <term> + <parameter>--with-informix[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Informix support. DIR is the Informix base install + directory, defaults to nothing. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ingres"> + <term> + <parameter>--with-ingres[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Ingres II support. DIR is the Ingres base directory + (default /II/ingres) + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-interbase"> + <term> + <parameter>--with-interbase[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include InterBase support. DIR is the InterBase base + install directory, which defaults to <filename>/usr/interbase</filename>. + </para> + <simpara> + <link linkend="ref.ibase">Interbase functions</link> + </simpara> + <simpara> + <ulink url="&url.ibase;">Interbase home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ldap"> + <term> + <parameter>--with-ldap[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include LDAP support. DIR is the LDAP base install + directory. Defaults to <filename>/usr</filename> and + <filename>/usr/local</filename> + </para> + <para> + PHP 4: Include LDAP support. DIR is the LDAP base install directory. + </para> + <simpara> + This provides <acronym>LDAP</acronym> (Lightweight Directory Access + Protocol support). The parameter is the LDAP base install + directory, defaults to <filename + class="directory">/usr/local/ldap</filename>. + </simpara> + <simpara> + More information about LDAP can be found in <ulink + url="&url.rfc;rfc1777.html">RFC1777</ulink> and + <ulink + url="&url.rfc;rfc1778.html">RFC1778</ulink>. + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-msql"> + <term> + <parameter>--with-msql[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enables mSQL support. The parameter to this + option is the mSQL install directory and defaults to <filename + class="directory">/usr/local/Hughes</filename>. This is the + default directory of the mSQL 2.0 distribution. + <command>configure</command> automatically detects which mSQL + version you are running and PHP supports both 1.0 and 2.0, but + if you compile PHP with mSQL 1.0, you can only access mSQL 1.0 + databases, and vice-versa. + </para> + <simpara> + See also <link linkend="ini.sect.msql">mSQL + Configuration</link> Directives in the <link + linkend="configuration.file">configuration file</link>. + </simpara> + <simpara> + <ulink url="&url.msql;">mSQL home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mysql"> + <term> + <parameter>--with-mysql[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include MySQL support. DIR is the MySQL base install directory, + defaults to searching through a number of common places for the MySQL + files. + </para> + <para> + PHP 4: Include MySQL support. DIR is the MySQL base directory. If + unspecified, the bundled MySQL library will be used. This + option is turned on by default. + </para> + <para> + See also <link linkend="ini.sect.mysql">MySQL + Configuration</link> Directives in the <link + linkend="configuration.file">configuration file</link>. + </para> + <para> + <ulink url="&url.mysql;">MySQL home page</ulink> + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ndbm"> + <term> + <parameter>--with-ndbm[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include NDBM support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-oci8"> + <term> + <parameter>--with-oci8[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Oracle-oci8 support. Default DIR is ORACLE_HOME. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-oracle"> + <term> + <parameter>--with-oracle[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include Oracle database support. DIR is Oracle's home directory, + defaults to $ORACLE_HOME. + </para> + <para> + PHP 4: Include Oracle-oci7 support. Default DIR is ORACLE_HOME. + </para> + <simpara> + Includes Oracle support. Has been tested and should be + working at least with Oracle versions 7.0 through 7.3. The + parameter is the <envar>ORACLE_HOME</envar> directory. You do + not have to specify this parameter if your Oracle environment + has been set up. + </simpara> + <simpara> + <ulink url="&url.oracle;">Oracle home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-pgsql"> + <term> + <parameter>--with-pgsql[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include PostgresSQL support. DIR is the PostgresSQL base + install directory, which defaults to + <filename>/usr/local/pgsql</filename>. + </para> + <para> + PHP 4: Include PostgreSQL support. DIR is the PostgreSQL base + install directory, which defaults to + <filename>/usr/local/pgsql</filename>. Set DIR to shared to + build as a dl, or shared,DIR to build as a dl and still specify + DIR. + </para> + <simpara> + See also <link linkend="ini.sect.pgsql">Postgres + Configuration</link> Directives in the <link + linkend="configuration.file">configuration file</link>. + </simpara> + <simpara> + <ulink url="&url.pgsql;">PostgreSQL home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-solid"> + <term> + <parameter>--with-solid[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Solid support. DIR is the Solid base install + directory, defaults to /usr/local/solid + </para> + <simpara> + <ulink url="&url.solid;">Solid home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-sybase-ct"> + <term> + <parameter>--with-sybase-ct[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Sybase-CT support. DIR is the Sybase home + directory, defaults to /home/sybase. + </para> + <simpara> + See also <link linkend="ini.sect.sybct">Sybase-CT + Configuration</link> Directives in the <link + linkend="configuration.file">configuration + file</link>. + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-sybase"> + <term> + <parameter>--with-sybase[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Sybase-DB support. DIR is the Sybase home + directory, which defaults to <filename>/home/sybase</filename>. + </para> + <simpara> + See also <link linkend="ini.sect.sybase">Sybase + Configuration</link> Directives in the <link + linkend="configuration.file">configuration file</link>. + </simpara> + <simpara> + <ulink url="&url.sybase;">Sybase home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-openlink"> + <term> + <parameter>--with-openlink[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include OpenLink ODBC support. DIR is the OpenLink base + install directory, defaults to /usr/local/openlink. + </para> + <simpara> + <ulink url="&url.openlink;">OpenLink Software's home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-iodbc"> + <term> + <parameter>--with-iodbc[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include iODBC support. DIR is the iODBC base install + directory, defaults to <filename>/usr/local</filename>. + </para> + <para> + This feature was first developed for iODBC Driver Manager, a + freely redistributable ODBC driver manager which runs under + many flavors of UNIX. + </para> + <simpara> + <ulink url="&url.freeodbc;">FreeODBC home page</ulink> + or <ulink url="&url.iodbc;">iODBC home page</ulink> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-custom-odbc"> + <term> + <parameter>--with-custom-odbc[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Includes support for an arbitrary custom ODBC + library. The parameter is the base directory and defaults to + <filename class="directory">/usr/local</filename>. + </para> + <simpara> + This option implies that you have defined CUSTOM_ODBC_LIBS + when you run the configure script. You also must have a valid + odbc.h header somewhere in your include path. If you don't + have one, create it and include your specific header from + there. Your header may also require some extra definitions, + particularly when it is multiplatform. Define them in + CFLAGS. + </simpara> + <simpara> + For example, you can use Sybase SQL Anywhere on QNX as + following: + <literal> + CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib + -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50 + </literal> + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-unified-odbc"> + <term> + <parameter>--disable-unified-odbc</parameter> + </term> + <listitem> + <para> + PHP 3: Disable unified ODBC support. Only applicable if iODBC, Adabas, + Solid, Velocis or a custom ODBC interface is enabled. + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + <simpara> + The Unified ODBC module, which is a common interface to all + the databases with ODBC-based interfaces, such as Solid, IBM + DB2 and Adabas D. It also works for normal ODBC libraries. + Has been tested with iODBC, Solid, Adabas D, IBM DB2 and + Sybase SQL Anywhere. Requires that one (and only one) of these + modules or the Velocis module is enabled, or a custom ODBC + library specified. This option is only applicable if one of + the following options is used: <link + linkend="install.configure.with-iodbc">--with-iodbc</link>, + <link + linkend="install.configure.with-solid">--with-solid</link>, + <link + linkend="install.configure.with-ibm-db2">--with-ibm-db2</link>, + <link + linkend="install.configure.with-adabas">--with-adabas</link>, + <link + linkend="install.configure.with-velocis">--with-velocis</link>, + or <link + linkend="install.configure.with-custom-odbc">--with-custom-odbc</link>. + </simpara> + <simpara> + See also <link linkend="ini.sect.uodbc">Unified ODBC + Configuration</link> Directives in the <link + linkend="configuration.file">configuration + file</link>. + </simpara> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-unixODBC"> + <term> + <parameter>--with-unixODBC[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include unixODBC support. DIR is the unixODBC base install + directory, defaults to /usr/local. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-velocis"> + <term> + <parameter>--with-velocis[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include Velocis support. DIR is the Velocis base install + directory, defaults to /usr/local/velocis. + </para> + <simpara> + <ulink url="&url.velocis;">Velocis home page</ulink> + </simpara> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="install.configure.ecommerce"> + <title>Ecommerce</title> + + <variablelist> + <varlistentry id="install.configure.with-ccvs"> + <term> + <parameter>--with-ccvs[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Compile CCVS support into PHP4. Please specify your CCVS base + install directory as DIR. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mck"> + <term> + <parameter>--with-mck[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include Cybercash MCK support. DIR is the cybercash mck + build directory, which defaults to + <filename>/usr/src/mck-3.2.0.3-linux</filename>. For help, look + in <filename>extra/cyberlib</filename>. + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.with-cybercash">--with-cybercash</link> + instead. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-cybercash"> + <term> + <parameter>--with-cybercash[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.with-mck">--with-mck</link> + instead. + </para> + <para> + PHP 4: Include CyberCash support. DIR is the CyberCash MCK install + directory. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-pfpro"> + <term> + <parameter>--with-pfpro[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Verisign Payflow Pro support + </para> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="install.configure.graphics"> + <title>Graphics</title> + + <variablelist> + <varlistentry id="install.configure.enable-freetype-4bit-antialias-hack"> + <term> + <parameter>--enable-freetype-4bit-antialias-hack</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include support for FreeType2 (experimental). + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-gd"> + <term> + <parameter>--with-gd[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include GD support (DIR is GD's install dir). + </para> + <para> + PHP 4: Include GD support (DIR is GD's install dir). Set DIR to shared + to build as a dl, or shared,DIR to build as a dl and still specify DIR. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.without-gd"> + <term> + <parameter>--without-gd</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Disable GD support. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-imagick"> + <term> + <parameter>--with-imagick[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include ImageMagick support. DIR is the install + directory, and if left out, PHP will try to find it on its + own. [experimental] + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-jpeg-dir"> + <term> + <parameter>--with-jpeg-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: jpeg dir for pdflib 2.0 + </para> + <para> + PHP 4: jpeg dir for pdflib 3.x + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-png-dir"> + <term> + <parameter>--with-png-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: png dir for pdflib 3.x + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-t1lib"> + <term> + <parameter>--enable-t1lib</parameter> + </term> + <listitem> + <para> + PHP 3: Enable t1lib support. + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.with-t1lib">--with-t1lib</link> + instead. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-t1lib"> + <term> + <parameter>--with-t1lib[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.enable-t1lib">--enable-t1lib</link> + instead. + </para> + <para> + PHP 4: Include T1lib support. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-tiff-dir"> + <term> + <parameter>--with-tiff-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: tiff dir for pdflib 2.0 + </para> + <para> + PHP 4: tiff dir for pdflib 3.x + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ttf"> + <term> + <parameter>--with-ttf[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include FreeType support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-xpm-dir"> + <term> + <parameter>--with-xpm-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: xpm dir for gd-1.8+ + </para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="install.configure.misc"> + <title>Miscellaneous</title> + + <para> + These are being classified over time, where appropriate. + </para> + + <variablelist> + <varlistentry id="install.configure.disable-bcmath"> + <term> + <parameter>--disable-bcmath</parameter> + </term> + <listitem> + <para> + PHP 3: Compile without BC arbitrary precision math + functions. These functions allow you to operate with numbers + outside of the ranges allowed by regular integers and floats; + see <link linkend="ref.bc">BCMath Arbitrary Precision + Mathematics Functions</link> for more information. + </para> + <para> + PHP 4: Option not available; bcmath is not compiled in by + default. Use <link + linkend="install.configure.enable-bcmath">--enable-bcmath</link> + to compile it in. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-display-source"> + <term> + <parameter>--disable-display-source</parameter> + </term> + <listitem> + <para> + PHP 3: Compile without displaying source support + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-libtool-lock"> + <term> + <parameter>--disable-libtool-lock</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: avoid locking (might break parallel builds) + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-pear"> + <term> + <parameter>--disable-pear</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Do not install PEAR + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-pic"> + <term> + <parameter>--disable-pic</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Disable PIC for shared objects + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-posix"> + <term> + <parameter>--disable-posix</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3; use <link + linkend="install.configure.without-posix">--without-posix</link> + instead. + </para> + <para> + PHP 4: Disable POSIX-like functions + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-rpath"> + <term> + <parameter>--disable-rpath</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Disable passing additional runtime library search paths + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-session"> + <term> + <parameter>--disable-session</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Disable session support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-bcmath"> + <term> + <parameter>--enable-bcmath</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3; bcmath is compiled in + by default. Use <link + linkend="install.configure.disable-bcmath">--disable-bcmath</link> + to disable it. + </para> + <para> + PHP 4: Compile with bc style precision math functions. Read + README-BCMATH for instructions on how to get this module + installed. These functions allow you to operate with numbers + outside of the ranges allowed by regular integers and floats; + see <link linkend="ref.bc">BCMath Arbitrary Precision + Mathematics Functions</link> for more information. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-c9x-inline"> + <term> + <parameter>--enable-c9x-inline</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable C9x-inline semantics + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-calendar"> + <term> + <parameter>--enable-calendar</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable support for calendar conversion + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-debug"> + <term> + <parameter>--enable-debug</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Compile with debugging symbols. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-debugger"> + <term> + <parameter>--enable-debugger</parameter> + </term> + <listitem> + <para> + PHP 3: Compile with remote debugging functions + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-discard-path"> + <term> + <parameter>--enable-discard-path</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: If this is enabled, the PHP CGI binary can safely be + placed outside of the web tree and people will not be able to circumvent + .htaccess security. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-dmalloc"> + <term> + <parameter>--enable-dmalloc</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable dmalloc + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-exif"> + <term> + <parameter>--enable-exif</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable exif support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-experimental-zts"> + <term> + <parameter>--enable-experimental-zts</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: This will most likely break your build + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-fast-install"> + <term> + <parameter>--enable-fast-install[=PKGS]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: optimize for fast installation [default=yes] + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-force-cgi-redirect"> + <term> + <parameter>--enable-force-cgi-redirect</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable the security check for internal server redirects. + You should use this if you are running the CGI version with Apache. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-inline-optimization"> + <term> + <parameter>--enable-inline-optimization</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: If you have much memory and are using gcc, you might try this. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-libgcc"> + <term> + <parameter>--enable-libgcc</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable explicitly linking against libgcc + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-maintainer-mode"> + <term> + <parameter>--enable-maintainer-mode</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-memory-limit"> + <term> + <parameter>--enable-memory-limit</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Compile with memory limit support. [default=no] + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-safe-mode"> + <term> + <parameter>--enable-safe-mode</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable safe mode by default. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-satellite"> + <term> + <parameter>--enable-satellite</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable CORBA support via Satellite (Requires ORBit) + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-shared"> + <term> + <parameter>--enable-shared[=PKGS]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: build shared libraries [default=yes] + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-sigchild"> + <term> + <parameter>--enable-sigchild</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable PHP's own SIGCHLD handler. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-static"> + <term> + <parameter>--enable-static[=PKGS]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: build static libraries [default=yes] + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-sysvsem"> + <term> + <parameter>--enable-sysvsem</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable System V semaphore support. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-sysvshm"> + <term> + <parameter>--enable-sysvshm</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable the System V shared memory support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-trans-sid"> + <term> + <parameter>--enable-trans-sid</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable transparent session id propagation + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-cdb"> + <term> + <parameter>--with-cdb[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include CDB support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-config-file-path"> + <term> + <parameter>--with-config-file-path=PATH</parameter> + </term> + <listitem> + <para> + PHP 3: Sets the path in which to look for php3.ini. Defaults to + <filename>/usr/local/lib</filename> + </para> + <para> + PHP 4: Sets the path in which to look for <filename>php.ini</filename>. + Defaults to <filename>/usr/local/lib</filename> + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-cpdflib"> + <term> + <parameter>--with-cpdflib[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include ClibPDF support. DIR is the ClibPDF install directory, + defaults to /usr/local. + </para> + <para> + PHP 4: Include cpdflib support (requires cpdflib >= 2). DIR is the + cpdfllib install directory, defaults to /usr. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-esoob"> + <term> + <parameter>--with-esoob[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Easysoft OOB support. DIR is the OOB base install + directory, defaults to /usr/local/easysoft/oob/client. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-exec-dir"> + <term> + <parameter>--with-exec-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Only allow executables in DIR when in safe mode defaults + to /usr/local/php/bin + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-fdftk"> + <term> + <parameter>--with-fdftk[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include fdftk support. DIR is the fdftk install directory, + defaults to /usr/local. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-gnu-ld"> + <term> + <parameter>--with-gnu-ld</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: assume the C compiler uses GNU ld [default=no] + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-icap"> + <term> + <parameter>--with-icap[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include ICAP support. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-imap"> + <term> + <parameter>--with-imap[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include IMAP support. DIR is the IMAP include and + c-client.a directory. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-imsp"> + <term> + <parameter>--with-imsp[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include IMSP support (DIR is IMSP's include dir and libimsp.a + dir). + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-java"> + <term> + <parameter>--with-java[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Java support. DIR is the base install directory for the + JDK. This extension can only be built as a shared dl. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-kerberos"> + <term> + <parameter>--with-kerberos[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Kerberos support in IMAP. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mcal"> + <term> + <parameter>--with-mcal[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include MCAL support. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mcrypt"> + <term> + <parameter>--with-mcrypt[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include mcrypt support. DIR is the mcrypt install + directory. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mhash"> + <term> + <parameter>--with-mhash[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include mhash support. DIR is the mhash install directory. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mm"> + <term> + <parameter>--with-mm[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include mm support for session storage + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mod_charset"> + <term> + <parameter>--with-mod_charset</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable transfer tables for mod_charset (Rus Apache). + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-pdflib"> + <term> + <parameter>--with-pdflib[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include pdflib support (tested with 0.6 and 2.0). DIR is + the pdflib install directory, which defaults to + <filename>/usr/local</filename>. + </para> + <para> + PHP 4: Include pdflib 3.x support. DIR is the pdflib install + directory, which defaults to <filename>/usr/local</filename>. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-readline"> + <term> + <parameter>--with-readline[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include readline support. DIR is the readline install directory. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-regex"> + <term> + <parameter>--with-regex=TYPE</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: regex library type: system, apache, php + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-servlet"> + <term> + <parameter>--with-servlet[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include servlet support. DIR is the base install + directory for the JSDK. This SAPI requires that the Java + extension be built as a shared dl. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-swf"> + <term> + <parameter>--with-swf[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include swf support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-system-regex"> + <term> + <parameter>--with-system-regex</parameter> + </term> + <listitem> + <para> + PHP 3: Do not use the bundled regex library + </para> + <para> + PHP 4: (deprecated) Use system regex library + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-tsrm-pth"> + <term> + <parameter>--with-tsrm-pth[=pth-config]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Use GNU Pth. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-tsrm-pthreads"> + <term> + <parameter>--with-tsrm-pthreads</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Use POSIX threads (default) + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-x"> + <term> + <parameter>--with-x</parameter> + </term> + <listitem> + <para> + PHP 3: use the X Window System + </para> + <para> + PHP 4: Option not available in PHP 4 + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-zlib-dir"> + <term> + <parameter>--with-zlib-dir[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: zlib dir for pdflib 2.0 or include zlib support + </para> + <para> + PHP 4: zlib dir for pdflib 3.x or include zlib support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-zlib"> + <term> + <parameter>--with-zlib[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include zlib support (requires zlib >= 1.0.9). DIR is + the zlib install directory, defaults to /usr. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.without-pcre-regex"> + <term> + <parameter>--without-pcre-regex</parameter> + </term> + <listitem> + <para> + PHP 3: Don't include Perl Compatible Regular Expressions support + </para> + <para> + PHP 4: Do not include Perl Compatible Regular Expressions support. Use + --with-pcre-regex=DIR to specify DIR where PCRE's include and library + files are located, if not using bundled library. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.without-posix"> + <term> + <parameter>--without-posix</parameter> + </term> + <listitem> + <para> + PHP 3: Don't include POSIX functions + </para> + <para> + PHP 4: Option not available in PHP 4; use <link + linkend="install.configure.disable-posix">--disable-posix</link> + instead. + </para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="install.configure.networking"> + <title>Networking</title> + + <variablelist> + <varlistentry id="install.configure.with-curl"> + <term> + <parameter>--with-curl[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include CURL support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-ftp"> + <term> + <parameter>--enable-ftp</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.with-ftp">--with-ftp</link> + instead. + </para> + <para> + PHP 4: Enable FTP support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-ftp"> + <term> + <parameter>--with-ftp</parameter> + </term> + <listitem> + <para> + PHP 3: Include FTP support. + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.enable-ftp">--enable-ftp</link> + instead + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-url-fopen-wrapper"> + <term> + <parameter>--disable-url-fopen-wrapper</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Disable the URL-aware fopen wrapper that allows accessing + files via http or ftp. + </para> + <warning> + <para> + This switch is only available for PHP versions up to +4.0.3, newer + versions provide an INI parameter called + <parameter>allow_url_fopen</parameter> instead of forcing you to + decide upon this feature at compile time. + </para> + </warning> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-mod-dav"> + <term> + <parameter>--with-mod-dav=DIR</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include DAV support through Apache's mod_dav, DIR is + mod_dav's installation directory (Apache module version only!) + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-openssl"> + <term> + <parameter>--with-openssl[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include OpenSSL support in SNMP. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-snmp"> + <term> + <parameter>--with-snmp[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include SNMP support. DIR is the SNMP base install + directory, defaults to searching through a number of common locations + for the snmp install. Set DIR to shared to build as a dl, or shared,DIR + to build as a dl and still specify DIR. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-ucd-snmp-hack"> + <term> + <parameter>--enable-ucd-snmp-hack</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable UCD SNMP hack + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-sockets"> + <term> + <parameter>--enable-sockets</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable sockets support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-yaz"> + <term> + <parameter>--with-yaz[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include YAZ support (ANSI/NISO Z39.50). DIR is the YAZ bin + install directory + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-yp"> + <term> + <parameter>--enable-yp</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available; use <link + linkend="install.configure.with-yp">--with-yp</link> + instead. + </para> + <para> + PHP 4: Include YP support + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-yp"> + <term> + <parameter>--with-yp</parameter> + </term> + <listitem> + <para> + PHP 3: Include YP support + </para> + <para> + PHP 4: Option not available; use <link + linkend="install.configure.enable-yp">--enable-yp</link> + instead. + </para> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="install.configure.php"> + <title>PHP Behaviour</title> + + <variablelist> + <varlistentry id="install.configure.enable-magic-quotes"> + <term> + <parameter>--enable-magic-quotes</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Enable magic quotes by default. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.disable-short-tags"> + <term> + <parameter>--disable-short-tags</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Disable the short-form <? start tag by default. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-track-vars"> + <term> + <parameter>--enable-track-vars</parameter> + </term> + <listitem> + <para> + PHP 3: Enable GET/POST/Cookie track variables by default. + </para> + <para> + PHP 4: Option not available in PHP 4; as of PHP 4.0.2, + track_vars is always on. + </para> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + + <sect2 id="install.configure.servers"> + <title>Server</title> + + <variablelist> + <varlistentry id="install.configure.with-aolserver-src"> + <term> + <parameter>--with-aolserver-src=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Specify path to the source distribution of AOLserver + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-aolserver"> + <term> + <parameter>--with-aolserver=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Specify path to the installed AOLserver + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-apache"> + <term> + <parameter>--with-apache[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Build Apache module. DIR is the top-level Apache build + directory, defaults to /usr/local/etc/httpd. + </para> + </listitem> + </varlistentry> - Instead of this step you may prefer to simply copy the httpd binary - overtop of your existing binary. Make sure you shut down your - server first though. + <varlistentry id="install.configure.with-apxs"> + <term> + <parameter>--with-apxs[=FILE]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Build shared Apache module. FILE is the optional pathname + to the Apache apxs tool; defaults to apxs. + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.enable-versioning"> + <term> + <parameter>--enable-versioning</parameter> + </term> + <listitem> + <para> + PHP 3: Take advantage of versioning and scoping Provided by Solaris 2.x + and Linux + </para> + <para> + PHP 4: Export only required symbols. See INSTALL for more information + </para> + </listitem> + </varlistentry> -15. cd ../php-x.x.x -16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini - for PHP 4: cp php.ini-dist /usr/local/lib/php.ini + <varlistentry id="install.configure.with-fhttpd"> + <term> + <parameter>--with-fhttpd[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Build fhttpd module. DIR is the fhttpd sources directory, + defaults to /usr/local/src/fhttpd. + </para> + </listitem> + </varlistentry> - You can edit your .ini file to set PHP options. If - you prefer this file in another location, use - --with-config-file-path=/path in step 8. + <varlistentry id="install.configure.with-nsapi"> + <term> + <parameter>--with-nsapi=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Specify path to the installed Netscape + </para> + </listitem> + </varlistentry> -17. Edit your httpd.conf or srm.conf file and add: - - For PHP 3: AddType application/x-httpd-php3 .php3 - For PHP 4: AddType application/x-httpd-php .php - - You can choose any extension you wish here. .php is simply the one - we suggest. + <varlistentry id="install.configure.with-phttpd"> + <term> + <parameter>--with-phttpd=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: + </para> + </listitem> + </varlistentry> -18. Use your normal procedure for starting the Apache server. (You must - stop and restart the server, not just cause the server to reload by - use a HUP or USR1 signal.) - </programlisting> - </informalexample> - </para> + <varlistentry id="install.configure.with-pi3web"> + <term> + <parameter>--with-pi3web=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Build PHP as a module for use with Pi3Web. + </para> + </listitem> + </varlistentry> - </sect2> + <varlistentry id="install.configure.with-roxen"> + <term> + <parameter>--with-roxen=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Build PHP as a Pike module. DIR is the base Roxen directory, + normally /usr/local/roxen/server. + </para> + </listitem> + </varlistentry> - <sect2 id="with-apache"> - <title>Apache Module</title> - <para> - PHP can be compiled in a number of different ways. Here is a - quick summary: - <informalexample> - <programlisting> -./configure --with-apxs --with-pgsql - </programlisting> - </informalexample> - </para> - <para> - This will create a <filename>libphp4.so</filename> shared library - that is loaded into Apache using a LoadModule line in Apache's - <filename>httpd.conf</filename> file. The PostgreSQL support is - embedded into this <filename>libphp4.so</filename> library. - </para> - <para> - <informalexample> - <programlisting> -./configure --with-apxs --with-pgsql=shared - </programlisting> - </informalexample> - </para> - <para> - This will again create a <filename>libphp4.so</filename> shared - library for Apache, but it will also create a - <filename>pgsql.so</filename> shared library that is loaded into - PHP either by using the extension directive in - <filename>php.ini</filename> file or by loading it explicitly in - a script using the <function>dl</function> function. - </para> - <para> - <informalexample> - <programlisting> -./configure --with-apache=/path/to/apache_source --with-pgsql - </programlisting> - </informalexample> - </para> - <para> - This will create a <filename>libmodphp4.a</filename> library, a - <filename>mod_php4.c</filename> and some accompanying files and - copy this into the <literal>src/modules/php4</literal> directory - in the Apache source tree. Then you compile Apache using - <literal>--activate-module=src/modules/php4/libphp4.a</literal> - and the Apache build system will create - <filename>libphp4.a</filename> and link it statically into the - <filename>httpd</filename> binary. The PostgreSQL support is - included directly into this <filename>httpd</filename> binary, so - the final result here is a single <filename>httpd</filename> - binary that includes all of Apache and all of PHP. - </para> - <para> - <informalexample> - <programlisting> -./configure --with-apache=/path/to/apache_source --with-pgsql=shared - </programlisting> - </informalexample> - </para> - <para> - Same as before, except instead of including PostgreSQL support - directly into the final <filename>httpd</filename> you will get a - <filename>pgsql.so</filename> shared library that you can load - into PHP from eihter the <filename>php.ini</filename> file or - directly using <function>dl</function>. - </para> - </sect2> + <varlistentry id="install.configure.enable-roxen-zts"> + <term> + <parameter>--enable-roxen-zts</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Build the Roxen module using Zend Thread Safety. + </para> + </listitem> + </varlistentry> - <sect2 id="with-fhttpd"> - <title>fhttpd Module</title> + <varlistentry id="install.configure.with-thttpd"> + <term> + <parameter>--with-thttpd=SRCDIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: + </para> + </listitem> + </varlistentry> - <para> - To build PHP as an fhttpd module, answer "yes" to "Build as an - fhttpd module?" (the <option><link linkend="with-fhttpd"> - --with-fhttpd</link>=<replaceable>DIR</replaceable></option> - option to configure) and specify the fhttpd source base - directory. The default directory is <filename - class="directory">/usr/local/src/fhttpd</filename>. If you are - running fhttpd, building PHP as a module will give better - performance, more control and remote execution - capability. - </para> - </sect2> - - <sect2 id="install-cgi"> - <title>CGI version</title> - <para> - The default is to build PHP as a CGI program. If you are - running a web server PHP has module support for, you should - generally go for that solution for performance reasons. However, - the CGI version enables Apache users to run different - PHP-enabled pages under different user-ids. Please make sure - you read through the <link linkend="security">Security - chapter</link> if you are going to run PHP as a CGI. - </para> + <varlistentry id="install.configure.with-zeus"> + <term> + <parameter>--with-zeus=DIR</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Build PHP as an ISAPI module for use with Zeus. + </para> + </listitem> + </varlistentry> + </variablelist> + </sect2> - <sect2 id="database-support-options"> - <title>Database Support Options</title> - <para> - PHP has native support for a number of databases (as well as - ODBC): - </para> + <sect2 id="install.configure.text"> + <title>Text and language</title> + + <variablelist> + <varlistentry id="install.configure.with-aspell"> + <term> + <parameter>--with-aspell[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include ASPELL support. + </para> + </listitem> + </varlistentry> - <sect3 id="with-adabas"> - <title>Adabas D</title> - <synopsis> - <option>--with-adabas<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Enables Adabas D support. The parameter is the Adabas D - install directory and defaults to <filename - class="directory">/usr/local/adabasd</filename>. - </simpara> - <simpara> - <ulink url="&url.adabas;">Adabas home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-dbase"> - <title>dBase</title> - <synopsis> - <option>--with-dbase</option> - </synopsis> - <simpara> - Enables the bundled DBase support. No external libraries are - required. - </simpara> - </sect3> - - <sect3 id="with-filepro"> - <title>filePro</title> - <synopsis> - <option>--with-filepro</option> - </synopsis> - <simpara> - Enables the bundled read-only filePro support. No external - libraries are required. - </simpara> - </sect3> - - <sect3 id="with-ibm-db2"> - <title>IBM DB2</title> - <synopsis> - <option>--with-ibm-db2<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Enables IBM DB2 support. The parameter to this option is the - DB2 base install directory and defaults to - <filename class="directory">/home/db2inst1/sqllib</filename>. - </simpara> - <simpara> - <ulink url="&url.ibmdb2;">IBM DB2 home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-msql"> - <title>mSQL</title> - <synopsis> - <option>--with-msql<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Enables mSQL support. The parameter to this option is the mSQL - install directory and defaults to <filename - class="directory">/usr/local/Hughes</filename>. This is the - default directory of the mSQL 2.0 distribution. - <command>configure</command> automatically detects which mSQL - version you are running and PHP supports both 1.0 and 2.0, but - if you compile PHP with mSQL 1.0, you can only access mSQL 1.0 - databases, and vice-versa. - </simpara> - <simpara> - See also <link linkend="ini.sect.msql">mSQL Configuration</link> - Directives in the <link linkend="configuration.file">configuration - file</link>. - </simpara> - <simpara> - <ulink url="&url.msql;">mSQL home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-mysql"> - <title>MySQL</title> - <synopsis> - <option>--with-mysql<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Enables MySQL support. The parameter to this option is the - MySQL install directory and defaults to <filename - class="directory">/usr/local</filename>. This is the default - installation directory of the MySQL distribution. - </simpara> - <simpara> - See also <link linkend="ini.sect.mysql">MySQL - Configuration</link> Directives in the <link - linkend="configuration.file">configuration file</link>. - </simpara> - <simpara> - <ulink url="&url.mysql;">MySQL home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-iodbc"> - <title>iODBC</title> - <synopsis> - <option>--with-iodbc<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes iODBC support. This feature was first developed for - iODBC Driver Manager, a freely redistributable ODBC driver - manager which runs under many flavors of UNIX. The parameter to - this option is the iODBC installation directory and defaults to - <filename class="directory">/usr/local</filename>.</simpara> - <simpara> - <ulink url="&url.freeodbc;">FreeODBC home page</ulink> - or <ulink url="&url.iodbc;">iODBC home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-openlink"> - <title>OpenLink ODBC</title> - <synopsis> - <option>--with-openlink<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes OpenLink ODBC support. The parameter to this option is - the OpenLink ODBC installation directory and defaults to - <filename class="directory">/usr/local/openlink</filename>. - </simpara> - <simpara> - <ulink url="&url.openlink;">OpenLink Software's home - page</ulink> - </simpara> - </sect3> - - <sect3 id="with-oracle"> - <title>Oracle</title> - <synopsis> - <option>--with-oracle<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes Oracle support. Has been tested and should be working - at least with Oracle versions 7.0 through 7.3. The parameter is - the <envar>ORACLE_HOME</envar> directory. You do not have to - specify this parameter if your Oracle environment has been set - up.</simpara> - <simpara> - <ulink url="&url.oracle;">Oracle home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-pgsql"> - <title>PostgreSQL</title> - <synopsis> - <option>--with-pgsql<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes PostgreSQL support. The parameter is the PostgreSQL - base install directory and defaults to <filename - class="directory">/usr/local/pgsql</filename>. - </simpara> - <simpara> - See also <link linkend="ini.sect.pgsql">Postgres - Configuration</link> Directives in the <link - linkend="configuration.file">configuration file</link>. - </simpara> - <simpara> - <ulink url="&url.pgsql;">PostgreSQL home - page</ulink> - </simpara> - </sect3> - - <sect3 id="with-solid"> - <title>Solid</title> - <synopsis> - <option>--with-solid<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes Solid support. The parameter is the Solid install - directory and defaults to <filename - class="directory">/usr/local/solid</filename>. - </simpara> - <simpara> - <ulink url="&url.solid;">Solid home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-sybase"> - <title>Sybase</title> - <synopsis> - <option>--with-sybase<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes Sybase support. The parameter is the Sybase install - directory and defaults to <filename - class="directory">/home/sybase</filename>. - </simpara> - <simpara> - See also <link linkend="ini.sect.sybase">Sybase - Configuration</link> Directives in the <link - linkend="configuration.file">configuration file</link>. - </simpara> - <simpara> - <ulink url="&url.sybase;">Sybase home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-sybase-ct"> - <title>Sybase-CT</title> - <synopsis> - <option>--with-sybase-ct<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes Sybase-CT support. The parameter is the Sybase-CT - install directory and defaults to <filename - class="directory">/home/sybase</filename>. - </simpara> - <simpara> - See also <link linkend="ini.sect.sybct">Sybase-CT - Configuration</link> Directives in the <link - linkend="configuration.file">configuration - file</link>. - </simpara> - </sect3> - - <sect3 id="with-velocis"> - <title>Velocis</title> - <synopsis> - <option>--with-velocis<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes Velocis support. The parameter is the Velocis install - directory and defaults to <filename - class="directory">/usr/local/velocis</filename>. - </simpara> - <simpara> - <ulink url="&url.velocis;">Velocis home page</ulink> - </simpara> - </sect3> - - <sect3 id="with-custom-odbc"> - <title>A custom ODBC library</title> - <synopsis> - <option>--with-custom-odbc<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes support for an arbitrary custom ODBC library. The - parameter is the base directory and defaults to <filename - class="directory">/usr/local</filename>. - </simpara> - <simpara> - This option implies that you have defined CUSTOM_ODBC_LIBS when - you run the configure script. You also must have a valid odbc.h - header somewhere in your include path. If you don't have one, - create it and include your specific header from there. Your - header may also require some extra definitions, particularly - when it is multiplatform. Define them in CFLAGS.</simpara> - <simpara> - For example, you can use Sybase SQL Anywhere on QNX as - following: - <literal> - CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib - -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50 - </literal> - </simpara> - </sect3> - - <sect3 id="disable-unified-odbc"> - <title>Unified ODBC</title> - <synopsis> - <option>--disable-unified-odbc</option> - </synopsis> - <simpara> - Disables the Unified ODBC module, which is a common interface to - all the databases with ODBC-based interfaces, such as Solid, - IBM DB2 and Adabas D. It also works for normal ODBC libraries. - Has been tested with iODBC, Solid, Adabas D, IBM DB2 and Sybase SQL - Anywhere. Requires that one (and only one) of these modules or - the Velocis module is enabled, or a custom ODBC library - specified. This option is only applicable if one of the - following options is used: <link - linkend="with-iodbc">--with-iodbc</link>, <link - linkend="with-solid">--with-solid</link>, <link - linkend="with-ibm-db2">--with-ibm-db2</link>, <link - linkend="with-adabas">--with-adabas</link>, <link - linkend="with-velocis">--with-velocis</link>, or <link - linkend="with-custom-odbc">--with-custom-odbc</link>. - </simpara> - <simpara> - See also <link linkend="ini.sect.uodbc">Unified ODBC - Configuration</link> Directives in the <link - linkend="configuration.file">configuration - file</link>. - </simpara> - </sect3> - - <sect3 id="with-ldap"> - <title>LDAP</title> - <synopsis> - <option>--with-ldap<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Includes <acronym>LDAP</acronym> (Lightweight Directory Access - Protocol) support. The parameter is the LDAP base install - directory, defaults to <filename - class="directory">/usr/local/ldap</filename>. - </simpara> - <simpara> - More information about LDAP can be found in <ulink - url="&url.rfc;rfc1777.html">RFC1777</ulink> and - <ulink - url="&url.rfc;rfc1778.html">RFC1778</ulink>. - </simpara> - </sect3> + <varlistentry id="install.configure.with-gettext"> + <term> + <parameter>--with-gettext[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3, PHP 4: Include GNU gettext support. DIR is the gettext install + directory, defaults to /usr/local + </para> + </listitem> + </varlistentry> - </sect2> + <varlistentry id="install.configure.with-pspell"> + <term> + <parameter>--with-pspell[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include PSPELL support. + </para> + </listitem> + </varlistentry> - <sect2> - <title>Other configure options</title> + <varlistentry id="install.configure.with-recode"> + <term> + <parameter>--with-recode[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Include GNU recode support. + </para> + <para> + PHP 4: Include recode support. DIR is the recode install directory. + </para> + </listitem> + </varlistentry> + </variablelist> - <sect3 id="with-mcrypt"> - <title>--with-mcrypt<replaceable>=DIR</replaceable></title> - <synopsis> - <option>--with-mcrypt</option> - </synopsis> - <simpara> - Include support for the mcrypt library. See the <link - linkend="ref.mcrypt">mcrypt documentation</link> for more - information. If you use the optional - <replaceable>DIR</replaceable> argument, PHP will look for - mcrypt.h in <replaceable>DIR</replaceable>/include. - </simpara> - </sect3> - - <sect3 id="enable-sysvsem"> - <title>--enable-sysvsem</title> - <synopsis> - <option>--enable-sysvsem</option> - </synopsis> - <simpara> - Include support for Sys V semaphores (supported by most Unix - derivates). See the <link linkend="ref.sem">Semaphore and Shared - Memory documentation</link> for more information. - </simpara> - </sect3> - - <sect3 id="enable-sysvshm"> - <title>--enable-sysvshm</title> - <synopsis> - <option>--enable-sysvshm</option> - </synopsis> - <simpara> - Include support for Sys V shared memory (supported by most Unix - derivates). See the <link linkend="ref.sem">Semaphore and Shared - Memory documentation</link> for more information. - </simpara> - </sect3> - - <sect3 id="with-xml"> - <title>--with-xml</title> - <synopsis> - <option>--with-xml</option> - </synopsis> - <simpara> - Include support for a non-validating XML parser using James - Clark's <ulink url="&url.expat;">expat library</ulink>. See the - <link linkend="ref.xml">XML function reference</link> for - details. - </simpara> - </sect3> - - <sect3 id="enable-maintainer-mode"> - <title>--enable-maintainer-mode</title> - <synopsis> - <option>--enable-maintainer-mode</option> - </synopsis> - <simpara> - Turns on extra dependencies and compiler warnings used by some - of the PHP developers.</simpara> - </sect3> - - <sect3 id="with-system-regex"> - <title>--with-system-regex</title> - <synopsis> - <option>--with-system-regex</option> - </synopsis> - <simpara> - Uses the system's regular expression library rather than the - bundled one. If you are building PHP as a server module, you - must use the same library when building PHP as when linking the - server. Enable this if the system's library provides special - features you need. It is recommended that you use the bundled - library if possible.</simpara> - </sect3> - - <sect3 id="with-config-file-path"> - <title>--with-config-file-path</title> - <synopsis> - <option>--with-config-file-path=DIR</option> - </synopsis> - <simpara> - The path used to look for <link linkend="configuration.file">the - configuration file</link> when PHP starts up. - </simpara> - </sect3> - - <sect3 id="with-exec-dir"> - <title>--with-exec-dir</title> - <synopsis> - <option>--with-exec-dir<replaceable>=DIR</replaceable></option> - </synopsis> - <simpara> - Only allow running of executables in DIR when in safe mode. - Defaults to <filename class="directory">/usr/local/bin</filename>. - This option only sets the default, it may be changed with the - <link linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link> - directive in the <link linkend="configuration.file">configuration - file</link> later.</simpara> - </sect3> - - <sect3 id="enable-debug"> - <title>--enable-debug</title> - <synopsis> - <option>--enable-debug</option> - </synopsis> - <simpara> - Enables extra debug information. This makes it possible to - gather more detailed information when there are problems with - PHP. (Note that this doesn't have anything to do with debugging - facilities or information available to PHP scripts.) - </simpara> - </sect3> - - <sect3 id="enable-safe-mode"> - <title>--enable-safe-mode</title> - <synopsis> - <option>--enable-safe-mode</option> - </synopsis> - <simpara> - Enables "safe mode" by default. This imposes several - restrictions on what PHP can do, such as opening only files - within the document root. Read the <link - linkend="security">Security chapter</link> for more more - information. CGI users should always enable secure mode. This - option only sets the default, it may be enabled or disabled with - the <link linkend="ini.safe-mode">safe_mode</link> directive in - the <link linkend="configuration.file">configuration file</link> - later. - </simpara> - </sect3> - - <sect3 id="enable-track-vars"> - <title>--enable-track-vars</title> - <synopsis> - <option>--enable-track-vars</option> - </synopsis> - <simpara> - Makes PHP keep track of where GET/POST/cookie variables come - from in the arrays HTTP_GET_VARS, HTTP_POST_VARS and - HTTP_COOKIE_VARS. This option only sets the default, it may be - enabled or disabled with the <link - linkend="ini.track-vars">track_vars</link> directive in the - <link linkend="configuration.file">configuration file</link> - later. - </simpara> - </sect3> - - <sect3 id="enable-magic-quotes"> - <title>--enable-magic-quotes</title> - <synopsis> - <option>--enable-magic-quotes</option> - </synopsis> - <simpara> - Enable magic quotes by default. This option only sets the - default, it may be enabled or disabled with the <link - linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link> - directive in the <link - linkend="configuration.file">configuration file</link> - later. See also the <link linkend="ini.magic-quotes-gpc"> - magic_quotes_gpc</link> and the <link - linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link> - directives. - </simpara> - </sect3> - - <sect3 id="enable-debugger"> - <title>--enable-debugger</title> - <synopsis> - <option>--enable-debugger</option> - </synopsis> - <simpara> - Enables the internal PHP debugger support. This feature is - still in an experimental state. See also the <link - linkend="ini.sect.debugger">Debugger Configuration</link> - directives in the <link - linkend="configuration.file">configuration - file</link>. - </simpara> - </sect3> - - <sect3 id="enable-discard-path"> - <title>--enable-discard-path</title> - <synopsis> - <option>--enable-discard-path</option> - </synopsis> - <simpara> - If this is enabled, the PHP CGI binary can safely be placed - outside of the web tree and people will not be able to - circumvent .htaccess security. Read the <link - linkend="security.cgi.shell">section in the security - chapter</link> about this option. - </simpara> - </sect3> - - <sect3 id="enable-bcmath"> - <title>--enable-bcmath</title> - <synopsis> - <option>--enable-bcmath</option> - </synopsis> - <simpara> - Enables <command>bc</command> style arbitrary precision math - functions. See also the <link - linkend="ini.sect.bcmath">bcmath.scale </link> option in the - <link linkend="configuration.file">configuration - file</link>. - </simpara> - </sect3> - - <sect3 id="enable-force-cgi-redirect"> - <title>--enable-force-cgi-redirect</title> - <synopsis> - <option>--enable-force-cgi-redirect</option> - </synopsis> - <simpara> - Enable the security check for internal server redirects. You - should use this if you are running the CGI version with - Apache. - </simpara> - <simpara> - When using PHP as a CGI binary, PHP by default always first - checks that it is used by redirection (for example under Apache, - by using Action directives). This makes sure that the PHP - binary cannot be used to bypass standard web server - authentication procedures by calling it directly, like <filename - role="url">http://my.host/cgi-bin/php/secret/doc.html</filename>. - This example accesses <filename - role="url">http://my.host/secret/doc.html</filename> but does - not honour any security settings enforced by httpd for directory - <filename role="dir">/secret</filename>. - </simpara> - <simpara> - Not enabling option disables the check and enables bypassing - httpd security and authentication settings. Do this only if - your server software is unable to indicate that a safe - redirection was done and all your files under your document root - and user directories may be accessed by anyone. - </simpara> - <simpara> - Read the <link linkend="security.cgi.force-redirect">section in - the security chapter</link> about this option. - </simpara> - </sect3> - - <sect3 id="disable-short-tags"> - <title>--disable-short-tags</title> - <synopsis> - <option>--disable-short-tags</option> - </synopsis> - <simpara> - Disables the short form <literal><? ?></literal> PHP tags. - You must disable the short form if you want to use PHP with - <acronym>XML</acronym>. With short tags disabled, the only PHP - code tag is <literal><?php ?></literal>. This option only - sets the default, it may be enabled or disabled with the <link - linkend="ini.short-open-tag">short_open_tag</link> directive in - the <link linkend="configuration.file">configuration file</link> - later. - </simpara> - </sect3> - - <sect3 id="enable-url-includes"> - <title>--enable-url-includes</title> - <synopsis> - <option>--enable-url-includes</option> - </synopsis> - <simpara> - Makes it possible to run code on other HTTP or FTP servers - directly from PHP with <link - linkend="function.include">include()</link>. See also the <link - linkend="ini.include-path">include_path</link> option in the - <link linkend="configuration.file">configuration file</link>. - </simpara> - </sect3> - - <sect3 id="disable-syntax-hl"> - <title>--disable-syntax-hl</title> - <synopsis> - <option>--disable-syntax-hl</option> - </synopsis> - <simpara> - Turns off syntax highlighting. - </simpara> - </sect3> + </sect2> + + <sect2 id="install.configure.xml"> + <title>XML</title> - <sect3> - <title>CPPFLAGS and LDFLAGS</title> - <para> - To make the PHP installation look for header or library files in - different directories, modify the <envar>CPPFLAGS</envar> and - <envar>LDFLAGS</envar> environment variables, respectively. If - you are using a sensible shell, you should be able to do - <command> - LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure - </command> - </para> - </sect3> + <variablelist> + <varlistentry id="install.configure.with-dom"> + <term> + <parameter>--with-dom[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include DOM support (requires libxml >= 2.0). DIR is the + libxml install directory, defaults to <filename>/usr</filename> + </para> + </listitem> + </varlistentry> - </sect2> + <varlistentry id="install.configure.enable-sablot-errors-descriptive"> + <term> + <parameter>--enable-sablot-errors-descriptive</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable Descriptive errors + </para> + </listitem> + </varlistentry> - <sect2> - <title>Building</title> - <simpara> - When PHP is configured, you are ready to build the CGI executable - or the PHP library. The command <command>make</command> should - take care of this. If it fails and you can't figure out why, see - the <link linkend="install-problems">Problems section</link>. - </simpara> - </sect2> + <varlistentry id="install.configure.with-sablot"> + <term> + <parameter>--with-sablot[=DIR]</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Include Sablotron support + </para> + </listitem> + </varlistentry> - <sect2> - <title>Testing</title> - <simpara> - If you have built PHP as a CGI program, you may test your build - by typing <command>make test</command>. It is always a good idea - to test your build. This way you may catch a problem with PHP on - your platform early instead of having to struggle with it later. - </simpara> - </sect2> + <varlistentry id="install.configure.enable-wddx"> + <term> + <parameter>--enable-wddx</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3 + </para> + <para> + PHP 4: Enable WDDX support + </para> + </listitem> + </varlistentry> - <sect2> - <title>Benchmarking</title> - <simpara> - If you have built PHP as a CGI program, you may benchmark your - build by typing <command>make bench</command>. Note that if safe - mode is on by default, the benchmark may not be able to finish if - it takes longer then the 30 seconds allowed. This is because the - <function>set_time_limit</function> can not be used in safe - mode. Use the <link - linkend="ini.max-execution-time">max_execution_time</link> - configuration setting to control this time for your own - scripts. <command>make bench</command> ignores the <link - linkend="configuration.file">configuration file</link>. - </simpara> + <varlistentry id="install.configure.disable-xml"> + <term> + <parameter>--disable-xml</parameter> + </term> + <listitem> + <para> + PHP 3: Option not available in PHP 3; XML functionality is + not built in by default. Use <link + linkend="install.configure.with-xml">--with-xml</link> + to turn it on. + </para> + <para> + PHP 4: Disable XML support using bundled expat lib + </para> + </listitem> + </varlistentry> + + <varlistentry id="install.configure.with-xml"> + <term> + <parameter>--with-xml</parameter> + </term> + <listitem> + <para> + PHP 3: Include XML support + </para> + <para> + PHP 4: Option not available; XML support is built in by + default. Use <link + linkend="install.configure.disable-xml">--disable-xml</link> to + turn it off. + </para> + </listitem> + </varlistentry> + </variablelist> </sect2> </sect1> @@ -853,8 +2641,8 @@ <simpara> This install guide will help you install and configure PHP on your Windows 9x/NT webservers. This guide was compiled by - &link.bob;. The latest revision can be found at <ulink - url="&url.win32install;">&url.win32install;</ulink>. + &link.bob;. The latest revision can be found at <ulink + url="&url.win32install;">&url.win32install;</ulink>. </simpara> <para> This guide provides installation support for: @@ -881,8 +2669,8 @@ </listitem> </itemizedlist> </para> - - <sect2> + + <sect2 id="install.windows.general"> <title>General Installation Steps</title> <para> @@ -892,64 +2680,67 @@ <itemizedlist> <listitem> <para> - Extract the distribution file to a directory of your choice. - "C:\PHP\" is a good start. + Extract the distribution file to a directory of your choice. + "C:\PHP\" is a good start. </para> </listitem> <listitem> <para> - Copy the file, 'php.ini-dist' to your '%WINDOWS%' directory - and rename it to 'php.ini'. Your '%WINDOWS%' directory is - typically: - <simplelist> - <member>c:\windows for Windows 95/98</member> - <member>c:\winnt or c:\winnt40 for NT servers</member> - </simplelist> + Copy the file, 'php.ini-dist' to your + '%WINDOWS%' directory on Windows 95/98 or to your + '%SYSTEMROOT%' directory under Windows NT or Windows + 20000 and rename it to 'php.ini'. Your + '%WINDOWS%' or '%SYSTEMROOT%' directory is + typically: + <simplelist> + <member>c:\windows for Windows 95/98</member> + <member>c:\winnt or c:\winnt40 for NT/2000 servers</member> + </simplelist> </para> </listitem> <listitem> <para> - Edit your 'php.ini' file: - <itemizedlist> - <listitem> - <simpara> - You will need to change the 'extension_dir' setting to - point to your php-install-dir, or where you have placed - your 'php_*.dll' files. ex: c:\php - </simpara> - </listitem> - <listitem> - <simpara> - If you are using Omni Httpd, do not follow the next step. - Set the 'doc_root' to point to your webservers - document_root. ex: c:\apache\htdocs or c:\webroot - </simpara> - </listitem> - <listitem> - <simpara> - Choose which modules you would like to load when PHP - starts. You can uncomment the: 'extension=php_*.dll' lines - to load these modules. Some modules require you to have - additional libraries installed on your system for the - module to work correctly. The PHP <ulink - url="&url.php.faq;">FAQ</ulink> has more information on - where to get supporting libraries. You can also load a - module dynamically in your script using: - <command>dl("php_*.dll");</command> - </simpara> - </listitem> - <listitem> - <simpara> - On PWS and IIS, you can set the browscap.ini to point to: - 'c:\windows\system\inetsrv\browscap.ini' on Windows 95/98 - and 'c:\winnt\system32\inetsrv\browscap.ini' on NT - Server. Additional information on using the browscap - functionality in PHP can be found at this <ulink - url="&url.browscap;">mirror</ulink>, select the "source" - button to see it in action. - </simpara> - </listitem> - </itemizedlist> + Edit your 'php.ini' file: + <itemizedlist> + <listitem> + <simpara> + You will need to change the 'extension_dir' setting to + point to your php-install-dir, or where you have placed + your 'php_*.dll' files. ex: c:\php + </simpara> + </listitem> + <listitem> + <simpara> + If you are using Omni Httpd, do not follow the next step. + Set the 'doc_root' to point to your webservers + document_root. ex: c:\apache\htdocs or c:\webroot + </simpara> + </listitem> + <listitem> + <simpara> + Choose which modules you would like to load when PHP + starts. You can uncomment the: 'extension=php_*.dll' lines + to load these modules. Some modules require you to have + additional libraries installed on your system for the + module to work correctly. The PHP <ulink + url="&url.php.faq;">FAQ</ulink> has more information on + where to get supporting libraries. You can also load a + module dynamically in your script using: + <command>dl("php_*.dll");</command> + </simpara> + </listitem> + <listitem> + <simpara> + On PWS and IIS, you can set the browscap.ini to point to: + 'c:\windows\system\inetsrv\browscap.ini' on Windows 95/98 + and 'c:\winnt\system32\inetsrv\browscap.ini' on NT + Server. Additional information on using the browscap + functionality in PHP can be found at this <ulink + url="&url.browscap;">mirror</ulink>, select the "source" + button to see it in action. + </simpara> + </listitem> + </itemizedlist> </para> </listitem> </itemizedlist></para> @@ -961,7 +2752,7 @@ </sect2> - <sect2> + <sect2 id="install.windows.iis3"> <title>Windows 95/98/NT and PWS/IIS 3</title> <simpara> @@ -984,128 +2775,133 @@ <itemizedlist> <listitem> <simpara> - Run Regedit. + Run Regedit. </simpara> </listitem> <listitem> <simpara> - Navigate to: <literal>HKEY_LOCAL_MACHINE /System - /CurrentControlSet /Services /W3Svc /Parameters - /ScriptMap</literal>. + Navigate to: <literal>HKEY_LOCAL_MACHINE /System + /CurrentControlSet /Services /W3Svc /Parameters + /ScriptMap</literal>. </simpara> </listitem> <listitem> <simpara> - On the edit menu select: <literal>New->String Value</literal>. + On the edit menu select: <literal>New->String Value</literal>. </simpara> </listitem> <listitem> <simpara> - Type in the extension you wish to use for your php - scripts. ex: <literal>.php</literal> + Type in the extension you wish to use for your php + scripts. ex: <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> - Double click on the new string value and enter the path to - <literal>php.exe</literal> in the value data field. ex: - <literal>c:\php\php.exe %s %s</literal>. The '%s %s' is VERY - important, PHP will not work properly without it. + Double click on the new string value and enter the path to + <literal>php.exe</literal> in the value data field. ex: + <literal>c:\php\php.exe %s %s</literal>. The '%s %s' is VERY + important, PHP will not work properly without it. </simpara> </listitem> <listitem> <simpara> - Repeat these steps for each extension you wish to associate - with PHP scripts. + Repeat these steps for each extension you wish to associate + with PHP scripts. </simpara> </listitem> <listitem> <simpara> - Now navigate to: <literal>HKEY_CLASSES_ROOT</literal> + Now navigate to: <literal>HKEY_CLASSES_ROOT</literal> </simpara> </listitem> <listitem> <simpara> - On the edit menu select: <literal>New->Key</literal>. + On the edit menu select: <literal>New->Key</literal>. </simpara> </listitem> <listitem> <simpara> - Name the key to the extension you setup in the previous - section. ex: <literal>.php</literal> + Name the key to the extension you setup in the previous + section. ex: <literal>.php</literal> </simpara> </listitem> <listitem> <simpara> - Highlight the new key and in the right side pane, double click - the "default value" and enter <literal>phpfile</literal>. + Highlight the new key and in the right side pane, double click + the "default value" and enter <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> - Repeat the last step for each extension you set up in the - previous section. + Repeat the last step for each extension you set up in the + previous section. </simpara> </listitem> <listitem> <simpara> - Now create another <literal>New->Key</literal> under - <literal>HKEY_CLASSES_ROOT</literal> and name it - <literal>phpfile</literal>. + Now create another <literal>New->Key</literal> under + <literal>HKEY_CLASSES_ROOT</literal> and name it + <literal>phpfile</literal>. </simpara> </listitem> <listitem> <simpara> - Highlight the new key <literal>phpfile</literal> and in the - right side pane, double click the "default value" and enter - <literal>PHP Script</literal>. + Highlight the new key <literal>phpfile</literal> and in the + right side pane, double click the "default value" and enter + <literal>PHP Script</literal>. </simpara> </listitem> <listitem> <simpara> - Right click on the <literal>phpfile</literal> key and select - <literal>New->Key</literal>, name it <literal>Shell</literal>. + Right click on the <literal>phpfile</literal> key and select + <literal>New->Key</literal>, name it <literal>Shell</literal>. </simpara> </listitem> <listitem> <simpara> - Right click on the <literal>Shell</literal> key and select - <literal>New->Key</literal>, name it <literal>open</literal>. + Right click on the <literal>Shell</literal> key and select + <literal>New->Key</literal>, name it <literal>open</literal>. </simpara> </listitem> <listitem> <simpara> - Right click on the <literal>open</literal> key and select - <literal>New->Key</literal>, name it - <literal>command</literal>. + Right click on the <literal>open</literal> key and select + <literal>New->Key</literal>, name it + <literal>command</literal>. </simpara> </listitem> <listitem> <simpara> - Highlight the new key <literal>command</literal> and in the - right side pane, double click the "default value" and enter - the path to <literal>php.exe</literal>. ex: - <literal>c:\php\php.exe -q %1</literal>. (don't forget the - <literal>%1</literal>). + Highlight the new key <literal>command</literal> and in the + right side pane, double click the "default value" and enter + the path to <literal>php.exe</literal>. ex: + <literal>c:\php\php.exe -q %1</literal>. (don't forget the + <literal>%1</literal>). </simpara> </listitem> <listitem> <simpara> - Exit Regedit. + Exit Regedit. </simpara> </listitem> + <listitem> + <simpara> + If using PWS on Windows, reboot to reload the registry. + </simpara> + </listitem> </itemizedlist> </para> <simpara> PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty <ulink - url="&url.iiscfg;">tool</ulink> from + url="&url.iiscfg;">tool</ulink> from Steven Genusa to configure their script maps. </simpara> </sect2> - <sect2> + <sect2 id="install.windowsnt.iis4"> <title>Windows NT and IIS 4</title> <simpara> @@ -1117,46 +2913,46 @@ <itemizedlist> <listitem> <simpara> - In Internet Service Manager (MMC), select the Web site or the - starting point directory of an application. + In Internet Service Manager (MMC), select the Web site or the + starting point directory of an application. </simpara> </listitem> <listitem> <simpara> - Open the directory's property sheets (by right clicking and - selecting properties), and then click the Home Directory, - Virtual Directory, or Directory tab. + Open the directory's property sheets (by right clicking and + selecting properties), and then click the Home Directory, + Virtual Directory, or Directory tab. </simpara> </listitem> <listitem> <simpara> - Click the Configuration button, and then click the App - Mappings tab. + Click the Configuration button, and then click the App + Mappings tab. </simpara> </listitem> <listitem> <simpara> - Click Add, and in the Executable box, type: - <literal>c:\path-to-php-dir\php.exe %s %s</literal>. You MUST - have the %s %s on the end, PHP will not function properly if - you fail to do this. + Click Add, and in the Executable box, type: + <literal>c:\path-to-php-dir\php.exe %s %s</literal>. You MUST + have the %s %s on the end, PHP will not function properly if + you fail to do this. </simpara> </listitem> <listitem> <simpara> - In the Extension box, type the file name extension you want - associated with PHP scripts. (You must repeat step 5 and 6 for - each extension you want accociated with PHP - scripts. (<literal>.php</literal> and - <literal>.phtml</literal> are common.) + In the Extension box, type the file name extension you want + associated with PHP scripts. (You must repeat step 5 and 6 for + each extension you want accociated with PHP + scripts. (<literal>.php</literal> and + <literal>.phtml</literal> are common.) </simpara> </listitem> <listitem> <simpara> - Set up the appropriate security. (This is done in Internet - Service Manager), and if your NT Server uses NTFS file system, - add execute rights for I_USR_ to the directory that contains - <literal>php.exe</literal>. + Set up the appropriate security. (This is done in Internet + Service Manager), and if your NT Server uses NTFS file system, + add execute rights for I_USR_ to the directory that contains + <literal>php.exe</literal>. </simpara> </listitem> </itemizedlist> @@ -1164,7 +2960,7 @@ </sect2> - <sect2> + <sect2 id="install.windows.apache"> <title>Windows 9x/NT and Apache 1.3.x</title> <simpara> @@ -1183,30 +2979,30 @@ <itemizedlist> <listitem> <simpara> - <literal> - ScriptAlias /php/ "c:/path-to-php-dir/" - </literal> + <literal> + ScriptAlias /php/ "c:/path-to-php-dir/" + </literal> </simpara> </listitem> <listitem> <simpara> - <literal> - AddType application/x-httpd-php .php - </literal> + <literal> + AddType application/x-httpd-php .php + </literal> </simpara> </listitem> <listitem> <simpara> - <literal> - AddType application/x-httpd-php .phtml - </literal> + <literal> + AddType application/x-httpd-php .phtml + </literal> </simpara> </listitem> <listitem> <simpara> - <literal> - Action application/x-httpd-php "/php/php.exe" - </literal> + <literal> + Action application/x-httpd-php "/php/php.exe" + </literal> </simpara> </listitem> </itemizedlist> @@ -1215,7 +3011,7 @@ <simpara> To use the source code highlighting feature, simply create a PHP script file and stick this code in: <literal><?php show_source - ("original_php_script.php"); ?></literal>. Substitute + ("original_php_script.php"); ?></literal>. Substitute <literal>original_php_script.php</literal> with the name of the file you wish to show the source of. (this is only one way of doing it). <emphasis>Note:</emphasis> On Win-Apache all back @@ -1225,46 +3021,46 @@ </sect2> - <sect2> + <sect2 id="install.windows.omnihttpd"> <title>Omni HTTPd 2.0b1 for Windows</title> - <simpara> - This has got to be the easiest config there is: - </simpara> + <simpara> + This has got to be the easiest config there is: + </simpara> - <para> + <para> <itemizedlist> <listitem> <para> - Step 1: Install Omni server + Step 1: Install Omni server </para> </listitem> <listitem> <para> - Step 2: Right click on the blue OmniHTTPd icon in the system - tray and select <literal>Properties</literal> + Step 2: Right click on the blue OmniHTTPd icon in the system + tray and select <literal>Properties</literal> </para> </listitem> <listitem> <para> - Step 3: Click on <literal>Web Server Global Settings</literal> + Step 3: Click on <literal>Web Server Global Settings</literal> </para> </listitem> <listitem> <para> - Step 4: On the 'External' tab, enter: <literal>virtual = .php - | actual = c:\path-to-php-dir\php.exe</literal> + Step 4: On the 'External' tab, enter: <literal>virtual = .php + | actual = c:\path-to-php-dir\php.exe</literal> </para> </listitem> <listitem> <para> - Step 5: On the <literal>Mime</literal> tab, enter: - <literal>virtual = wwwserver/stdcgi | actual = .php</literal> + Step 5: On the <literal>Mime</literal> tab, enter: + <literal>virtual = wwwserver/stdcgi | actual = .php</literal> </para> </listitem> <listitem> <para> - Step 6: Click <literal>OK</literal> + Step 6: Click <literal>OK</literal> </para> </listitem> </itemizedlist> @@ -1277,7 +3073,42 @@ </sect2> - <sect2> + <sect2 id="install.windows.installer"> + <title>Windows Installshield</title> + + <para> + The Windows PHP installer available from the downloads page at + <ulink url="&url.php;">&url.php;</ulink> installs the CGI version of + PHP and, for IIS, PWS, and Xitami, configures the web server as well. + </para> + + <simpara> + Install your choosen http server on your system and make sure it all works. + </simpara> + + <simpara> + Run the installer exe file and follow the instructions provided by the + installation wizard. Two types of installation are supported - standard, + which provides sensible defaults for all the settings it can, and + advanced, which asks questions as it goes along. + </simpara> + + <simpara> + The installation wizard gathers enough information to set up the + <filename>php.ini</filename> file and configure the web server to use PHP. + For IIS and also PWS on NT Workstation, a list of all the nodes on the server + with script map settings is displayed, and you can choose those nodes to which + you wish to add the PHP script mappings. + </simpara> + + <simpara> + Once the installation has completed the installer will inform you if you + need to restart your system, restart the server, or just start using PHP. + </simpara> + + </sect2> + + <sect2 id="install.windows.modules"> <title>PHP Modules</title> <para> @@ -1285,74 +3116,74 @@ <title>PHP Modules</title> <tgroup cols="2"> <tbody> - <row> - <entry>php_calendar.dll</entry> - <entry>Calendar conversion functions</entry> - </row> - <row> - <entry>php_crypt.dll</entry> - <entry>Crypt functions</entry> - </row> - <row> - <entry>php_dbase.dll</entry> - <entry>DBase functions</entry> - </row> - <row> - <entry>php_dbm.dll</entry> - <entry>GDBM emulation via Berkely DB2 library</entry> - </row> - <row> - <entry>php_filepro.dll</entry> - <entry>READ ONLY access to filepro databases</entry> - </row> - <row> - <entry>php_gd.dll</entry> - <entry>GD Library functions for gif manipulation</entry> - </row> - <row> - <entry>php_hyperwave.dll</entry> - <entry>HyperWave functions</entry> - </row> - <row> - <entry>php_imap4r2.dll</entry> - <entry>IMAP 4 functions</entry> - </row> - <row> - <entry>php_ldap.dll</entry> - <entry>LDAP functions</entry> - </row> - <row> - <entry>php_msql1.dll</entry> - <entry>mSQL 1 client</entry> - </row> - <row> - <entry>php_msql2.dll</entry> - <entry>mSQL 2 client</entry> - </row> - <row> - <entry>php_mssql.dll</entry> - <entry>MSSQL client (requires MSSQL DB-Libraries</entry> - </row> - <row> - <entry>php3_mysql.dll (Built into PHP 4)</entry> - <entry>MySQL functions</entry> - </row> - <row> - <entry>php_nsmail.dll</entry> - <entry>Netscape mail functions</entry> - </row> - <row> - <entry>php_oci73.dll</entry> - <entry>Oracle functions</entry> - </row> - <row> - <entry>php_snmp.dll</entry> - <entry>SNMP get and walk functions (NT only!)</entry> - </row> - <row> - <entry>php_zlib.dll</entry> - <entry>ZLib functions</entry> - </row> + <row> + <entry>php_calendar.dll</entry> + <entry>Calendar conversion functions</entry> + </row> + <row> + <entry>php_crypt.dll</entry> + <entry>Crypt functions</entry> + </row> + <row> + <entry>php_dbase.dll</entry> + <entry>DBase functions</entry> + </row> + <row> + <entry>php_dbm.dll</entry> + <entry>GDBM emulation via Berkely DB2 library</entry> + </row> + <row> + <entry>php_filepro.dll</entry> + <entry>READ ONLY access to filepro databases</entry> + </row> + <row> + <entry>php_gd.dll</entry> + <entry>GD Library functions for gif manipulation</entry> + </row> + <row> + <entry>php_hyperwave.dll</entry> + <entry>HyperWave functions</entry> + </row> + <row> + <entry>php_imap4r2.dll</entry> + <entry>IMAP 4 functions</entry> + </row> + <row> + <entry>php_ldap.dll</entry> + <entry>LDAP functions</entry> + </row> + <row> + <entry>php_msql1.dll</entry> + <entry>mSQL 1 client</entry> + </row> + <row> + <entry>php_msql2.dll</entry> + <entry>mSQL 2 client</entry> + </row> + <row> + <entry>php_mssql.dll</entry> + <entry>MSSQL client (requires MSSQL DB-Libraries</entry> + </row> + <row> + <entry>php3_mysql.dll (Built into PHP 4)</entry> + <entry>MySQL functions</entry> + </row> + <row> + <entry>php_nsmail.dll</entry> + <entry>Netscape mail functions</entry> + </row> + <row> + <entry>php_oci73.dll</entry> + <entry>Oracle functions</entry> + </row> + <row> + <entry>php_snmp.dll</entry> + <entry>SNMP get and walk functions (NT only!)</entry> + </row> + <row> + <entry>php_zlib.dll</entry> + <entry>ZLib functions</entry> + </row> </tbody> </tgroup> </table> @@ -1370,34 +3201,34 @@ <simpara> Some problems are more common than others. The most common ones are listed in the PHP FAQ, found at <ulink - url="&url.php.faq;">&url.php.faq;</ulink> + url="&url.php.faq;">&url.php.faq;</ulink> </simpara> </sect2> - <sect2> + <sect2 id="install.bugreports"> <title>Bug reports</title> <simpara> If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the bug-tracking system at <ulink - url="&url.php.bugs;">&url.php.bugs;</ulink>. + url="&url.php.bugs;">&url.php.bugs;</ulink>. </simpara> </sect2> - <sect2> + <sect2 id="install.otherproblems"> <title>Other problems</title> <simpara> - If you are still stuck, someone on the PHP mailing list may be + If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as you. The archives are available from the support page on <ulink - url="&url.php;">&url.php;</ulink>. To subscribe to the PHP + url="&url.php;">&url.php;</ulink>. To subscribe to the PHP installation mailing list, send an empty mail to <ulink - url="mailto:&email.php3.subscribe;">&email.php3.subscribe;</ulink>. + +url="mailto:&email.php.install.subscribe;">&email.php.install.subscribe;</ulink>. The mailing list address is - <literal>&email.php3;</literal>. + <literal>&email.php.install;</literal>. </simpara> <simpara> If you want to get help on the mailing list, please try to be @@ -1413,19 +3244,19 @@ </chapter> -<!-- Keep this comment at the end of the file -Local variables: -mode: sgml -sgml-omittag:t -sgml-shorttag:t -sgml-minimize-attributes:nil -sgml-always-quote-attributes:t -sgml-indent-step:1 -sgml-indent-data:t -sgml-parent-document:nil -sgml-default-dtd-file:"../../manual.ced" -sgml-exposed-tags:nil -sgml-local-catalogs:nil -sgml-local-ecat-files:nil -End: ---> + <!-- Keep this comment at the end of the file + Local variables: + mode: sgml + sgml-omittag:t + sgml-shorttag:t + sgml-minimize-attributes:nil + sgml-always-quote-attributes:t + sgml-indent-step:1 + sgml-indent-data:t + sgml-parent-document:nil + sgml-default-dtd-file:"../../manual.ced" + sgml-exposed-tags:nil + sgml-local-catalogs:nil + sgml-local-ecat-files:nil + End: + -->