philip Sun Sep 5 19:23:35 2004 EDT Added files: /phpdoc/en/install pecl.xml
Modified files: /phpdoc manual.xml.in /phpdoc/RFC manual.xml.in Log: Document how to install PECL extensions.
http://cvs.php.net/diff.php/phpdoc/manual.xml.in?r1=1.190&r2=1.191&ty=u Index: phpdoc/manual.xml.in diff -u phpdoc/manual.xml.in:1.190 phpdoc/manual.xml.in:1.191 --- phpdoc/manual.xml.in:1.190 Thu Sep 2 18:28:30 2004 +++ phpdoc/manual.xml.in Sun Sep 5 19:23:34 2004 @@ -2,7 +2,7 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "@srcdir@/dtds/dbxml-4.1.2/docbookx.dtd" [ -<!-- $Revision: 1.190 $ --> +<!-- $Revision: 1.191 $ --> <!-- Add translated specific definitions and snippets --> <!ENTITY % language-defs SYSTEM "@srcdir@/@LANGDIR@/language-defs.ent"> @@ -61,6 +61,7 @@ &install.unix.index; &install.macos.index; &install.windows.index; + &install.pecl; &install.problems; &install.ini; </part> http://cvs.php.net/diff.php/phpdoc/RFC/manual.xml.in?r1=1.15&r2=1.16&ty=u Index: phpdoc/RFC/manual.xml.in diff -u phpdoc/RFC/manual.xml.in:1.15 phpdoc/RFC/manual.xml.in:1.16 --- phpdoc/RFC/manual.xml.in:1.15 Thu Sep 2 09:54:47 2004 +++ phpdoc/RFC/manual.xml.in Sun Sep 5 19:23:35 2004 @@ -2,7 +2,7 @@ <!DOCTYPE book PUBLIC "-//PHPDocGroup//DTD DocBook XML V4.1.2-Based Variant PHPBook V1.1//EN" "@srcdir@/dtds/phpbook.dtd" [ -<!-- $Revision: 1.15 $ --> <!-- Last updated to comply to manual.xml.in 1.189 --> +<!-- $Revision: 1.16 $ --> <!-- Last updated to comply to manual.xml.in 1.189 --> <!-- Add translated specific definitions and snippets --> <!ENTITY % language-defs SYSTEM "@srcdir@/@LANGDIR@/language-defs.ent"> @@ -63,6 +63,7 @@ &install.unix.index; &install.macos.index; &install.windows.index; + &install.pecl; &install.problems; &install.ini; </part> http://cvs.php.net/co.php/phpdoc/en/install/pecl.xml?r=1.1&p=1 Index: phpdoc/en/install/pecl.xml +++ phpdoc/en/install/pecl.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <chapter id="install.pecl"> <title>Installation of PECL extensions</title> <simplesect 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. </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 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. </simpara> <simpara> When building PHP modules, it's important to have the appropriate 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. </simpara> </simplesect> <simplesect id="install.pecl.downloads"> <title>Downloading PECL extensions</title> <simpara> There are several options for downloading PECL extensions, such as: </simpara> <itemizedlist> <listitem> <simpara> <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. </simpara> </listitem> <listitem> <simpara> <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. </simpara> </listitem> <listitem> <simpara> <acronym>CVS</acronym> </simpara> <simpara> All PECL files 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 <emphasis>cvsread</emphasis>: </simpara> <para> <screen> $ cvs -d:pserver:[EMAIL PROTECTED]:/repository login $ cvs -d:pserver:[EMAIL PROTECTED]:/repository co pecl/extname </screen> </para> </listitem> <listitem> <simpara> Windows downloads </simpara> <simpara> Windows users may find compiled PECL binaries by downloading the <emphasis>Collection of PECL modules</emphasis> from the <ulink url="&url.php.downloads;">PHP Downloads</ulink> page, and by retrieving a <ulink url="&url.php.snapshots;">PECL Snapshot</ulink>. To compile PHP under Windows, read the <ulink url="&url.php.win32.build.readme;">Win32 Build README</ulink>. </simpara> </listitem> </itemizedlist> </simplesect> <simplesect 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: </simpara> <para> <screen> extension=php_extname.dll </screen> </para> <simpara> After doing this, restart the web server. </simpara> </simplesect> <simplesect id="install.pecl.pear"> <title>Compiling shared PECL extensions with PEAR</title> <simpara> PEAR makes it easy to create shared PHP extensions. Using the <ulink url="&url.php.pear.cli;">pear command</ulink>, do the following: </simpara> <para> <screen> $ pear install extname </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; </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: </simpara> <para> <screen> $ pear install extname-0.1.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> </simplesect> <simplesect 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: </simpara> <para> <screen> $ pear download extname $ gzip -d < extname.tgz |tar -xvf - $ cd extname $ phpize $ ./configure && make </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. </simpara> </simplesect> <simplesect 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: </simpara> <para> <screen> $ cd /your/phpsrcdir/ext $ pear download extname $ gzip -d < extname.tgz |tar -xvf - $ mv extname-x.x.x extname $ rm package.xml </screen> </para> <simpara> This will result in the following directory: </simpara> <para> <screen> /your/phpsrcdir/ext/extname </screen> </para> <simpara> From here, build PHP as normal: </simpara> <para> <screen> $ cd /your/phpsrcdir $ ./buildconf $ ./configure --help $ ./configure --with-extname --enable-someotherext --with-foobar $ make $ make install </screen> </para> <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 sure, run the following after buildconf: </simpara> <para> <screen> $ ./configure --help |grep extname </screen> </para> </simplesect> </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 indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->