source: general/prog/php.xml@ 420c072

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind 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 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 420c072 was 420c072, checked in by Fernando de Oliveira <fernando@…>, 10 years ago

Update to libreoffice-4.3.0. Patch sent by Christopher G, from systemd branch, thank you very much. Some fixes from Armin K, from systemd branch, thanks.
Update to poppler-0.26.4.
Update to doxygen-1.8.8.
Update to lxpanel-0.7.0.
Update to xine-ui-0.99.9.
Update to php-5.5.16.
Update to libwebp-0.4.18.

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

  • Property mode set to 100644
File size: 18.4 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
[077b739]7 <!ENTITY php-download-http "http://us2.php.net/distributions/php-&php-version;.tar.bz2">
[3e9add2]8 <!ENTITY php-download-ftp "ftp://ftp.isu.edu.tw/pub/Unix/Web/PHP/distributions/php-&php-version;.tar.bz2">
[420c072]9 <!ENTITY php-md5sum "331a87fb27e100a88b3845d34582f769">
[077b739]10 <!ENTITY php-size "13 MB">
[80454f5]11 <!ENTITY php-buildsize "372 MB (additional 1 MB to run the test suite and 102 MB for documentation)">
[420c072]12 <!ENTITY php-time "4 SBU (additional 1.9 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
[0d7900a]34 directly embedded into the HTML markup. It is also useful as a
[a5db8d2]35 general purpose scripting language.</para>
36
[0461254]37 &lfs75_checked;
[db81e4cb]38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>Download (HTTP): <ulink url="&php-download-http;"/></para>
43 </listitem>
44 <listitem>
45 <para>Download (FTP): <ulink url="&php-download-ftp;"/></para>
46 </listitem>
47 <listitem>
48 <para>Download MD5 sum: &php-md5sum;</para>
49 </listitem>
50 <listitem>
51 <para>Download size: &php-size;</para>
52 </listitem>
53 <listitem>
54 <para>Estimated disk space required: &php-buildsize;</para>
55 </listitem>
56 <listitem>
57 <para>Estimated build time: &php-time;</para>
58 </listitem>
59 </itemizedlist>
60
61 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
62 <itemizedlist spacing="compact">
[b84326b7]63 <listitem>
64 <para>Pre-built documentation (optional): <ulink
65 url="http://www.php.net/download-docs.php"/></para>
66 </listitem>
[db81e4cb]67 </itemizedlist>
68
69 <bridgehead renderas="sect3">PHP Dependencies</bridgehead>
70
[2f65edb]71 <bridgehead renderas="sect4">Recommended</bridgehead>
[2e4782e]72 <para role="recommended">
73 <xref linkend="apache"/> and
74 <xref linkend="libxml2"/>
75 </para>
[2f65edb]76
[b84326b7]77 <bridgehead renderas="sect4">Optional System Utilities and Libraries</bridgehead>
[256ee72c]78 <para role="optional"><xref linkend="libxslt"/>,
[e797436]79 <!-- <xref linkend="gamin"/>, -->
[db81e4cb]80 <xref linkend="pcre"/>,
81 <xref linkend="aspell"/>,
[0fb9d5f]82 <xref linkend="enchant"/>,
[2e937f5]83 <xref linkend="pth"/>,
84 an <xref linkend="server-mail"/> (that provides a
85 <command>sendmail</command> command)
[b3799be4]86 <ulink url="http://www.ossp.org/pkg/lib/mm/">OSSP mm</ulink>,
[db81e4cb]87 <ulink url="http://www.net-snmp.org/">Net-SNMP</ulink>,
[ba1a38b]88 <ulink url="http://re2c.org/">re2c</ulink>,
[2e937f5]89 <ulink url="http://xmlrpc-epi.sourceforge.net/main.php?t=php_about">XMLRPC-EPI</ulink>, and
90 <ulink url="http://dmalloc.com/">Dmalloc</ulink></para>
[b84326b7]91
92 <bridgehead renderas="sect4">Optional Graphics Utilities and Libraries</bridgehead>
[256ee72c]93 <para role="optional"><xref linkend="libjpeg"/>,
[b84326b7]94 <xref linkend="libtiff"/>,
95 <xref linkend="libpng"/>,
[ba1a38b]96 <xref linkend="libexif"/>,
[b84326b7]97 <xref linkend="freetype2"/>,
[e77976f]98 <xref linkend="x-window-system"/>,
[b84326b7]99 <ulink url="http://www.fastio.com/">ClibPDF</ulink>,
[e4658bf]100 <ulink url="https://bitbucket.org/libgd/gd-libgd/downloads">GD</ulink>,
[a754ee2b]101 <ulink url="http://fossies.org/linux/misc/t1lib-5.1.2.tar.gz/">t1lib</ulink>, and
[1c345ed]102 <ulink url="http://www.adobe.com/devnet/acrobat/fdftoolkit.html">FDF Toolkit</ulink></para>
[b84326b7]103
104 <bridgehead renderas="sect4">Optional Web Utilities</bridgehead>
[256ee72c]105 <para role="optional"><xref linkend="curl"/>,
[b84326b7]106 <xref linkend="html-tidy"/>,
[db81e4cb]107 <ulink url="http://www.mnogosearch.org/">mnoGoSearch</ulink>,
[b84326b7]108 <ulink url="http://www.hyperwave.com/">Hyperwave</ulink>,
[ba1a38b]109 <ulink url="http://www.roxen.com/products/webserver/">Roxen WebServer</ulink>,
[a6350ea]110 <ulink url="http://sourceforge.net/projects/caudium/">Caudium</ulink>, and
[a754ee2b]111 <ulink url="https://wddxnet.codeplex.com/">WDDX</ulink></para>
[b84326b7]112
113 <bridgehead renderas="sect4">Optional Data Management Utilities and Libraries</bridgehead>
[256ee72c]114 <para role="optional"><xref linkend="openldap"/>,
[de7f20e]115 <!-- <xref linkend="gdbm"/>, -->
116 <xref linkend="db"/>,
[5e0662d]117 <xref linkend="mariadb"/> or <ulink url="http://www.mysql.com/">MySQL</ulink>,
[b84326b7]118 <xref linkend="postgresql"/>,
[76b19ad]119 <xref linkend="unixodbc"/>,
[8f9c757e]120 <xref linkend="sqlite"/>,
[a6350ea]121 <ulink url="http://sourceforge.net/projects/qdbm">QDBM</ulink>,
[b84326b7]122 <ulink url="http://cr.yp.to/cdb.html">cdb</ulink>,
[db81e4cb]123 <ulink url="http://www.hughes.com.au/products/msql/">Mini SQL</ulink>,
124 <ulink url="http://www.empress.com/">Empress</ulink>,
125 <ulink url="http://www.birdstep.com/">Birdstep</ulink>,
126 <ulink url="http://www.dbmaker.com/">DBMaker</ulink>,
127 <ulink url="http://www.softwareag.com/">Adabas</ulink>,
[3f87e4a]128 <ulink url="http://www.frontbase.com/">FrontBase</ulink>, and
[b84326b7]129 <ulink url="http://www.mainstreetsoftworks.com/">Monetra</ulink></para>
130
[e797436]131 <para><application>PHP</application> also provides support for many
132 commercial database tools such as <application>Oracle</application>,
133 <application>SAP</application> and
134 <application>ODBC Router</application>.</para>
135
[b84326b7]136 <bridgehead renderas="sect4">Optional Security/Encryption Utilities and Libraries</bridgehead>
[256ee72c]137 <para role="optional"><xref linkend="openssl"/>,
[b84326b7]138 <xref linkend="cyrus-sasl"/>,
[7fdeb26]139 <xref linkend="mitkrb"/>,
[3f87e4a]140 <ulink url="http://mcrypt.sourceforge.net/">libmcrypt</ulink>, and
[b84326b7]141 <ulink url="http://mhash.sourceforge.net/">mhash</ulink></para>
[db81e4cb]142
[1039de3]143 <para condition="html" role="usernotes">User Notes:
144 <ulink url="&blfs-wiki;/php"/></para>
145
[db81e4cb]146 </sect2>
147
148 <sect2 role="installation">
149 <title>Installation of PHP</title>
150
[e797436]151 <para>You can use <application>PHP</application> for server-side
152 scripting, command-line scripting or client-side GUI applications. This
153 book provides instructions for setting up <application>PHP</application>
154 for server-side scripting as it is the most common form.</para>
[db81e4cb]155
[b84326b7]156 <note>
157 <para><application>PHP</application> has many more
[ba1a38b]158 <command>configure</command> options that will enable support for various
[b84326b7]159 things. You can use <command>./configure --help</command> to see a full
160 list of the available options. Also, use of the
161 <ulink url="http://www.php.net/">PHP web site</ulink>
[e797436]162 is highly recommended, as their online docs are very good. An example of
163 a <command>configure</command> command that utilizes many of the most
164 common dependencies can be found at <ulink
[4e88613]165 url="&files-anduin;/php_configure.txt"/>.
[e797436]166 </para>
[3f87e4a]167
168 <para>If, for whatever reason, you don't have <xref linkend="libxml2"/>
169 installed, you need to add <option>--disable-libxml</option> to the
[e797436]170 <command>configure</command> command in the instructions below. Note that
171 this will prevent the <command>pear</command> command from being
172 built.</para>
[b84326b7]173 </note>
174
[db81e4cb]175 <para>Install <application>PHP</application> by
176 running the following commands:</para>
177
[80454f5]178<screen><userinput>./configure --prefix=/usr \
[75033b6]179 --sysconfdir=/etc \
[5178bbf6]180 --localstatedir=/var \
181 --datadir=/usr/share/php \
[81b5be3]182 --mandir=/usr/share/man \
[5178bbf6]183 --enable-fpm \
184 --with-fpm-user=apache \
185 --with-fpm-group=apache \
[4a93a3c]186 --with-config-file-path=/etc \
[75033b6]187 --with-zlib \
188 --enable-bcmath \
189 --with-bz2 \
190 --enable-calendar \
191 --enable-dba=shared \
192 --with-gdbm \
193 --with-gmp \
194 --enable-ftp \
195 --with-gettext \
196 --enable-mbstring \
197 --with-readline &amp;&amp;
[db81e4cb]198make</userinput></screen>
199
[75033b6]200 <para>To test the results, issue: <command>make test</command>. A few
[0cd10a6c]201 tests may fail, in which case you are asked whether you want to send
202 the report to the PHP developpers. If you want to automate the test,
203 you may prefix the command with <command>yes "n" | </command>.</para>
[d6f7e6cb]204
[db81e4cb]205 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
206
[81b5be3]207<!-- dev note: make INSTALL_ROOT=<DESTDIR> install -->
208
[75033b6]209<screen role="root"><userinput>make install &amp;&amp;
210install -v -m644 php.ini-production /etc/php.ini &amp;&amp;
[5178bbf6]211mv -v /etc/php-fpm.conf{.default,} &amp;&amp;
[d6f7e6cb]212
[ba1a38b]213install -v -m755 -d /usr/share/doc/php-&php-version; &amp;&amp;
[75033b6]214install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS README* UPGRADING* php.gif \
[5a464e4d]215 /usr/share/doc/php-&php-version; &amp;&amp;
216ln -v -sfn /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
217 /usr/share/doc/php-&php-version; &amp;&amp;
218ln -v -sfn /usr/lib/php/doc/Structures_Graph/docs \
219 /usr/share/doc/php-&php-version;</userinput></screen>
[db81e4cb]220
[b84326b7]221 <para>The pre-built HTML documentation is packaged in two forms: a tarball
222 containing many individual files, useful for quick loading into your
[ba1a38b]223 browser, and one large individual file, which is useful for using the
224 search utility of your browser. If you downloaded either, or both, of the
225 documentation files, issue the following commands as the
226 <systemitem class='username'>root</systemitem> user to install them (note
[b84326b7]227 these instructions assume English docs, modify the tarball names below if
228 necessary).</para>
[db81e4cb]229
[ba1a38b]230 <para>For the <quote>Single HTML</quote> file:</para>
[b84326b7]231
232<screen role="root"><userinput>install -v -m644 ../php_manual_en.html.gz \
233 /usr/share/doc/php-&php-version; &amp;&amp;
234gunzip -v /usr/share/doc/php-&php-version;/php_manual_en.html.gz</userinput></screen>
235
236 <para>For the <quote>Many HTML files</quote> tarball:</para>
237
[0fb9d5f]238<screen role="root"><userinput>tar -xvf ../php_manual_en.tar.gz \
[a5db8d2]239 -C /usr/share/doc/php-&php-version; --no-same-owner</userinput></screen>
[db81e4cb]240
241 </sect2>
[b84326b7]242
[934c9b26]243 <sect2 role="commands">
244 <title>Command Explanations</title>
[db81e4cb]245
[5178bbf6]246 <para><parameter>--with-datadir=/usr/share/php</parameter>: This works
247 around a bug in the build machinery, which installs some data to a
248 wrong location.</para>
249
250 <para><parameter>--enable-fpm</parameter>: This parameter allows
251 building the fastCGI Process Manager.</para>
[934c9b26]252
253 <para><parameter>--with-config-file-path=/etc</parameter>: This parameter
[ba1a38b]254 makes <application>PHP</application> look for the
255 <filename>php.ini</filename> configuration file in
256 <filename class='directory'>/etc</filename>.</para>
[934c9b26]257
[bccbdaea]258 <para><parameter>--with-zlib</parameter>: This parameter adds
[3239e36]259 support for <application>Zlib</application> compression.</para>
[934c9b26]260
[b84326b7]261 <para><parameter>--enable-bcmath</parameter>: Enables
262 <command>bc</command> style precision math functions.</para>
[bccbdaea]263
[2f65edb]264 <para><parameter>--with-bz2</parameter>: Adds support for
[b84326b7]265 <application>Bzip2</application> compression functions.</para>
[934c9b26]266
267 <para><parameter>--enable-calendar</parameter>: This parameter
268 provides support for calendar conversion.</para>
269
[0fb9d5f]270 <para><parameter>--enable-dba=shared</parameter>: This parameter enables
[2f65edb]271 support for database (dbm-style) abstraction layer functions.</para>
[934c9b26]272
273 <para><parameter>--enable-ftp</parameter>: This parameter
[3239e36]274 enables FTP functions.</para>
[934c9b26]275
276 <para><parameter>--with-gettext</parameter>: Enables functions
[3239e36]277 that use <application>Gettext</application> text translation.</para>
[934c9b26]278
279 <para><parameter>--enable-mbstring</parameter>: This parameter
280 enables multibyte string support.</para>
281
282 <para><parameter>--with-readline</parameter>: This parameter
[b84326b7]283 enables command line <application>Readline</application> support.</para>
[934c9b26]284
[51352d5]285 <para><option>--with-mysql</option>: This option
[2e0084d]286 includes <application>MariaDB/MySQL</application> support.</para>
287
[5a464e4d]288 <para><option>--disable-libxml</option>: This option
[ba1a38b]289 allows building PHP without <application>libxml2</application>
[2f65edb]290 installed.</para>
[934c9b26]291
[5178bbf6]292 <para><option>--with-apxs2</option>: Instead of building the fastCGI process
293 manager, it is possible to build an <application>apache</application> module.
294 This has some performance penalty for heavy loaded servers, but may be easier
295 to set up. This switch is incompatible with the
296 <parameter>--enable-fpm</parameter> and <parameter>--with-fpm-...</parameter>
297 switches.</para>
298
[934c9b26]299 </sect2>
[bccbdaea]300
[db81e4cb]301 <sect2 role="configuration">
302 <title>Configuring PHP</title>
303
304 <sect3 id="php-config">
305 <title>Config Files</title>
306
[5178bbf6]307 <para><filename>/etc/php.ini</filename>,
308 <filename>/etc/pear.conf</filename> and
309 <filename>/etc/php-fpm.conf</filename></para>
[db81e4cb]310
311 <indexterm zone="php php-config">
312 <primary sortas="e-etc-php.ini">/etc/php.ini</primary>
313 </indexterm>
314
315 <indexterm zone="php php-config">
316 <primary sortas="e-etc-pear.conf">/etc/pear.conf</primary>
317 </indexterm>
318
[5178bbf6]319 <indexterm zone="php php-config">
320 <primary sortas="e-etc-php-fpm.conf">/etc/php-fpm.conf</primary>
321 </indexterm>
322
[db81e4cb]323 </sect3>
324
325 <sect3>
326 <title>Configuration Information</title>
327
[e797436]328 <para>The file used as the default <filename>/etc/php.ini</filename>
329 configuration file is recommended by the <application>PHP</application>
330 development team. This file modifies the default behavior of
[254be7d3]331 <application>PHP</application>. If no <filename>/etc/php.ini</filename>
332 is used, all configuration settings fall to the defaults. You should
[e797436]333 review the comments in this file and ensure the changes are acceptable
334 in your particular environment.</para>
335
[b84326b7]336 <para>You may have noticed the following from the output of the
337 <command>make install</command> command:</para>
338
[7c1d541]339<screen><computeroutput>You may want to add: /usr/lib/php to your php.ini include_path</computeroutput></screen>
[b84326b7]340
341 <para>If desired, add the entry using the following command as the
342 <systemitem class="username">root</systemitem> user:</para>
343
[7c1d541]344<screen role="root"><userinput>sed -i 's@php/includes"@&amp;\ninclude_path = ".:/usr/lib/php"@' \
[b84326b7]345 /etc/php.ini</userinput></screen>
346
[5178bbf6]347 <para>To enable fastCGI support in the <application>Apache</application>
348 web server, two LoadModule directives must be added to the
349 <filename>httpd.conf</filename> file. They are commented out, so just issue the
350 following command as <systemitem class="username">root</systemitem> user:</para>
[db81e4cb]351
[5178bbf6]352<screen role="root"><userinput>sed -i -e '/proxy_module/s/^#//' \
[7f8868f]353 -e '/proxy_fcgi_module/s/^#//' \
[5178bbf6]354 /etc/httpd/httpd.conf</userinput></screen>
[db81e4cb]355
[5178bbf6]356 <para>Those modules accept various <command>ProxyPass</command>
357 directives. One possibility is (as the
358 <systemitem class="username">root</systemitem> user):</para>
359
360<screen role="root"><userinput>echo \
[7f8868f]361'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
[5178bbf6]362/etc/httpd/httpd.conf</userinput></screen>
363
364 <para>Additionally, it may be useful to add an entry for
[7cd76d62]365 <filename>index.php</filename> to the DirectoryIndex directive of the
[e797436]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>
[db81e4cb]372
[7cd76d62]373 <para>You'll need to restart the <application>Apache</application> web server
[0619e6d]374 after making any modifications to the <filename>httpd.conf</filename>
[db81e4cb]375 file.</para>
376
377 </sect3>
378
[5178bbf6]379 <sect3 id="php-init">
380 <title>Boot Script</title>
381
382 <para>
383 To automatically start the <command>php-fpm</command> daemon when the
384 system is rebooted, install the
385 <filename>/etc/rc.d/init.d/php</filename> bootscript from the
386 <xref linkend="bootscripts"/> package as the
387 <systemitem class="username">root</systemitem> user:
388 </para>
389
390 <indexterm zone="php php-init">
391 <primary sortas="f-php">php</primary>
392 </indexterm>
393
394<screen role="root"><userinput>make install-php</userinput></screen>
395 </sect3>
396
[db81e4cb]397 </sect2>
398
399 <sect2 role="content">
400 <title>Contents</title>
401
402 <segmentedlist>
403 <segtitle>Installed Programs</segtitle>
[1c345ed]404 <segtitle>Installed Libraries</segtitle>
[db81e4cb]405 <segtitle>Installed Directories</segtitle>
406
407 <seglistitem>
[3e9add2]408 <seg>pear, peardev, pecl, phar (symlink), phar.phar,
[5178bbf6]409 php, php-cgi, php-config, php-fpm, and phpize</seg>
[1c345ed]410 <seg>dba.{so,a} and opcache.{so,a} in
[5178bbf6]411 /usr/lib/php/extensions/no-debug-non-zts-20121212/</seg>
412 <seg>/usr/include/php, /usr/lib/php, /usr/share/php and
[ba1a38b]413 /usr/share/doc/php-&php-version;</seg>
[db81e4cb]414 </seglistitem>
415 </segmentedlist>
416
417 <variablelist>
418 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
419 <?dbfo list-presentation="list"?>
420 <?dbhtml list-presentation="table"?>
421
422 <varlistentry id="php-prog">
423 <term><command>php</command></term>
424 <listitem>
[7cd76d62]425 <para>is a command line interface that enables you to parse and
[db81e4cb]426 execute PHP code.</para>
427 <indexterm zone="php php-prog">
428 <primary sortas="b-php">php</primary>
429 </indexterm>
430 </listitem>
431 </varlistentry>
432
433 <varlistentry id="pear">
434 <term><command>pear</command></term>
435 <listitem>
[7cd76d62]436 <para>is the PHP Extension and Application
[db81e4cb]437 Repository (PEAR) package manager.</para>
438 <indexterm zone="php pear">
439 <primary sortas="b-pear">pear</primary>
440 </indexterm>
441 </listitem>
442 </varlistentry>
443
[5178bbf6]444 <varlistentry id="php-fpm">
445 <term><command>php-fpm</command></term>
446 <listitem>
447 <para>is the fastCGI process manager for PHP.</para>
448 <indexterm zone="php php-fpm">
449 <primary sortas="b-php-fpm">php-fpm</primary>
450 </indexterm>
451 </listitem>
452 </varlistentry>
453
[db81e4cb]454 </variablelist>
455
456 </sect2>
[f45b1953]457
458</sect1>
Note: See TracBrowser for help on using the repository browser.