source: general/prog/php.xml@ 9f12e36

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 9f12e36 was 9f12e36, checked in by Randy McMurchy <randy@…>, 18 years ago

Removed 'keywordset' blocks and extra spaces from the XML files (note this was by accident as I meant to do just in the gnome directory but I was in the root of BOOK when I ran the script, but this was going to happen anyway so I don't think it is a big deal)

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

  • Property mode set to 100644
File size: 17.1 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 </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
32 <para><application>PHP</application> is the PHP Hypertext Preprocessor.
33 Primarily used in dynamic web sites, it allows for programming code to be
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">
60 <!-- <listitem>
61 <para>Required patch for Berkeley DB: <ulink
62 url="&patch-root;/php-&php-version;-db43-1.patch"/></para>
63 </listitem> -->
64 <listitem>
65 <para>Pre-built documentation (optional): <ulink
66 url="http://www.php.net/download-docs.php"/></para>
67 </listitem>
68 </itemizedlist>
69
70 <bridgehead renderas="sect3">PHP Dependencies</bridgehead>
71
72 <bridgehead renderas="sect4">Required</bridgehead>
73 <para role="required"><xref linkend="apache"/></para>
74
75 <bridgehead renderas="sect4">Recommended</bridgehead>
76 <para role="recommended"><xref linkend="libxml2"/></para>
77
78 <bridgehead renderas="sect4">Optional System Utilities and Libraries</bridgehead>
79 <para role="optional"><xref linkend="libxslt"/>,
80 <!-- <xref linkend="gamin"/>, -->
81 <xref linkend="gmp"/>,
82 <xref linkend="pcre"/>,
83 <xref linkend="aspell"/>,
84 <xref linkend="pkgconfig"/>,
85 <xref linkend="expat"/> (deprecated alternative to <xref linkend="libxml2"/>),
86 <ulink url="http://www.ossp.org/pkg/lib/mm/">OSSP mm</ulink>,
87 <ulink url="http://www.net-snmp.org/">Net-SNMP</ulink>,
88 <ulink url="http://www.gnu.org/software/pth/">GNU Pth</ulink>,
89 <ulink url="http://re2c.org/">re2c</ulink>,
90 <ulink url="http://dmalloc.com/">Dmalloc</ulink>,
91 <ulink url="http://www.gnu.org/software/recode/">recode</ulink>, and
92 an <xref linkend="server-mail"/> (that provides a
93 <command>sendmail</command> command)</para>
94
95 <bridgehead renderas="sect4">Optional Graphics Utilities and Libraries</bridgehead>
96 <para role="optional"><xref linkend="libjpeg"/>,
97 <xref linkend="libtiff"/>,
98 <xref linkend="libpng"/>,
99 <xref linkend="libexif"/>,
100 <xref linkend="freetype2"/>,
101 <xref linkend="x-window-system"/>,
102 <ulink url="http://www.fastio.com/">ClibPDF</ulink>,
103 <ulink url="http://www.boutell.com/gd/">GD</ulink>,
104 <ulink url="http://gd.tuwien.ac.at/visual/ibiblio/libs/graphics/t1lib-5.1.0.tar.gz">
105 t1lib</ulink>, and
106 <ulink url="http://partners.adobe.com/asn/acrobat/forms.jsp">FDF Toolkit</ulink></para>
107
108 <bridgehead renderas="sect4">Optional Web Utilities</bridgehead>
109 <para role="optional"><xref linkend="curl"/>,
110 <xref linkend="html-tidy"/>,
111 <ulink url="http://www.mnogosearch.org/">mnoGoSearch</ulink>,
112 <ulink url="http://www.hyperwave.com/">Hyperwave</ulink>,
113 <ulink url="http://www.roxen.com/products/webserver/">Roxen WebServer</ulink>,
114 <ulink url="http://caudium.net/">Caudium</ulink>, and
115 <ulink url="http://www.openwddx.org/">WDDX</ulink></para>
116
117 <bridgehead renderas="sect4">Optional Data Management Utilities and Libraries</bridgehead>
118 <para role="optional"><xref linkend="openldap"/>,
119 <xref linkend="gdbm"/>,
120 <!-- <xref linkend="db"/>, -->
121 <xref linkend="mysql"/>,
122 <xref linkend="postgresql"/>,
123 <xref linkend="unixodbc"/>,
124 <ulink url="http://qdbm.sourceforge.net/">QDBM</ulink>,
125 <ulink url="http://cr.yp.to/cdb.html">cdb</ulink>,
126 <ulink url="http://www.sqlite.org/">SQLite</ulink>,
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>,
132 <ulink url="http://www.frontbase.com/">FrontBase</ulink>, and
133 <ulink url="http://www.mainstreetsoftworks.com/">Monetra</ulink></para>
134
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
140 <bridgehead renderas="sect4">Optional Security/Encryption Utilities and Libraries</bridgehead>
141 <para role="optional"><xref linkend="openssl"/>,
142 <xref linkend="cyrus-sasl"/>,
143 <xref linkend="mitkrb"/> or <xref linkend="heimdal"/>,
144 <ulink url="http://mcrypt.sourceforge.net/">libmcrypt</ulink>, and
145 <ulink url="http://mhash.sourceforge.net/">mhash</ulink></para>
146
147 <para condition="html" role="usernotes">User Notes:
148 <ulink url="&blfs-wiki;/php"/></para>
149
150 </sect2>
151
152 <sect2 role="installation">
153 <title>Installation of PHP</title>
154
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>
159
160 <!-- Commenting this out for now as BDB is built in LFS
161
162 <para>If you have <application>Berkeley DB</application> installed and
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
167 -->
168
169 <note>
170 <para><application>PHP</application> has many more
171 <command>configure</command> options that will enable support for various
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>
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
178 url="http://anduin.linuxfromscratch.org/files/BLFS/php_configure.txt"/>.
179 </para>
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
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>
186 </note>
187
188 <!-- Commenting this out as libxml is a recommended dependency.
189 Current protocol in the book is to expect folks to have it
190 installed and the note above should take care of it.
191
192 <para>Remove the <parameter>-disable-libxml</parameter> switch if you
193 have <xref linkend="libxml2"/> installed otherwise
194 <command>pear</command> will not be built.</para>
195 -->
196
197 <para>Install <application>PHP</application> by
198 running the following commands:</para>
199
200<screen><userinput>sed -i 's/const char \*errpfx,/const DB_ENV *dbenv, &amp; const/' \
201 ext/dba/dba_db4.c &amp;&amp;
202./configure --prefix=/usr \
203 --sysconfdir=/etc \
204 --with-apxs2 \
205 --enable-force-cgi-redirect \
206 --enable-discard-path \
207 --with-config-file-path=/etc \
208 --with-zlib \
209 --enable-bcmath \
210 --with-bz2 \
211 --enable-calendar \
212 --enable-dba \
213 --enable-exif \
214 --enable-ftp \
215 --with-gettext \
216 --enable-mbstring \
217 --with-ncurses \
218 --with-readline &amp;&amp;
219make</userinput></screen>
220
221 <para>To test the results, issue: <command>make test</command>. Three of
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
227 build, you may see many failures related to it.</para>
228
229 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
230
231<screen role="root"><userinput>make install &amp;&amp;
232install -v -m644 php.ini-recommended /etc/php.ini &amp;&amp;
233install -v -m755 -d /usr/share/doc/php-&php-version; &amp;&amp;
234install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS \
235 README* TODO* UPGRADING php.gif \
236 /usr/share/doc/php-&php-version; &amp;&amp;
237ln -v -s /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
238 /usr/share/doc/php-&php-version;</userinput></screen>
239
240 <para>The pre-built HTML documentation is packaged in two forms: a tarball
241 containing many individual files, useful for quick loading into your
242 browser, and one large individual file, which is useful for using the
243 search utility of your browser. If you downloaded either, or both, of the
244 documentation files, issue the following commands as the
245 <systemitem class='username'>root</systemitem> user to install them (note
246 these instructions assume English docs, modify the tarball names below if
247 necessary).</para>
248
249 <para>For the <quote>Single HTML</quote> file:</para>
250
251<screen role="root"><userinput>install -v -m644 ../php_manual_en.html.gz \
252 /usr/share/doc/php-&php-version; &amp;&amp;
253gunzip -v /usr/share/doc/php-&php-version;/php_manual_en.html.gz</userinput></screen>
254
255 <para>For the <quote>Many HTML files</quote> tarball:</para>
256
257<screen role="root"><userinput>tar -xvf ../php_manual_en.tar.gz -C /usr/share/doc/php-&php-version; &amp;&amp;
258chown -v -R root:root /usr/share/doc/php-&php-version;/html</userinput></screen>
259
260 </sect2>
261
262 <sect2 role="commands">
263 <title>Command Explanations</title>
264
265 <para><command>sed -i '...' ext/dba/dba_db4.c</command>: This command is
266 used to fix an issue with the use of Berkeley DB &gt;= 4.3.x.</para>
267
268 <para><parameter>--with-apxs2</parameter>: This parameter
269 builds the Apache HTTPD 2.0 module.</para>
270
271 <para><parameter>--with-config-file-path=/etc</parameter>: This parameter
272 makes <application>PHP</application> look for the
273 <filename>php.ini</filename> configuration file in
274 <filename class='directory'>/etc</filename>.</para>
275
276 <para><parameter>--with-zlib</parameter>: This parameter adds
277 support for <application>Zlib</application> compression.</para>
278
279 <para><parameter>--enable-bcmath</parameter>: Enables
280 <command>bc</command> style precision math functions.</para>
281
282 <para><parameter>--with-bz2</parameter>: Adds support for
283 <application>Bzip2</application> compression functions.</para>
284
285 <para><parameter>--enable-calendar</parameter>: This parameter
286 provides support for calendar conversion.</para>
287
288 <para><parameter>--enable-dba</parameter>: This parameter enables
289 support for database (dbm-style) abstraction layer functions.</para>
290
291 <para><parameter>--enable-exif</parameter>: Enables functions
292 to access metadata from images.</para>
293
294 <para><parameter>--enable-ftp</parameter>: This parameter
295 enables FTP functions.</para>
296
297 <para><parameter>--with-gettext</parameter>: Enables functions
298 that use <application>Gettext</application> text translation.</para>
299
300 <para><parameter>--enable-mbstring</parameter>: This parameter
301 enables multibyte string support.</para>
302
303 <para><parameter>--with-ncurses</parameter>: Provides ncurses
304 terminal independent cursor handling.</para>
305
306 <para><parameter>--with-readline</parameter>: This parameter
307 enables command line <application>Readline</application> support.</para>
308
309 <para><parameter>--disable-libxml</parameter>: This parameter
310 allows building PHP without <application>libxml2</application>
311 installed.</para>
312
313 </sect2>
314
315 <sect2 role="configuration">
316 <title>Configuring PHP</title>
317
318 <sect3 id="php-config">
319 <title>Config Files</title>
320
321 <para><filename>/etc/php.ini</filename> and
322 <filename>/etc/pear.conf</filename></para>
323
324 <indexterm zone="php php-config">
325 <primary sortas="e-etc-php.ini">/etc/php.ini</primary>
326 </indexterm>
327
328 <indexterm zone="php php-config">
329 <primary sortas="e-etc-pear.conf">/etc/pear.conf</primary>
330 </indexterm>
331
332 </sect3>
333
334 <sect3>
335 <title>Configuration Information</title>
336
337 <para>The file used as the default <filename>/etc/php.ini</filename>
338 configuration file is recommended by the <application>PHP</application>
339 development team. This file modifies the default behavior of
340 <application>PHP</application> if no <filename>/etc/php.ini</filename>
341 is used and all configuration settings fall to the defaults. You should
342 review the comments in this file and ensure the changes are acceptable
343 in your particular environment.</para>
344
345 <para>You may have noticed the following from the output of the
346 <command>make install</command> command:</para>
347
348<screen><computeroutput>You may want to add: /usr/lib/php to your php.ini include_path</computeroutput></screen>
349
350 <para>If desired, add the entry using the following command as the
351 <systemitem class="username">root</systemitem> user:</para>
352
353<screen role="root"><userinput>sed -i 's@php/includes"@&amp;\ninclude_path = ".:/usr/lib/php"@' \
354 /etc/php.ini</userinput></screen>
355
356 <para>To enable PHP support in the <application>Apache</application>
357 web server, a new LoadModule (which should be handled automatically by the
358 <command>make install</command> command) and AddType directives
359 must be added to the <filename>httpd.conf</filename> file:</para>
360
361<screen><literal>LoadModule php5_module lib/apache/libphp5.so
362AddType application/x-httpd-php .php</literal></screen>
363
364 <para>Additionally, it can be useful to add an entry for
365 <filename>index.php</filename> to the DirectoryIndex directive of the
366 <filename>httpd.conf</filename> file. Lastly, adding a line to setup the
367 <filename class='extension'>.phps</filename> extension to show
368 highlighted <application>PHP</application> source may be
369 desirable:</para>
370
371<screen><literal>AddType application/x-httpd-php-source .phps</literal></screen>
372
373 <para>You'll need to restart the <application>Apache</application> web server
374 after making any modifications to the <filename>httpd.conf</filename>
375 file.</para>
376
377 </sect3>
378
379 </sect2>
380
381 <sect2 role="content">
382 <title>Contents</title>
383
384 <segmentedlist>
385 <segtitle>Installed Programs</segtitle>
386 <segtitle>Installed Library</segtitle>
387 <segtitle>Installed Directories</segtitle>
388
389 <seglistitem>
390 <seg>pear, peardev, pecl, php, php-config and phpize</seg>
391 <seg>libphp5.so Apache module</seg>
392 <seg>/usr/include/php, /usr/lib/php and
393 /usr/share/doc/php-&php-version;</seg>
394 </seglistitem>
395 </segmentedlist>
396
397 <variablelist>
398 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
399 <?dbfo list-presentation="list"?>
400 <?dbhtml list-presentation="table"?>
401
402 <varlistentry id="php-prog">
403 <term><command>php</command></term>
404 <listitem>
405 <para>is a command line interface that enables you to parse and
406 execute PHP code.</para>
407 <indexterm zone="php php-prog">
408 <primary sortas="b-php">php</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="pear">
414 <term><command>pear</command></term>
415 <listitem>
416 <para>is the PHP Extension and Application
417 Repository (PEAR) package manager.</para>
418 <indexterm zone="php pear">
419 <primary sortas="b-pear">pear</primary>
420 </indexterm>
421 </listitem>
422 </varlistentry>
423
424 </variablelist>
425
426 </sect2>
427
428</sect1>
Note: See TracBrowser for help on using the repository browser.