wez Sun Sep 11 03:18:59 2005 EDT
Modified files: /phpdoc/en/install pecl.xml Log: adjust pecl installation notes
http://cvs.php.net/diff.php/phpdoc/en/install/pecl.xml?r1=1.8&r2=1.9&ty=u Index: phpdoc/en/install/pecl.xml diff -u phpdoc/en/install/pecl.xml:1.8 phpdoc/en/install/pecl.xml:1.9 --- phpdoc/en/install/pecl.xml:1.8 Tue Jun 7 18:41:44 2005 +++ phpdoc/en/install/pecl.xml Sun Sep 11 03:18:57 2005 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.8 $ --> +<!-- $Revision: 1.9 $ --> <chapter id="install.pecl"> <title>Installation of PECL extensions</title> @@ -7,27 +7,27 @@ <sect1 id="install.pecl.intro"> <title>Introduction to PECL Installations</title> <simpara> - PHP extensions may be installed in a variety of ways. - <ulink url="&url.pecl;">PECL</ulink> is a repository of PHP extensions - living within the <ulink url="&url.php.pear;">PEAR</ulink> structure, and - the following demonstrates how to install these extensions. + <ulink url="&url.pecl;">PECL</ulink> is a repository of PHP extensions that + are made available to you via the <ulink url="&url.php.pear;">PEAR</ulink> + packaging system. This section of the manual is intended to demonstrate + how to obtain and install PECL extensions. </simpara> <simpara> These instructions assume <literal>/your/phpsrcdir/</literal> is the path - to the PHP source, and <literal>extname</literal> is the name of the + to the PHP source distribution, and that <literal>extname</literal> is the name of the PECL extension. Adjust accordingly. These instructions also assume a familiarity with the <ulink url="&url.php.pear.cli;">pear command</ulink>. </simpara> <simpara> - Shared extensions may be installed by including them inside of &php.ini; - using the <link linkend="ini.extension">extension</link> PHP directive. See - also the <link linkend="ini.extension-dir">extensions_dir</link> - directive, and <function>dl</function>. The installation methods described - below do not automatically configure PHP to include these extensions, this - step must be done manually. + To be useful, a shared extension must be built, installed, and loaded. The + methods described below provide you with various instructions on how to + build and install the extensions, but they do not automatically load them. + Extensions can be loaded by adding an <link + linkend="ini.extension">extension</link> directive. To this &php.ini; + file, or through the use of the <function>dl</function> function. </simpara> <simpara> - When building PHP modules, it's important to have the appropriate versions + When building PHP modules, it's important to have known-good versions of the required tools (autoconf, automake, libtool, etc.) See the <ulink url="&url.php.anoncvs;">Anonymous CVS Instructions</ulink> for details on the required tools, and required versions. @@ -45,9 +45,10 @@ <ulink url="&url.pecl;">&url.pecl;</ulink> </simpara> <simpara> - Listed here is information like the ChangeLog, release information, - requirements, revisions, etc. Although not every PECL extension has a - webpage, most do. + The PECL web site contains information about the different extensions + that are offered by the PHP Development Team. The information available + here includes: ChangeLog, release notes, requirements and other similar + details. </simpara> </listitem> <listitem> @@ -55,8 +56,10 @@ <literal>pear download extname</literal> </simpara> <simpara> - The <ulink url="&url.php.pear.cli;">pear command</ulink> may also be used - to download source files. Specific revisions may also be specified. + PECL extensions that have releases listed on the PECL web site are + available for download and installation using the <ulink + url="&url.php.pear.cli;">pear command</ulink>. + Specific revisions may also be specified. </simpara> </listitem> <listitem> @@ -64,10 +67,10 @@ <acronym>CVS</acronym> </simpara> <simpara> - All PECL files reside in <acronym>CVS</acronym>. A web-based view may + Most PECL extensions also reside in <acronym>CVS</acronym>. A web-based view may be seen at <ulink url="&url.php.cvs;pecl/">&url.php.cvs;pecl/</ulink>. - To download straight from <acronym>CVS</acronym>, consider the following - where <emphasis>phpfi</emphasis> is the password for user + To download straight from <acronym>CVS</acronym>, the following + sequence of commands may be used. Note that <emphasis>phpfi</emphasis> is the password for user <emphasis>cvsread</emphasis>: </simpara> <para> @@ -96,10 +99,10 @@ <sect1 id="install.pecl.windows"> <title>PECL for Windows users</title> <simpara> - Like with any other PHP extension <acronym>DLL</acronym>, to install move - the PECL extension DLLs into the <link linkend="ini.extension-dir"> - extension_dir</link> folder and include them within &php.ini;. For - example: + As with any other PHP extension <acronym>DLL</acronym>, installation is as + simple as copying the PECL extension DLLs into the <link linkend="ini.extension-dir"> + extension_dir</link> folder and loading them from &php.ini;. For + example, add the following line to your &php.ini;: </simpara> <para> <screen> @@ -123,67 +126,75 @@ </screen> </para> <simpara> - That will download the source for <emphasis>extname</emphasis>, and - compile it on the system. This results in an - <filename>extname.so</filename> file that may then be included in &php.ini; + This will download the source for <emphasis>extname</emphasis>, + compile, and install <filename>extname.so</filename> into your <link + linkend="ini.extension-dir">extension_dir</link>. + <filename>extname.so</filename> may then be loaded via &php.ini; </simpara> <simpara> - In case the systems <emphasis>preferred_state</emphasis> is set higher than - an available <emphasis>extname</emphasis> version, like it's set to stable - and the extension is still in beta, either alter the - <emphasis>preferred_state</emphasis> via <literal>pear config-set</literal> - or specify a specific version of the PECL extension. For example: + By default, the <literal>pear</literal> command will not install + packages that are marked with the <literal>alpha</literal> or + <literal>beta</literal> state. If no <literal>stable</literal> packages + are available, you may install a <literal>beta</literal> package using the + following command: </simpara> <para> <screen> -$ pear install extname-0.1.1 +$ pear install extname-beta + </screen> + </para> + <para> + You may also install a specific version using this variant: + </para> + <para> + <screen> +$ pear install extname-0.1 </screen> </para> - <simpara> - Regardless, pear will copy this <filename>extname.so</filename> into the - <link linkend="ini.extension-dir">extensions directory</link>. Adjust - &php.ini; accordingly. - </simpara> </sect1> <sect1 id="install.pecl.phpize"> <title>Compiling shared PECL extensions with phpize</title> <simpara> - If using pear is not an option, like for building shared PECL extensions - from <acronym>CVS</acronym>, or for unreleased PECL packages, then creating - a shared extension may also be done by manually using the - <literal>phpize</literal> command. The pear command essentially does this - but it may also be done manually. Assuming the source file is named - <filename>extname.tgz</filename>, and that it was downloaded into the - current directory, consider the following: + Sometimes, using the <literal>pear</literal> installer is not an option. + This could be because you're behind a firewall, or it could be because the + extension you want to install is not available as a PEAR compatible + package, such as unreleased extensions from CVS. If you need to build such + an extension, you can use the lower-level build tools to perform the build + manually. + </simpara> + <simpara> + The <literal>phpize</literal> command is used to prepare the build + environment for a PHP extension. In the following sample, the sources for + an extension are in a directory named <filename>extname</filename>: </simpara> <para> <screen> <![CDATA[ -$ pear download extname -$ gzip -d < extname.tgz | tar -xvf - $ cd extname $ phpize -$ ./configure && make +$ ./configure +$ make +# make install ]]> </screen> </para> <simpara> - Upon success, this will create <filename>extname.so</filename> and put it - into the <filename>modules/</filename> and/or <filename>.libs/</filename> - directory within the <filename>extname/</filename> source. Move this - shared extension (<filename>extname.so</filename>) into the PHP - <link linkend="ini.extension-dir">extensions directory</link>, and adjust - &php.ini; accordingly. + A successful install will have created <filename>extname.so</filename> and put it + into the PHP + <link linkend="ini.extension-dir">extensions directory</link>. You'll need + to and adjust &php.ini; and add an <literal>extension=extname.so</literal> + line before you can use the extension. </simpara> </sect1> <sect1 id="install.pecl.static"> <title>Compiling PECL extensions statically into PHP</title> <simpara> - To statically include the extension within the PHP build, put the - extensions source into the <filename>ext/</filename> directory found in - the PHP source. For example: + You might find that you need to build a PECL extension statically into your + PHP binary. To do this, you'll need to place the extension source under + the <filename>php-src/ext/</filename> directory and tell the PHP build + system to regenerate its configure script. </simpara> <para> <screen> @@ -192,7 +203,6 @@ $ pear download extname $ gzip -d < extname.tgz | tar -xvf - $ mv extname-x.x.x extname -$ rm package.xml ]]> </screen> </para> @@ -205,7 +215,7 @@ </screen> </para> <simpara> - From here, build PHP as normal: + From here, force PHP to rebuild the configure script, and then build PHP as normal: </simpara> <para> <screen> @@ -226,8 +236,8 @@ </note> <simpara> Whether <literal>--enable-extname</literal> or <literal>--with-extname - </literal> is used depends on the extension. Typically an extension that - does not require external libraries uses <literal>--enable</literal>. To be + </literal> is used depends on the extension. Typically an extension that + does not require external libraries uses <literal>--enable</literal>. To be sure, run the following after buildconf: </simpara> <para>