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

## 目次

- Apache 1.3.x (Unix システム用)
- Apache 2.x (Unixシステム用)
- Nginx 1.4.x on Unix systems
- Lighttpd 1.4 (Unix システム用)
- Sun, iPlanet, Netscape サーバー（Sun Solaris 用）
- LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems
- CGI およびコマンドライン
- HP-UX へのインストール
- OpenBSD へのインストール
- Solaris へのインストール
- Debian GNU/Linux へのインストール

本章では、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: 2.4 以降 (Bison 3.x を含む)

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

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

> 注意:

> Some Unix systems (such as OpenBSD and SELinux) may disallow mapping pages both writable and executable for security reasons, what is called PaX MPROTECT or W^X violation protection. This kind of memory mapping is, however, necessary for PCRE's JIT support, so either PHP has to be built without PCRE's JIT support, or the binary has to be whitelisted by any means provided by the system.

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