source: general/prog/php.xml@ ca29ea3

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 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 ca29ea3 was 7f5c97e, checked in by Manuel Canales Esparcia <manuel@…>, 18 years ago

Made all dependencies an a mail server actual cross-references.

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

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