Php/docs/install.unix

提供:Dev Guides
< Php
移動先:案内検索

Unix システムへのインストール

目次

本章では、UNIX 系のシステムへの PHP のインストールと設定に関する 手引きを示します。使用するプラットフォームや Web サーバーについての セクションを参照して、インストールを行ってください。

このマニュアルでは、 「インストールにあたっての一般的な注意事項」 の章で述べたように、Web 用のセットアップを主に扱います。加えて、 コマンドラインから PHP を使うためのセットアップについても扱います。

Unix プラットホームに PHP をインストールする方法はいくつかあり、 コンパイルして設定するやり方と(コンパイル済みの)パッケージを使う方法とに 別けられます。この手引きでは、コンパイルして設定する方法を主に取り上げます。 Unix 系システムには、パッケージを用いるインストールシステムを持つものも多く、 一般的なセットアップを行うには、パッケージが役に立つでしょう。ただし、 (セキュアサーバーや様々なデータベースドライバなど)少々特殊な機能が必要な場合、 PHP や Web サーバーをビルドする必要が有るかもしれません。ソフトウエアの ビルドに不慣れな場合は、必要な機能を含めてビルドされたパッケージを 誰か他の人が作成済みでないかを調べてみると良いでしょう。

コンパイルにあたって必要な知識とソフトウエアを以下に示します。

  • UNIX に関する基本的な知識 ("make" および C コンパイラを使える程度)
  • ANSI C コンパイラ
  • Web サーバー
  • 個別のモジュール関連のコンポーネント (GD や PDF ライブラリなど)

Git から取得したソースや、自分でカスタマイズしたソースをビルドするには さらにこれらが必要です。

  • autoconf: 2.13+ (PHP < 5.4.0), 2.59+ (PHP >= 5.4.0), 2.64+ (PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (ただし 1.4.2 は除く)
  • re2c: バージョン 0.13.4 以降
  • flex: バージョン 2.5.4 (PHP <= 5.2 の場合)
  • bison:
    • PHP 5.4: 1.28, 1.35, 1.75, 1.875, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.4
    • PHP 5.5: 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.7
    • PHP 5.6: >= 2.4, < 3.0
    • PHP 7.0 - 7.3: 2.4 以降 (Bison 3.x を含む)
    • PHP 7.4: > 3.0

PHP の初期設定および設定プロセスは、configure スクリプトに与えられたコマンドラインオプションによりコントロールされます。 ./configure --help とすると、 オプションの一覧と簡単な解説が表示されます。 本マニュアルでは、オプションの種類ごとに別けて解説されています。 PHP 本体のオプションの一覧は 付録 にまとめられています。 各拡張モジュール特有のオプションは、関数リファレンスのページに記述されています。

PHP の configure が完了していないと、 拡張モジュールや本体の実行ファイルのビルドができません。 make コマンドの実行にあたっては、注意してください。 configure がうまく行かず原因もよくわからない場合は、 問題が起きた場合 についての章を参照してください。

注意:

Unixシステム (OpenBSD や SELinux のような) によっては、 セキュリティ上の理由で、 メモリ上のページに書き込み可能属性と実行可能属性の両方を付与することを 許可しないかもしれません。 これは PaX MPROTECT とか W^X (Write XOR Execute) 防御と呼ばれています。 しかしながら、この手のメモリマッピングは PCRE の JIT サポートに必要なので、 PHP を PCRE の JIT サポート抜きでビルドする か、 何とかしてシステムが提供するホワイトリストに PHP のバイナリを入れなければならないでしょう。

注意:

Android ツール群を使った ARM 向けのクロスコンパイルには、今のところ対応していません。