PHP の概要

PHP は PHP ハイパーテキスト プリプロセッサー (PHP Hypertext Preprocessor) です。 主に動的ウェブサイトにおいて利用され、プログラミングコードを HTML マークアップ内に直接埋め込むことができます。 また一般的なスクリプト言語としても利用することができます。

本パッケージは LFS-8.3 において正しくビルドでき動作することが確認されています。


  • ダウンロード (HTTP):

  • ダウンロード MD5 sum: d529efc4017840e3db970b0bc25aef9c

  • ダウンロードサイズ: 12 MB

  • 必要ディスク容量: 567 MB(テスト実施時はさらに 2 MB、ドキュメント生成時は 111 MB)

  • 概算ビルド時間: 1.6 SBU(parallelism=4 利用時、テスト実施時はさらに 2.7 SBU)


PHP の依存パッケージ



Aspell-, enchant-2.2.3, libxslt-1.1.32, an MTA (that provides a sendmail command), PCRE-8.42, Pth-2.0.7, Dmalloc, Net-SNMP, OSSP mm, re2c, and XMLRPC-EPI


FreeType-2.9.1, libexif-0.6.21, libjpeg-turbo-2.0.0, libpng-1.6.35, LibTIFF-4.0.9, X ウィンドウシステム, FDF Toolkit, GD, and t1lib


cURL-7.61.0, tidy-html5-5.6.0, Caudium, Hyperwave, mnoGoSearch, Roxen WebServer, and WDDX


Berkeley DB-5.3.28 (Note that PHP does not officially support versions above 5.3), MariaDB-10.3.9 or MySQL, OpenLDAP-2.4.46, PostgreSQL-10.5, SQLite-3.24.0, unixODBC-2.3.7, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, Mini SQL, Monetra, and QDBM

PHP also provides support for many commercial database tools such as Oracle, SAP and ODBC Router.


Cyrus SASL-2.1.26, MIT Kerberos V5-1.16.1, libmcrypt, and mhash


PHP のインストール

PHP は、サーバーサイドのスクリプティング、コマンドラインのスクリプティング、クライアントサイドのGUIアプリケーション、といった場面にて利用することができます。 本書では、ごく普通に利用されている形式である、サーバーサイドのスクリプティングについての手順を説明していくことにします。



PHPconfigure には、各種サポートを実現するためのオプションが数多くあります。 ./configure --help の実行により、利用可能なオプションをすべて確認することができます。 また PHP ウェブサイト を参照することもお勧めします。 このサイトが提供するオンラインドキュメントは、よく仕上がっています。 一般的な依存関係を実現するような configure コマンドの実行例が に示されているので参照してください。

何らかの理由により libxml2-2.9.8 をインストールしてない場合は、これ以降に示す configure コマンドにて --disable-libxml オプションを指定することが必要です。 これを指定すると pear コマンドがビルドされなくなります。

以下のコマンドを実行して PHP をビルドします。

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --enable-fpm                 \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --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              &&

To test the results, issue: make test. A few tests may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | .

root ユーザーになって以下を実行します。

make install                                     &&
install -v -m644 php.ini-production /etc/php.ini &&

install -v -m755 -d /usr/share/doc/php-7.2.9 &&
                    /usr/share/doc/php-7.2.9 &&
ln -v -sfn          /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
                    /usr/share/doc/php-7.2.9 &&
ln -v -sfn          /usr/lib/php/doc/Structures_Graph/docs \

The default configuration files for the fastCGI process manager are installed only if they do not already exist on the system. If this is the first installation, they should be renamed, as the root user:

if [ -f /etc/php-fpm.conf.default ]; then
  mv -v /etc/php-fpm.conf{.default,} &&
  mv -v /etc/php-fpm.d/www.conf{.default,}

構築済の HTML ドキュメントが2つの形式で提供されています。 1つは複数ファイルを収容した1つの tarball です。 ブラウザー上へは即座に表示できるメリットがあります。 もう1つはただ1つのファイルとして構築されているものです。 ブラウザー上の検索機能を適切に活用することができます。 ダウンロードした形式がいずれかである場合に、root ユーザーになって以下のコマンドを実行しドキュメントをインストールします。 (以下の説明ではインストールするドキュメントは英語版であるものとしています。必要に応じて tarball 名を置き換えて実行してください。)

ただ1つの HTML」である場合は以下を実行します。

install -v -m644 ../php_manual_en.html.gz \
    /usr/share/doc/php-7.2.9 &&
gunzip -v /usr/share/doc/php-7.2.9/php_manual_en.html.gz

複数 HTML ファイル」である場合は以下を実行します。

tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-7.2.9 --no-same-owner


--datadir=/usr/share/php: This works around a bug in the build machinery, which installs some data to a wrong location.

--enable-fpm: This parameter allows building the fastCGI Process Manager.

--with-config-file-path=/etc: このパラメーターは、PHP が利用する設定ファイル php.ini/etc ディレクトリとすることを指示します。

--with-zlib: このパラメーターは Zlib 圧縮へのサポートを追加します。

--enable-bcmath: bc スタイルの精度計算を有効にします。

--with-bz2: Bzip2 圧縮へのサポートを追加します。

--enable-calendar: このパラメーターはカレンダー変換へのサポートを追加します。

--enable-dba=shared: This parameter enables support for database (dbm-style) abstraction layer functions.

--enable-ftp: This parameter enables FTP functions.

--with-gettext: Enables functions that use Gettext text translation.

--enable-mbstring: This parameter enables multibyte string support.

--with-readline: This parameter enables command line Readline support.

--disable-libxml: This option allows building PHP without libxml2 installed.

--with-apxs2: Instead of building the fastCGI process manager, it is possible to build an apache module. This has some performance penalty for heavy loaded servers, but may be easier to set up. This switch is incompatible with the --enable-fpm and --with-fpm-... switches.

--with-mysqli=shared: This option includes MySQLi support.

--with-mysql-sock=/run/mysqld/mysqld.sock: Location of the MySQL unix socket pointer.

--with-pdo-mysql=shared: This option includes PDO: MySQL support.

--with-tidy=shared: This option includes tidy library support.

PHP の設定


/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf, /etc/php-fpm.d/www.conf


The file used as the default /etc/php.ini configuration file is recommended by the PHP development team. This file modifies the default behavior of PHP. If no /etc/php.ini 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.

The fastCGI process manager uses the configuration file /etc/php-fpm.conf. The default file shipped with PHP includes all the /etc/php-fpm.d/*.conf in turn. There is a shipped /etc/php-fpm.d/www.conf file, that contains the parameters related to the interaction with the Apache Web server.

You may have noticed the following from the output of the make install command:

You may want to add: /usr/lib/php to your php.ini include_path

If desired, add the entry using the following command as the root user:

sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \

To enable fastCGI support in the Apache web server, two LoadModule directives must be added to the httpd.conf file. They are commented out, so just issue the following command as root user:

sed -i -e '/proxy_module/s/^#//'      \
       -e '/proxy_fcgi_module/s/^#//' \

Those modules accept various ProxyPass directives. One possibility is (as the root user):

echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://$1' >> \

Additionally, it may be useful to add an entry for index.php to the DirectoryIndex directive of the httpd.conf file. Lastly, adding a line to setup the .phps extension to show highlighted PHP source may be desirable:

AddType application/x-httpd-php-source .phps

You'll need to restart the Apache web server after making any modifications to the httpd.conf file.

Boot Script

To automatically start the php-fpm daemon when the system is rebooted, install the /etc/rc.d/init.d/php bootscript from the blfs-bootscripts-20180105 package as the root user:

make install-php


インストールプログラム: pear, peardev, pecl, phar (symlink), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg, phpize
インストールライブラリ: dba.{so,a} and opcache.{so,a} in /usr/lib/php/extensions/no-debug-non-zts-20170718
インストールディレクトリ: /etc/php-fpm.d, /usr/{include,lib,share}/php, /usr/share/doc/php-7.2.9



is a command line interface that enables you to parse and execute PHP code.


is the PHP Extension and Application Repository (PEAR) package manager.


is the fastCGI process manager for PHP.


is the interactive PHP debugger.

最終更新日: 2018-08-26 08:06:17 +0900