source: general/prog/php.xml@ 955b7fd2

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 955b7fd2 was 53ed2b4, checked in by Randy McMurchy <randy@…>, 13 years ago

Updated BLFS to 5.3.3 (5.3.4 has since been released)

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@8748 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 16.9 KB
RevLine 
[08254fc]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[08254fc]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY php-download-http "http://us2.php.net/distributions/php-&php-version;.tar.bz2">
8 <!ENTITY php-download-ftp "ftp://ftp.isu.edu.tw/pub/Unix/Web/PHP/distributions/php-&php-version;.tar.bz2">
[53ed2b4]9 <!ENTITY php-md5sum "21ceeeb232813c10283a5ca1b4c87b48">
10 <!ENTITY php-size "10.6 MB">
[0fb9d5f]11 <!ENTITY php-buildsize "390 MB (includes installing all documentation)">
[53ed2b4]12 <!ENTITY php-time "3.5 SBU (additional 10.2 SBU to run the test suite)">
[08254fc]13]>
14
[6683a00]15<sect1 id="php" xreflabel="PHP-&php-version;">
[db81e4cb]16 <?dbhtml filename="php.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>PHP-&php-version;</title>
24
25 <indexterm zone="php">
26 <primary sortas="a-PHP">PHP</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to PHP</title>
31
[7cd76d62]32 <para><application>PHP</application> is the PHP Hypertext Preprocessor.
33 Primarily used in dynamic web sites, it allows for programming code to be
[db81e4cb]34 directly embedded into the HTML markup.</para>
35
36 <bridgehead renderas="sect3">Package Information</bridgehead>
37 <itemizedlist spacing="compact">
38 <listitem>
39 <para>Download (HTTP): <ulink url="&php-download-http;"/></para>
40 </listitem>
41 <listitem>
42 <para>Download (FTP): <ulink url="&php-download-ftp;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download MD5 sum: &php-md5sum;</para>
46 </listitem>
47 <listitem>
48 <para>Download size: &php-size;</para>
49 </listitem>
50 <listitem>
51 <para>Estimated disk space required: &php-buildsize;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated build time: &php-time;</para>
55 </listitem>
56 </itemizedlist>
57
58 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
59 <itemizedlist spacing="compact">
[53ed2b4]60 <listitem>
61 <para>Required patch for Berkeley DB and EPI discovery: <ulink
62 url="&patch-root;/php-&php-version;-configure-1.patch"/></para>
63 </listitem>
[b84326b7]64 <listitem>
65 <para>Pre-built documentation (optional): <ulink
66 url="http://www.php.net/download-docs.php"/></para>
67 </listitem>
[db81e4cb]68 </itemizedlist>
69
70 <bridgehead renderas="sect3">PHP Dependencies</bridgehead>
71
72 <bridgehead renderas="sect4">Required</bridgehead>
[256ee72c]73 <para role="required"><xref linkend="apache"/></para>
[db81e4cb]74
[2f65edb]75 <bridgehead renderas="sect4">Recommended</bridgehead>
[256ee72c]76 <para role="recommended"><xref linkend="libxml2"/></para>
[2f65edb]77
[b84326b7]78 <bridgehead renderas="sect4">Optional System Utilities and Libraries</bridgehead>
[256ee72c]79 <para role="optional"><xref linkend="libxslt"/>,
[e797436]80 <!-- <xref linkend="gamin"/>, -->
[db81e4cb]81 <xref linkend="pcre"/>,
82 <xref linkend="aspell"/>,
[0fb9d5f]83 <xref linkend="enchant"/>,
[358241d1]84 <!-- <xref linkend="pkgconfig"/>, -->
[a33e5398]85 <xref linkend="recode"/>,
[2f65edb]86 <xref linkend="expat"/> (deprecated alternative to <xref linkend="libxml2"/>),
[b3799be4]87 <ulink url="http://www.ossp.org/pkg/lib/mm/">OSSP mm</ulink>,
[db81e4cb]88 <ulink url="http://www.net-snmp.org/">Net-SNMP</ulink>,
[eab03ca]89 <xref linkend="pth"/>,
[ba1a38b]90 <ulink url="http://re2c.org/">re2c</ulink>,
[bd38f0a]91 <ulink url="http://xmlrpc-epi.sourceforge.net/main.php?t=php_about">XMLRPC-EPI</ulink>,
[a33e5398]92 <ulink url="http://dmalloc.com/">Dmalloc</ulink>, and
[7f5c97e]93 an <xref linkend="server-mail"/> (that provides a
[ba1a38b]94 <command>sendmail</command> command)</para>
[b84326b7]95
96 <bridgehead renderas="sect4">Optional Graphics Utilities and Libraries</bridgehead>
[256ee72c]97 <para role="optional"><xref linkend="libjpeg"/>,
[b84326b7]98 <xref linkend="libtiff"/>,
99 <xref linkend="libpng"/>,
[ba1a38b]100 <xref linkend="libexif"/>,
[b84326b7]101 <xref linkend="freetype2"/>,
[e77976f]102 <xref linkend="x-window-system"/>,
[b84326b7]103 <ulink url="http://www.fastio.com/">ClibPDF</ulink>,
[0fb9d5f]104 <ulink url="http://www.libgd.org/Main_Page">GD</ulink>,
[41eec069]105 <ulink url="http://www.sfr-fresh.com/linux/misc/t1lib">t1lib</ulink>, and
[b84326b7]106 <ulink url="http://partners.adobe.com/asn/acrobat/forms.jsp">FDF Toolkit</ulink></para>
107
108 <bridgehead renderas="sect4">Optional Web Utilities</bridgehead>
[256ee72c]109 <para role="optional"><xref linkend="curl"/>,
[b84326b7]110 <xref linkend="html-tidy"/>,
[db81e4cb]111 <ulink url="http://www.mnogosearch.org/">mnoGoSearch</ulink>,
[b84326b7]112 <ulink url="http://www.hyperwave.com/">Hyperwave</ulink>,
[ba1a38b]113 <ulink url="http://www.roxen.com/products/webserver/">Roxen WebServer</ulink>,
[3f87e4a]114 <ulink url="http://caudium.net/">Caudium</ulink>, and
[b84326b7]115 <ulink url="http://www.openwddx.org/">WDDX</ulink></para>
116
117 <bridgehead renderas="sect4">Optional Data Management Utilities and Libraries</bridgehead>
[256ee72c]118 <para role="optional"><xref linkend="openldap"/>,
[de7f20e]119 <!-- <xref linkend="gdbm"/>, -->
120 <xref linkend="db"/>,
[b84326b7]121 <xref linkend="mysql"/>,
122 <xref linkend="postgresql"/>,
[76b19ad]123 <xref linkend="unixodbc"/>,
[8f9c757e]124 <xref linkend="sqlite"/>,
[b84326b7]125 <ulink url="http://qdbm.sourceforge.net/">QDBM</ulink>,
126 <ulink url="http://cr.yp.to/cdb.html">cdb</ulink>,
[db81e4cb]127 <ulink url="http://www.hughes.com.au/products/msql/">Mini SQL</ulink>,
128 <ulink url="http://www.empress.com/">Empress</ulink>,
129 <ulink url="http://www.birdstep.com/">Birdstep</ulink>,
130 <ulink url="http://www.dbmaker.com/">DBMaker</ulink>,
131 <ulink url="http://www.softwareag.com/">Adabas</ulink>,
[3f87e4a]132 <ulink url="http://www.frontbase.com/">FrontBase</ulink>, and
[b84326b7]133 <ulink url="http://www.mainstreetsoftworks.com/">Monetra</ulink></para>
134
[e797436]135 <para><application>PHP</application> also provides support for many
136 commercial database tools such as <application>Oracle</application>,
137 <application>SAP</application> and
138 <application>ODBC Router</application>.</para>
139
[b84326b7]140 <bridgehead renderas="sect4">Optional Security/Encryption Utilities and Libraries</bridgehead>
[256ee72c]141 <para role="optional"><xref linkend="openssl"/>,
[b84326b7]142 <xref linkend="cyrus-sasl"/>,
143 <xref linkend="mitkrb"/> or <xref linkend="heimdal"/>,
[3f87e4a]144 <ulink url="http://mcrypt.sourceforge.net/">libmcrypt</ulink>, and
[b84326b7]145 <ulink url="http://mhash.sourceforge.net/">mhash</ulink></para>
[db81e4cb]146
[1039de3]147 <para condition="html" role="usernotes">User Notes:
148 <ulink url="&blfs-wiki;/php"/></para>
149
[db81e4cb]150 </sect2>
151
152 <sect2 role="installation">
153 <title>Installation of PHP</title>
154
[e797436]155 <para>You can use <application>PHP</application> for server-side
156 scripting, command-line scripting or client-side GUI applications. This
157 book provides instructions for setting up <application>PHP</application>
158 for server-side scripting as it is the most common form.</para>
[db81e4cb]159
[3f87e4a]160 <!-- Commenting this out for now as BDB is built in LFS
161
[7cd76d62]162 <para>If you have <application>Berkeley DB</application> installed and
[db81e4cb]163 wish to utilize it, apply the following patch:</para>
164
165<screen><userinput>patch -Np1 -i ../php-&php-version;-db43-1.patch</userinput></screen>
166
[3f87e4a]167 -->
168
[b84326b7]169 <note>
170 <para><application>PHP</application> has many more
[ba1a38b]171 <command>configure</command> options that will enable support for various
[b84326b7]172 things. You can use <command>./configure --help</command> to see a full
173 list of the available options. Also, use of the
174 <ulink url="http://www.php.net/">PHP web site</ulink>
[e797436]175 is highly recommended, as their online docs are very good. An example of
176 a <command>configure</command> command that utilizes many of the most
177 common dependencies can be found at <ulink
[4e88613]178 url="&files-anduin;/php_configure.txt"/>.
[e797436]179 </para>
[3f87e4a]180
181 <para>If, for whatever reason, you don't have <xref linkend="libxml2"/>
182 installed, you need to add <option>--disable-libxml</option> to the
[e797436]183 <command>configure</command> command in the instructions below. Note that
184 this will prevent the <command>pear</command> command from being
185 built.</para>
[b84326b7]186 </note>
187
[ba1a38b]188 <!-- Commenting this out as libxml is a recommended dependency.
189 Current protocol in the book is to expect folks to have it
[3f87e4a]190 installed and the note above should take care of it.
[ba1a38b]191
192 <para>Remove the <parameter>-disable-libxml</parameter> switch if you
[b84326b7]193 have <xref linkend="libxml2"/> installed otherwise
194 <command>pear</command> will not be built.</para>
[ba1a38b]195 -->
[b84326b7]196
[db81e4cb]197 <para>Install <application>PHP</application> by
198 running the following commands:</para>
199
[53ed2b4]200<screen><userinput>patch -Np1 -i ../php-&php-version;-configure-1.patch &amp;&amp;
201./configure --prefix=/usr \
[4a93a3c]202 --sysconfdir=/etc \
203 --with-apxs2 \
204 --with-config-file-path=/etc \
205 --with-zlib \
[5056a3b]206 --enable-bcmath \
[4a93a3c]207 --with-bz2 \
[990f983]208 --enable-calendar \
[0fb9d5f]209 --enable-dba=shared \
210 --with-gdbm \
211 --with-gmp \
[4a93a3c]212 --enable-ftp \
213 --with-gettext \
[fbbf93e]214 --enable-mbstring \
[ba1a38b]215 --with-readline &amp;&amp;
[db81e4cb]216make</userinput></screen>
217
[d6f7e6cb]218 <para>To test the results, issue: <command>make test</command>. Some of
219 the tests are known to fail.</para>
220
221 <!--Three of
[e797436]222 the (over 1600) tests are known to fail: an <command>iconv</command>
223 stream filter test (ext/iconv/tests/iconv_stream_filter.phpt) and two
224 MBString function overload tests (ext/mbstring/tests/overload01.phpt and
225 ext/mbstring/tests/overload02.phpt). Additionally, if you have the
226 <application>unixODBC</application> package installed and linked into the
[d6f7e6cb]227 build, you may see many failures related to it.</para> -->
[1f01e7e7]228
[db81e4cb]229 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
230
231<screen role="root"><userinput>make install &amp;&amp;
[0fb9d5f]232install -v -m644 php.ini-production /etc/php.ini &amp;&amp;
[d6f7e6cb]233
[ba1a38b]234install -v -m755 -d /usr/share/doc/php-&php-version; &amp;&amp;
235install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS \
236 README* TODO* UPGRADING php.gif \
237 /usr/share/doc/php-&php-version; &amp;&amp;
238ln -v -s /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
[0fb9d5f]239 /usr/share/doc/php-&php-version; &amp;&amp;
240ln -v -s /usr/lib/php/doc/Structures_Graph/docs \
241 /usr/share/doc/php-&php-version;</userinput></screen>
[db81e4cb]242
[b84326b7]243 <para>The pre-built HTML documentation is packaged in two forms: a tarball
244 containing many individual files, useful for quick loading into your
[ba1a38b]245 browser, and one large individual file, which is useful for using the
246 search utility of your browser. If you downloaded either, or both, of the
247 documentation files, issue the following commands as the
248 <systemitem class='username'>root</systemitem> user to install them (note
[b84326b7]249 these instructions assume English docs, modify the tarball names below if
250 necessary).</para>
[db81e4cb]251
[ba1a38b]252 <para>For the <quote>Single HTML</quote> file:</para>
[b84326b7]253
254<screen role="root"><userinput>install -v -m644 ../php_manual_en.html.gz \
255 /usr/share/doc/php-&php-version; &amp;&amp;
256gunzip -v /usr/share/doc/php-&php-version;/php_manual_en.html.gz</userinput></screen>
257
258 <para>For the <quote>Many HTML files</quote> tarball:</para>
259
[0fb9d5f]260<screen role="root"><userinput>tar -xvf ../php_manual_en.tar.gz \
261 -C /usr/share/doc/php-&php-version; --no-same-user</userinput></screen>
[db81e4cb]262
263 </sect2>
[b84326b7]264
[934c9b26]265 <sect2 role="commands">
266 <title>Command Explanations</title>
[db81e4cb]267
[0fb9d5f]268 <!-- <para><command>sed -i '...' ext/dba/dba_db4.c</command>: This command is
269 used to fix an issue with the use of Berkeley DB &gt;= 4.3.x.</para> -->
[e797436]270
[934c9b26]271 <para><parameter>--with-apxs2</parameter>: This parameter
[b84326b7]272 builds the Apache HTTPD 2.0 module.</para>
[934c9b26]273
274 <para><parameter>--with-config-file-path=/etc</parameter>: This parameter
[ba1a38b]275 makes <application>PHP</application> look for the
276 <filename>php.ini</filename> configuration file in
277 <filename class='directory'>/etc</filename>.</para>
[934c9b26]278
[bccbdaea]279 <para><parameter>--with-zlib</parameter>: This parameter adds
[3239e36]280 support for <application>Zlib</application> compression.</para>
[934c9b26]281
[b84326b7]282 <para><parameter>--enable-bcmath</parameter>: Enables
283 <command>bc</command> style precision math functions.</para>
[bccbdaea]284
[2f65edb]285 <para><parameter>--with-bz2</parameter>: Adds support for
[b84326b7]286 <application>Bzip2</application> compression functions.</para>
[934c9b26]287
288 <para><parameter>--enable-calendar</parameter>: This parameter
289 provides support for calendar conversion.</para>
290
[0fb9d5f]291 <para><parameter>--enable-dba=shared</parameter>: This parameter enables
[2f65edb]292 support for database (dbm-style) abstraction layer functions.</para>
[934c9b26]293
294 <para><parameter>--enable-ftp</parameter>: This parameter
[3239e36]295 enables FTP functions.</para>
[934c9b26]296
297 <para><parameter>--with-gettext</parameter>: Enables functions
[3239e36]298 that use <application>Gettext</application> text translation.</para>
[934c9b26]299
300 <para><parameter>--enable-mbstring</parameter>: This parameter
301 enables multibyte string support.</para>
302
303 <para><parameter>--with-readline</parameter>: This parameter
[b84326b7]304 enables command line <application>Readline</application> support.</para>
[934c9b26]305
306 <para><parameter>--disable-libxml</parameter>: This parameter
[ba1a38b]307 allows building PHP without <application>libxml2</application>
[2f65edb]308 installed.</para>
[934c9b26]309
310 </sect2>
[bccbdaea]311
[db81e4cb]312 <sect2 role="configuration">
313 <title>Configuring PHP</title>
314
315 <sect3 id="php-config">
316 <title>Config Files</title>
317
[ba1a38b]318 <para><filename>/etc/php.ini</filename> and
[db81e4cb]319 <filename>/etc/pear.conf</filename></para>
320
321 <indexterm zone="php php-config">
322 <primary sortas="e-etc-php.ini">/etc/php.ini</primary>
323 </indexterm>
324
325 <indexterm zone="php php-config">
326 <primary sortas="e-etc-pear.conf">/etc/pear.conf</primary>
327 </indexterm>
328
329 </sect3>
330
331 <sect3>
332 <title>Configuration Information</title>
333
[e797436]334 <para>The file used as the default <filename>/etc/php.ini</filename>
335 configuration file is recommended by the <application>PHP</application>
336 development team. This file modifies the default behavior of
[254be7d3]337 <application>PHP</application>. If no <filename>/etc/php.ini</filename>
338 is used, all configuration settings fall to the defaults. You should
[e797436]339 review the comments in this file and ensure the changes are acceptable
340 in your particular environment.</para>
341
[b84326b7]342 <para>You may have noticed the following from the output of the
343 <command>make install</command> command:</para>
344
[7c1d541]345<screen><computeroutput>You may want to add: /usr/lib/php to your php.ini include_path</computeroutput></screen>
[b84326b7]346
347 <para>If desired, add the entry using the following command as the
348 <systemitem class="username">root</systemitem> user:</para>
349
[7c1d541]350<screen role="root"><userinput>sed -i 's@php/includes"@&amp;\ninclude_path = ".:/usr/lib/php"@' \
[b84326b7]351 /etc/php.ini</userinput></screen>
352
[0619e6d]353 <para>To enable PHP support in the <application>Apache</application>
[db81e4cb]354 web server, a new LoadModule (which should be handled automatically by the
[7cd76d62]355 <command>make install</command> command) and AddType directives
[db81e4cb]356 must be added to the <filename>httpd.conf</filename> file:</para>
357
358<screen><literal>LoadModule php5_module lib/apache/libphp5.so
359AddType application/x-httpd-php .php</literal></screen>
360
[e797436]361 <para>Additionally, it can be useful to add an entry for
[7cd76d62]362 <filename>index.php</filename> to the DirectoryIndex directive of the
[e797436]363 <filename>httpd.conf</filename> file. Lastly, adding a line to setup the
364 <filename class='extension'>.phps</filename> extension to show
365 highlighted <application>PHP</application> source may be
366 desirable:</para>
367
368<screen><literal>AddType application/x-httpd-php-source .phps</literal></screen>
[db81e4cb]369
[7cd76d62]370 <para>You'll need to restart the <application>Apache</application> web server
[0619e6d]371 after making any modifications to the <filename>httpd.conf</filename>
[db81e4cb]372 file.</para>
373
374 </sect3>
375
376 </sect2>
377
378 <sect2 role="content">
379 <title>Contents</title>
380
381 <segmentedlist>
382 <segtitle>Installed Programs</segtitle>
383 <segtitle>Installed Library</segtitle>
384 <segtitle>Installed Directories</segtitle>
385
386 <seglistitem>
[e797436]387 <seg>pear, peardev, pecl, php, php-config and phpize</seg>
388 <seg>libphp5.so Apache module</seg>
[ba1a38b]389 <seg>/usr/include/php, /usr/lib/php and
390 /usr/share/doc/php-&php-version;</seg>
[db81e4cb]391 </seglistitem>
392 </segmentedlist>
393
394 <variablelist>
395 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
396 <?dbfo list-presentation="list"?>
397 <?dbhtml list-presentation="table"?>
398
399 <varlistentry id="php-prog">
400 <term><command>php</command></term>
401 <listitem>
[7cd76d62]402 <para>is a command line interface that enables you to parse and
[db81e4cb]403 execute PHP code.</para>
404 <indexterm zone="php php-prog">
405 <primary sortas="b-php">php</primary>
406 </indexterm>
407 </listitem>
408 </varlistentry>
409
410 <varlistentry id="pear">
411 <term><command>pear</command></term>
412 <listitem>
[7cd76d62]413 <para>is the PHP Extension and Application
[db81e4cb]414 Repository (PEAR) package manager.</para>
415 <indexterm zone="php pear">
416 <primary sortas="b-pear">pear</primary>
417 </indexterm>
418 </listitem>
419 </varlistentry>
420
421 </variablelist>
422
423 </sect2>
[f45b1953]424
425</sect1>
Note: See TracBrowser for help on using the repository browser.