mirror of
https://github.com/Zeckmathederg/glfs.git
synced 2025-01-27 18:02:12 +08:00
077b739ce7
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@12568 af4574ff-66df-0310-9fd7-8a98e5e911e0
400 lines
16 KiB
XML
400 lines
16 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../../general.ent">
|
|
%general-entities;
|
|
|
|
<!ENTITY php-download-http "http://us2.php.net/distributions/php-&php-version;.tar.bz2">
|
|
<!ENTITY php-download-ftp " ">
|
|
<!ENTITY php-md5sum "42fe814a3cbbf34b21a2c39f66ee0001">
|
|
<!ENTITY php-size "13 MB">
|
|
<!ENTITY php-buildsize "391 MB">
|
|
<!ENTITY php-time "3.5 SBU (additional 2.9 SBU to run the test suite)">
|
|
]>
|
|
|
|
<sect1 id="php" xreflabel="PHP-&php-version;">
|
|
<?dbhtml filename="php.html"?>
|
|
|
|
<sect1info>
|
|
<othername>$LastChangedBy$</othername>
|
|
<date>$Date$</date>
|
|
</sect1info>
|
|
|
|
<title>PHP-&php-version;</title>
|
|
|
|
<indexterm zone="php">
|
|
<primary sortas="a-PHP">PHP</primary>
|
|
</indexterm>
|
|
|
|
<sect2 role="package">
|
|
<title>Introduction to PHP</title>
|
|
|
|
<para><application>PHP</application> is the PHP Hypertext Preprocessor.
|
|
Primarily used in dynamic web sites, it allows for programming code to be
|
|
directly embedded into the HTML markup. It is also useful as a
|
|
general purpose scripting language.</para>
|
|
|
|
&lfs74_checked;
|
|
|
|
<bridgehead renderas="sect3">Package Information</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>Download (HTTP): <ulink url="&php-download-http;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download (FTP): <ulink url="&php-download-ftp;"/></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download MD5 sum: &php-md5sum;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Download size: &php-size;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated disk space required: &php-buildsize;</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Estimated build time: &php-time;</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>Pre-built documentation (optional): <ulink
|
|
url="http://www.php.net/download-docs.php"/></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<bridgehead renderas="sect3">PHP Dependencies</bridgehead>
|
|
|
|
<bridgehead renderas="sect4">Recommended</bridgehead>
|
|
<para role="recommended">
|
|
<xref linkend="apache"/> and
|
|
<xref linkend="libxml2"/>
|
|
</para>
|
|
|
|
<bridgehead renderas="sect4">Optional System Utilities and Libraries</bridgehead>
|
|
<para role="optional"><xref linkend="libxslt"/>,
|
|
<!-- <xref linkend="gamin"/>, -->
|
|
<xref linkend="pcre"/>,
|
|
<xref linkend="aspell"/>,
|
|
<xref linkend="enchant"/>,
|
|
<xref linkend="expat"/> (deprecated alternative to <xref linkend="libxml2"/>),
|
|
<ulink url="http://www.ossp.org/pkg/lib/mm/">OSSP mm</ulink>,
|
|
<ulink url="http://www.net-snmp.org/">Net-SNMP</ulink>,
|
|
<xref linkend="pth"/>,
|
|
<ulink url="http://re2c.org/">re2c</ulink>,
|
|
<ulink url="http://xmlrpc-epi.sourceforge.net/main.php?t=php_about">XMLRPC-EPI</ulink>,
|
|
<ulink url="http://dmalloc.com/">Dmalloc</ulink>, and
|
|
an <xref linkend="server-mail"/> (that provides a
|
|
<command>sendmail</command> command)</para>
|
|
|
|
<bridgehead renderas="sect4">Optional Graphics Utilities and Libraries</bridgehead>
|
|
<para role="optional"><xref linkend="libjpeg"/>,
|
|
<xref linkend="libtiff"/>,
|
|
<xref linkend="libpng"/>,
|
|
<xref linkend="libexif"/>,
|
|
<xref linkend="freetype2"/>,
|
|
<xref linkend="x-window-system"/>,
|
|
<ulink url="http://www.fastio.com/">ClibPDF</ulink>,
|
|
<ulink url="https://bitbucket.org/libgd/gd-libgd/downloads">GD</ulink>,
|
|
<ulink url="http://fossies.org/linux/misc/t1lib-5.1.2.tar.gz/">t1lib</ulink>, and
|
|
<ulink url="http://partners.adobe.com/asn/acrobat/forms.jsp">FDF Toolkit</ulink></para>
|
|
|
|
<bridgehead renderas="sect4">Optional Web Utilities</bridgehead>
|
|
<para role="optional"><xref linkend="curl"/>,
|
|
<xref linkend="html-tidy"/>,
|
|
<ulink url="http://www.mnogosearch.org/">mnoGoSearch</ulink>,
|
|
<ulink url="http://www.hyperwave.com/">Hyperwave</ulink>,
|
|
<ulink url="http://www.roxen.com/products/webserver/">Roxen WebServer</ulink>,
|
|
<ulink url="http://caudium.net/">Caudium</ulink>, and
|
|
<ulink url="https://wddxnet.codeplex.com/">WDDX</ulink></para>
|
|
|
|
<bridgehead renderas="sect4">Optional Data Management Utilities and Libraries</bridgehead>
|
|
<para role="optional"><xref linkend="openldap"/>,
|
|
<!-- <xref linkend="gdbm"/>, -->
|
|
<xref linkend="db"/>,
|
|
<xref linkend="mariadb"/> or <xref linkend="mysql"/>,
|
|
<xref linkend="postgresql"/>,
|
|
<xref linkend="unixodbc"/>,
|
|
<xref linkend="sqlite"/>,
|
|
<ulink url="http://qdbm.sourceforge.net/">QDBM</ulink>,
|
|
<ulink url="http://cr.yp.to/cdb.html">cdb</ulink>,
|
|
<ulink url="http://www.hughes.com.au/products/msql/">Mini SQL</ulink>,
|
|
<ulink url="http://www.empress.com/">Empress</ulink>,
|
|
<ulink url="http://www.birdstep.com/">Birdstep</ulink>,
|
|
<ulink url="http://www.dbmaker.com/">DBMaker</ulink>,
|
|
<ulink url="http://www.softwareag.com/">Adabas</ulink>,
|
|
<ulink url="http://www.frontbase.com/">FrontBase</ulink>, and
|
|
<ulink url="http://www.mainstreetsoftworks.com/">Monetra</ulink></para>
|
|
|
|
<para><application>PHP</application> also provides support for many
|
|
commercial database tools such as <application>Oracle</application>,
|
|
<application>SAP</application> and
|
|
<application>ODBC Router</application>.</para>
|
|
|
|
<bridgehead renderas="sect4">Optional Security/Encryption Utilities and Libraries</bridgehead>
|
|
<para role="optional"><xref linkend="openssl"/>,
|
|
<xref linkend="cyrus-sasl"/>,
|
|
<xref linkend="mitkrb"/>,
|
|
<ulink url="http://mcrypt.sourceforge.net/">libmcrypt</ulink>, and
|
|
<ulink url="http://mhash.sourceforge.net/">mhash</ulink></para>
|
|
|
|
<para condition="html" role="usernotes">User Notes:
|
|
<ulink url="&blfs-wiki;/php"/></para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="installation">
|
|
<title>Installation of PHP</title>
|
|
|
|
<para>You can use <application>PHP</application> for server-side
|
|
scripting, command-line scripting or client-side GUI applications. This
|
|
book provides instructions for setting up <application>PHP</application>
|
|
for server-side scripting as it is the most common form.</para>
|
|
|
|
<note>
|
|
<para><application>PHP</application> has many more
|
|
<command>configure</command> options that will enable support for various
|
|
things. You can use <command>./configure --help</command> to see a full
|
|
list of the available options. Also, use of the
|
|
<ulink url="http://www.php.net/">PHP web site</ulink>
|
|
is highly recommended, as their online docs are very good. An example of
|
|
a <command>configure</command> command that utilizes many of the most
|
|
common dependencies can be found at <ulink
|
|
url="&files-anduin;/php_configure.txt"/>.
|
|
</para>
|
|
|
|
<para>If, for whatever reason, you don't have <xref linkend="libxml2"/>
|
|
installed, you need to add <option>--disable-libxml</option> to the
|
|
<command>configure</command> command in the instructions below. Note that
|
|
this will prevent the <command>pear</command> command from being
|
|
built.</para>
|
|
</note>
|
|
|
|
<para>Install <application>PHP</application> by
|
|
running the following commands:</para>
|
|
|
|
<screen><userinput>sed -i -e 's/2.6.5 2.7/& 3.0/' configure &&
|
|
./configure --prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--with-apxs2 \
|
|
--with-config-file-path=/etc \
|
|
--with-zlib \
|
|
--enable-bcmath \
|
|
--with-bz2 \
|
|
--enable-calendar \
|
|
--enable-dba=shared \
|
|
--with-gdbm \
|
|
--with-gmp \
|
|
--enable-ftp \
|
|
--with-gettext \
|
|
--enable-mbstring \
|
|
--with-readline &&
|
|
make</userinput></screen>
|
|
|
|
<para>To test the results, issue: <command>make test</command>. A few
|
|
tests may fail.</para>
|
|
|
|
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<!-- dev note: make INSTALL_ROOT=<DESTDIR> install -->
|
|
|
|
<screen role="root"><userinput>make install &&
|
|
install -v -m644 php.ini-production /etc/php.ini &&
|
|
|
|
install -v -m755 -d /usr/share/doc/php-&php-version; &&
|
|
install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS README* UPGRADING* php.gif \
|
|
/usr/share/doc/php-&php-version; &&
|
|
ln -v -sfn /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
|
|
/usr/share/doc/php-&php-version; &&
|
|
ln -v -sfn /usr/lib/php/doc/Structures_Graph/docs \
|
|
/usr/share/doc/php-&php-version;</userinput></screen>
|
|
|
|
<para>The pre-built HTML documentation is packaged in two forms: a tarball
|
|
containing many individual files, useful for quick loading into your
|
|
browser, and one large individual file, which is useful for using the
|
|
search utility of your browser. If you downloaded either, or both, of the
|
|
documentation files, issue the following commands as the
|
|
<systemitem class='username'>root</systemitem> user to install them (note
|
|
these instructions assume English docs, modify the tarball names below if
|
|
necessary).</para>
|
|
|
|
<para>For the <quote>Single HTML</quote> file:</para>
|
|
|
|
<screen role="root"><userinput>install -v -m644 ../php_manual_en.html.gz \
|
|
/usr/share/doc/php-&php-version; &&
|
|
gunzip -v /usr/share/doc/php-&php-version;/php_manual_en.html.gz</userinput></screen>
|
|
|
|
<para>For the <quote>Many HTML files</quote> tarball:</para>
|
|
|
|
<screen role="root"><userinput>tar -xvf ../php_manual_en.tar.gz \
|
|
-C /usr/share/doc/php-&php-version; --no-same-owner</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="commands">
|
|
<title>Command Explanations</title>
|
|
|
|
<para><command>sed -i -e 's/2.6.5 2.7/& 3.0/' configure</command>: Make
|
|
<filename>configure</filename> accept the version 3.0 of
|
|
<application>Bison</application> as a valid version.</para>
|
|
|
|
<para><parameter>--with-apxs2</parameter>: This parameter
|
|
builds the Apache HTTPD 2.0 module.</para>
|
|
|
|
<para><parameter>--with-config-file-path=/etc</parameter>: This parameter
|
|
makes <application>PHP</application> look for the
|
|
<filename>php.ini</filename> configuration file in
|
|
<filename class='directory'>/etc</filename>.</para>
|
|
|
|
<para><parameter>--with-zlib</parameter>: This parameter adds
|
|
support for <application>Zlib</application> compression.</para>
|
|
|
|
<para><parameter>--enable-bcmath</parameter>: Enables
|
|
<command>bc</command> style precision math functions.</para>
|
|
|
|
<para><parameter>--with-bz2</parameter>: Adds support for
|
|
<application>Bzip2</application> compression functions.</para>
|
|
|
|
<para><parameter>--enable-calendar</parameter>: This parameter
|
|
provides support for calendar conversion.</para>
|
|
|
|
<para><parameter>--enable-dba=shared</parameter>: This parameter enables
|
|
support for database (dbm-style) abstraction layer functions.</para>
|
|
|
|
<para><parameter>--enable-ftp</parameter>: This parameter
|
|
enables FTP functions.</para>
|
|
|
|
<para><parameter>--with-gettext</parameter>: Enables functions
|
|
that use <application>Gettext</application> text translation.</para>
|
|
|
|
<para><parameter>--enable-mbstring</parameter>: This parameter
|
|
enables multibyte string support.</para>
|
|
|
|
<para><parameter>--with-readline</parameter>: This parameter
|
|
enables command line <application>Readline</application> support.</para>
|
|
|
|
<para><option>--disable-libxml</option>: This option
|
|
allows building PHP without <application>libxml2</application>
|
|
installed.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="configuration">
|
|
<title>Configuring PHP</title>
|
|
|
|
<sect3 id="php-config">
|
|
<title>Config Files</title>
|
|
|
|
<para><filename>/etc/php.ini</filename> and
|
|
<filename>/etc/pear.conf</filename></para>
|
|
|
|
<indexterm zone="php php-config">
|
|
<primary sortas="e-etc-php.ini">/etc/php.ini</primary>
|
|
</indexterm>
|
|
|
|
<indexterm zone="php php-config">
|
|
<primary sortas="e-etc-pear.conf">/etc/pear.conf</primary>
|
|
</indexterm>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Configuration Information</title>
|
|
|
|
<para>The file used as the default <filename>/etc/php.ini</filename>
|
|
configuration file is recommended by the <application>PHP</application>
|
|
development team. This file modifies the default behavior of
|
|
<application>PHP</application>. If no <filename>/etc/php.ini</filename>
|
|
is used, all configuration settings fall to the defaults. You should
|
|
review the comments in this file and ensure the changes are acceptable
|
|
in your particular environment.</para>
|
|
|
|
<para>You may have noticed the following from the output of the
|
|
<command>make install</command> command:</para>
|
|
|
|
<screen><computeroutput>You may want to add: /usr/lib/php to your php.ini include_path</computeroutput></screen>
|
|
|
|
<para>If desired, add the entry using the following command as the
|
|
<systemitem class="username">root</systemitem> user:</para>
|
|
|
|
<screen role="root"><userinput>sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
|
|
/etc/php.ini</userinput></screen>
|
|
|
|
<para>To enable PHP support in the <application>Apache</application>
|
|
web server, a new LoadModule (which should be handled automatically by the
|
|
<command>make install</command> command) and AddType directives
|
|
must be added to the <filename>httpd.conf</filename> file:</para>
|
|
|
|
<screen><literal>LoadModule php5_module lib/apache/libphp5.so
|
|
AddType application/x-httpd-php .php</literal></screen>
|
|
|
|
<para>Additionally, it can be useful to add an entry for
|
|
<filename>index.php</filename> to the DirectoryIndex directive of the
|
|
<filename>httpd.conf</filename> file. Lastly, adding a line to setup the
|
|
<filename class='extension'>.phps</filename> extension to show
|
|
highlighted <application>PHP</application> source may be
|
|
desirable:</para>
|
|
|
|
<screen><literal>AddType application/x-httpd-php-source .phps</literal></screen>
|
|
|
|
<para>You'll need to restart the <application>Apache</application> web server
|
|
after making any modifications to the <filename>httpd.conf</filename>
|
|
file.</para>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="content">
|
|
<title>Contents</title>
|
|
|
|
<segmentedlist>
|
|
<segtitle>Installed Programs</segtitle>
|
|
<segtitle>Installed Library</segtitle>
|
|
<segtitle>Installed Directories</segtitle>
|
|
|
|
<seglistitem>
|
|
<seg>pear, peardev, pecl, phar, phar.phar, php, php-cgi, php-config, and phpize</seg>
|
|
<seg>libphp5.so Apache module</seg>
|
|
<seg>/usr/include/php, /usr/lib/php and
|
|
/usr/share/doc/php-&php-version;</seg>
|
|
</seglistitem>
|
|
</segmentedlist>
|
|
|
|
<variablelist>
|
|
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
|
<?dbfo list-presentation="list"?>
|
|
<?dbhtml list-presentation="table"?>
|
|
|
|
<varlistentry id="php-prog">
|
|
<term><command>php</command></term>
|
|
<listitem>
|
|
<para>is a command line interface that enables you to parse and
|
|
execute PHP code.</para>
|
|
<indexterm zone="php php-prog">
|
|
<primary sortas="b-php">php</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="pear">
|
|
<term><command>pear</command></term>
|
|
<listitem>
|
|
<para>is the PHP Extension and Application
|
|
Repository (PEAR) package manager.</para>
|
|
<indexterm zone="php pear">
|
|
<primary sortas="b-pear">pear</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|