第 4章Installation on Unix systems

目次
Unix システム用 Apache 1.3.x
Unixシステム上のApache 2.0
Caudium
fhttpd related notes
Sun, iPlanet and Netscape servers on Sun Solaris
CGI and commandline setups
HP-UX specific installation notes
OpenBSD installation notes
Solaris specific installation tips
Gentoo installation notes

This section will guide you through the general configuration and installation of PHP on Unix systems. Be sure to investigate any sections specific to your platform or web server before you begin the process.

As our manual outlines in the General Installation Considerations section, we are mainly dealing with web centric setups of PHP in this section, although we will cover setting up PHP for command line usage as well.

There are several ways to install PHP for the Unix platform, either with a compile and configure process, or through various pre-packaged methods. This documentation is mainly focused around the process of compiling and configuring PHP. Many Unix like systems have some sort of package installation system. This can assist in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your webserver. If you are unfamiliar with building and compiling your own software, it is worth checking to see whether somebody has already built a packaged version of PHP with the features you need.

Prerequisite knowledge and software for compiling:

The initial PHP setup and configuration process is controlled by the use of the commandline options of the configure script. You could get a list of all available options along with short explanations running ./configure --help. Our manual documents the different options separately. You will find the core options in the appendix, while the different extension specific options are descibed on the reference pages.

When PHP is configured, you are ready to build the module and/or executables. The command make should take care of this. If it fails and you can't figure out why, see the Problems section.

Unix システム用 Apache 1.3.x

本節では、PHPをUnixプラットフォームのApacheにインストールする際の注意事項と コツについて説明します。Apache 2に関する手引きと注意も 別のページにあります。

以下の手順の10行目でconfigure に追加する引数を configureのオプションの全て から選択可能です。ここではバージョン番号が意図的に省略 されています。'xxx'の部分を貴方が使用するファイルに対応するものに 置き換えてください。

例 4-1. PHPインストール手順 (Apache共有モジュール版)

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. ここでPHPのconfigureを実行します。ここでは、特定の拡張モジュールを有効に
    するといった様々なオプションを指定してカスタマイズを行います。指定可能な
    オプションの一覧については、./configure --help を実行して下さい。以下に
    Apache 1 および MySQL のサポートを有効にする簡単な設定例を示します。

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    インストール後にconfigureオプションを変更したくなった場合は
   最後の3つの手順を繰り返してください。新しいモジュールを有効
    にするにはapacheを再起動するだけです。apacheの再コンパイルは
    必要ありません。
    
    特に断りがない限り、'make install' は、PEAR、
    phpizeのような様々なPHP関連ツール、CLI版PHPなどもインストールする
    ことに注意して下さい。

13. php.iniファイルを設定します。

      cp php.ini-dist /usr/local/lib/php.ini

    PHPオプションを設定するために.iniファイルを編集することになります。このファ
    イルを他の場所に置きたい場合は、手順10でオプション
    --with-config-file-path=/path を使用して下さい。

    php.ini-recommended を選んだ場合には、中に記載されている変更点の一覧を
    読み、PHPの動作に与える影響についてよく理解するようにして下さい。

14. httpd.conf を編集し、PHPモジュールをロードするようにして下さい。
    LoadModule命令の右側に記述するパスは、システムのPHPモジュールを
    指している必要があります。
    上記の make install により既にこの設定は追加されていますが、確認が必要です。

    PHP 4の場合:
            
      LoadModule php4_module libexec/libphp4.so

    PHP 5の場合:
                      
      LoadModule php5_module libexec/libphp5.so
      
15. そして、httpd.confのAddModuleセクションにおいて、
    ClearModuleListの下あたりに以下を追加して下さい。
    
    PHP 4の場合:
    
      AddModule mod_php4.c
 
    PHP 5の場合:     
    
      AddModule mod_php5.c

16. Apacheに特定の拡張子をPHPとしてパースするよう指示します。
    例えば、Apacheが拡張子.phpをPHPとしてパースするようにしてみましょう。
    他のあらゆる拡張子も単に空白で区切って追加するだけで、PHPとしてパース
    させることができます。ここでは、例として .phtmlを追加してみます。

      AddType application/x-httpd-php .php .phtml

    PHPのソースをハイライト表示するために、拡張子.phpsを設定することも
    よく行われます。
    
      AddType application/x-httpd-php-source .phps

17. 通常の手順により Apache サーバを起動して下さい。(HUPまたはUSR1シグ
    ナルを使用してリロードするのではなく)サーバを停止してから再起動す
    る必要があります。

この他、PHPを静的オブジェクトとしてインストールすることもできます。

例 4-2. PHPのインストール手順(Apache用静的モジュールインストール)

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-4.x.y.tar.gz | tar xf -
6.  cd php-4.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
    (上の行は正しいです! そう、この段階でlibphp4.aが存在していないのは知っています。
   これはこの時点で必須ではなく、後に作成されます。)

12. make
    (ここではhttpdバイナリが必要で、最初のインストールの場合は、
   Apacheバイナリディレクトリにコピーすることができ、この後、"make install"
   を同様に行う必要があります)

13. cd ../php-4.x.y
14. cp php.ini-dist /usr/local/lib/php.ini

15. PHPオプションを設定するために /usr/local/lib/php.ini ファイルを編集可能です。
   httpd.conf または srm.conf ファイルを編集し、以下を追記して下さい:
    AddType application/x-httpd-php .php

Apache のインストールやUNIXの種類によりサーバを停止し、再起動する 方法はいくつもあります。複数のApache/UNIXの組合せについてサーバを 再起動する際に使用される典型的な方法を以下に示します。 /path/to/ を使用するシステムのアプリケーション へのパスに置き換えて読んで下さい。

例 4-3. Apacheを再起動するためのコマンドの例

1. 複数の Linux および SysV から派生したもの:
/etc/rc.d/init.d/httpd restart

2. apachectl スクリプトを使用する方法:
/path/to/apachectl stop
/path/to/apachectl start

3. (OpenSSL を使用している場合、) apachectl と同様に httpdctl および
    httpsdctl を使用する方法:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. mod_sslまたは他のSSLサーバを使用している場合、マニュアルでstopと
   startを行うかもしれません:
/path/to/apachectl stop
/path/to/apachectl startssl

apachectl および http(s)dctl の実行ファイルの位置はシステムにより 異なります。システムが locate または whereis または which を サポートしている場合、サーバ制御用プログラムを見つけるために使用するこ とが可能です。

PHPをApache用にコンパイルする別の例を以下に示します。

./configure --with-apxs --with-pgsql

これにより、共有ライブラリ libphp4.so が作成 されます。Apacheのhttpd.confファイルにおいて LoadModuleを使用してApacheにこのライブラリをロードすることが可能 です。上の例では、PostgreSQLサポートがこの libphp4.soライブラリに埋め込まれます。

./configure --with-apxs --with-pgsql=shared

この例でも Apache用libphp4.so 共有ライブラリ が作成されます。しかし、共有ライブラリ pgsql.so も作成されます。この共有ライブラリ は、php.ini ファイルのextensionディレクティ ブまたはスクリプト内でdl()関数を使用して明示的 にロードすることが可能です。

./configure --with-apache=/path/to/apache_source --with-pgsql

これにより、libmodphp4.a ライブラリと mod_php4.c およびいくつかの付属ファ イルが作成され、Apacheにソースツリーのディレクトリ src/modules/php4 にコピーされます。続いて、 --activate-module=src/modules/php4/libphp4.a を指定してApacheをコンパイルして下さい。これにより、Apache構築シ ステムは、libphp4.a を作成し、 httpd バイナリに静的にリンクされます。 PostgreSQL サポートはこのhttpdバイナリに直接 インクルードされるため、最終的な結果は、Apache全体とPHP全体を含む 単一のhttpdバイナリになります。

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

上と同じですが、最終的なhttpdに PostgreSQLサポートを直接インクルードする代わりに、共有ライブラリ pgsql.soをファイル php.iniまたはdl()により直 接的にPHPにロードすることが可能です。

異なったPHPの構築法を選択する際、各方法の利点と欠点を考慮する必要 があります。共有オブジェクトとして構築する場合、Apacheと分割して コンパイルすることが可能で、PHPを追加または変更する際に全体を再コ ンパイルする必要がありません。PHPをApacheに(静的に)組み込む場合に は、PHPはより高速にロード/実行することが可能です。詳細な情報につ いては、ApacheのDSOサポートのWebページ を参照下さい。

注意: Apacheのデフォルトのhttpd.confは次のようなセクションがあります。

User nobody
Group "#-1"

これを"Group nogroup"やそれに類する値("Group daemon"も一般的です)に変更しない 限り、PHPはファイルをオープンすることができません。

注意: --with-apxs=/path/to/apxsオプションを 指定する場合にはインストールされているバージョンのapxsを指定してください。 Apacheのソースディレクトリ内にあるapxsバージョンではなく 実際にシステムにインストールされているものでなければなりません。