PHPのインストールと基本設定
PHP(PHP: Hypertext Preprocessor)はHTMLに埋め込み、サーバー側で解釈実行されるスクリプト言語です。 Perlによく似た簡単な文法と多くのRDBMS(リレーショナルデータベース管理システム)との親和性により、 特に軽量なWebアプリケーションに構築に幅広く使われています。 PHP言語の解釈実行系(インタープリタ)はPHPエンジンと呼ばれます。 (Perl言語に対するperlコマンドみたいな関係ですね) PHPエンジンはwww.php.netでソースアーカイブとバイナリアーカイブが無償で配布されています。 最新のバージョンは5.5.0(2013/06/20公開)です。

PHPの使い方としては、CGIのexeとして使う方法もありますが、 主にはApacheのモジュールとして使うので、後者を前提にご紹介します。 ここでは次の環境で試した結果をメモっています。

OSApachePHP
MS-Windows XP Home2.0.505.1.1
MS-Windows XP Home2.0.505.2.3
MS-Windows XP Home2.2.85.2.6
Vine Linux 3.12.0.545.1.1
MS-Windows 7 Home2.2.145.3.1
MS-Windows 7 Home2.2.145.4.4
MS-Windows 8 Home-5.5.0


PerlなどのCGIとの違い
軽い
CGIでは、Webサーバがリクエストの都度プロセスを起こして処理を実行しますが、 PHPは(通常のモジュール方式の場合)Webサーバのプロセスの中で処理を行うので、 メモリ負荷が軽く高速です。

HTML文書に埋め込むテンプレートのような使いかた
CGIの場合は、サーバー側に置かれたPerlスクリプトがHTML文書全体を生成しますが、 PHPスクリプトは同じようにスクリプト全体を1ファイルにしてWebサーバに置くことも、 最初からHTML文書に埋め込むこともできます。これを使い分けることで、 表示とロジックの記述を別ファイルに分離することが簡単にできます。

RDBMSとの親和性
PHPは最初からRDBMS(リレーショナルデータベース管理システム) と連係するWebアプリケーションの構築を目的に開発されてきたため、 Oracle、Sybaseなどの商用RDBMS、PostgreSQLやMySQLなどのオープンソースRDBMS にアクセスする関数群(API)が用意されています。 このようなRDBMSとの高い親和性はPerlなど他の言語にはないPHPの優れた利点です。


PHPのインストール Windows編

  1. Apacheは先にインストール済みとします。
    まずPHPの Windowsバイナリ専用ダウンロードページ からバイナリ配布 (php-5.4.4-Win32-VC9-x86.zip)を入手し、展開します。
    バイナリ配布は「Non Thread Safe」と「Thread Safe」がありますが、 Apacheと連携させる場合には「Thread Safe」を選びます。 通常は「Thread Safe」を選べば問題ないと思います。
    また、以前のバージョンには「VC6」と「VC9」があり、6がApache用、9がIIS用でしたが、 今は9に統一されたようです。
  2. 展開すると php-5.4.4-Win32-VC9-x86 というディレクトリができるので、 インストールしたい好きな位置へ移動、改名します。 たとえば C:\Wintools に移動し、名前を php5 に変更したとします。
  3. Apacheが動いている場合は停止します。
  4. Apacheの設定ファイルhttpd.confに記述を追加します。
    以下はApache2.2の例です。Apache 2.0の場合は「php5apache2.dll」を代わりに指定します。 二重引用符で囲むかどうかはどちらでもOKです。

    LoadModule php5_module "c:/Wintools/php5/php5apache2_2.dll"
    AddType application/x-httpd-php .php
    PHPIniDir "c:/Wintools/php5"
    

  5. C:\Wintools\php\php.ini-developmentを、php.iniという名前でコピーし、編集します。
    OCI8やpgsqlなどの拡張関数モジュール(extension)を使う場合には、

    ; Directory in which the loadable extensions (modules) reside.
    ;extension_dir = ./
    extension_dir = "ext"
    

    の部分を書き換えておきます。(PHP4の場合はextではなくextensions)
    また、後半に各RDBMSごとのDLLを定義している部分が全てコメントになっているので、 使いたいRDBMSの行を選んでコメントを解除します。

    extension=php_mysql.dll
    ;extension=php_mysqli.dll
    extension=php_oci8.dll
    extension=php_pdo.dll
    extension=php_pdo_sqlite.dll
    extension=php_sqlite.dll
    

    (mysqlはMySQL 4.0以前、mysqliは4.1以降用です)
    なお、以前のバージョンでは、php.iniとphp5ts.dllは、 C:\Windows、またはC:\Windows\system32 にコピーする必要がありましたが、 Apacheのhttpd.confに「PHPIniDir」と書くとこの操作は不要となり、 Windowsシステムフォルダに干渉する必要はなくなったようです。
  6. 上記のようにmysqlへのアクセスを利用する場合には、 PHPのトップディレクトリにあるlibmysql.dllを、 C:\WINDOWS\system32、またはApacheのbinディレクトリにコピーします。 (私が試したときは、後者でないとApacheの起動時に 「指定されたプロシージャが見つかりません」というエラーになりました)
  7. Apacheを再起動します。 コマンドラインまたはスタートメニューからApache.exeを実行した場合、 コマンドプロンプトに起動メッセージで 「Apache/2.2.14 (Win32) PHP/5.4.4 Running...」と出ればOKです。
    Apache2台の場合、Apacheのミニアイコン(ApacheMonitor.exe)がタスクバーに常駐します。 それを右クリックして「Open Apache Monitor」でモニターウィンドウを出し、 そのステータスバー(一番下)を見ます。ここに 「Apache/2.2.8 (Win32) PHP/5.4.4」 のようにPHPのバージョンが表示されていればOKです。

PEARのインストール手順
以上の作業で一応、PHPは動きますが、 標準ライブラリPEARを使いたい場合も多いと思うので、 そのインストールもやります。

  1. こちらの手順にあるように http://pear.php.net/go-pear.phar をダウンロードします。
  2. PCをインターネットに接続した状態で、コマンドプロンプトを起動し、 「php.exe go-pear.phar」を実行します。
    コマンドラインで幾つかの質問が出るので、これに答えるとダウンロードしながらインストールされます。
    このとき、Windows7では、Permission Deniedで C:\Windows に pear.iniが作成できないと思います。 その場合はコマンドラインのメニュー11番で別のパス (例えば、PHPのホームディレクトリ)に変更すればOKです。
    また、最後の「php.iniを書き換えるか?」との質問にYと答えると、 php.iniの末尾にinclude_pathの設定が自動的に追加されます。 php.iniをテキストエディタなどで編集中の場合は、事前に終了しておきましょう。
    最後に、go-pear.batがエラーになってダウンロードがまったく動かないことがありました。 そのときは、代わりにコマンドプロンプトでPHPのホームディレクトリに移動後、 「php -d phar.require_hash=0 PEAR\go-pear.phar」と打つと正しく実行されました。

OCI関数(Oracle)を使うときの注意点
WindowsでApache+PHPを動かすとき、通常はバイナリ配布をインストールすると思いますが、 PHP 5.2.5以降のバイナリ配布では、10g以降のOracle Clientが必要になります。 (5.2.6とOracle8i Client 8.1.7で現象を確認)
8iや9iだと起動した際に次のようなエラーになります。

プロシージャエントリポイント OCIStmtPrepare2 がダイナミックリンクライブラリOCI.dllから見つかりません。
php_oci8.dll - 指定されたプロシージャが見つかりません。

10g以降のOracle Clientといってもっとも入手しやすいのは、 Instant Client でしょう。 上記の米国サイトで常に最新版が入手できるほか、 日本語サイトでも10gなら入手できます。 Instantの名の通り、zipアーカイブを展開して軽く設定すれば、 レジストリをいじることなくすぐ使えるようになります。 なお日本語環境で使う場合「Basic Lite」を選んではダメです。 ドツボにはまって延々悩むことになるので「Basic」をダウンロードしましょう。


PHPのインストール UNIX編(Apache2台)
PHP5(5.1.1)の、Apache2へのインストールです。 ここでの説明は、 Apache2を/usr/local/apache2にインストールしているものとして書いています。 インストール位置が異なる場合は適宜読み替えてください。
なお、PHPのインストールにはbisonとflexが必要です。 私はbison 2.1、flex 2.5.4で確認しました。 これらはftp.gnu.orgからソース配布をダウンロードできます。 (flexはgnuディレクトリではなく、non-gnuディレクトリにあります)

  1. www.php.netからphp-5.1.1.tar.bz2をダウンロードして、展開します。

    bzip2 -cd php-5.1.1.tar.bz2 | tar xf -
    

  2. configureですが、ここぞとばかりにめいっぱいオプションをつけてみました(-_-)。 こんな感じです。

    sh configure --with-apxs2=/usr/local/apache2/bin/apxs \
      --with-zlib --with-bz2 --with-jpeg-dir --with-tiff-dir \
      --with-dom=/usr/local \
      --with-dom-xslt=/usr/local --with-dom-exslt=/usr/local \
      --enable-ftp \
      --with-iconv --with-java=/usr/local/java \
      --with-ldap --enable-mbstring --enable-mbregex \
      --with-mysql=/usr/local/mysql --with-mysqli --with-pgsql \
      --enable-xslt -with-xslt-sablot \
      --enable-versioning --enable-zend-multibyte \
      --enable-memory-limit
    

    きょー!!
    もちろん、この中には外部のフリーウェアのライブラリを必要とするオプションもたくさんあるので、 それぞれの機能を使いたい場合には事前にフリーウェアのライブラリをインストールしておく必要があります。 例えば、--with-zlibはZlib、 --with-bzip2はlibbzip2、--with-jpeg-dirはlibjpeg、--with-tiff-dirはlibtiff、 ここまでは最近のLinuxやFreeBSDならOSのインストールと同時に確実に入っているので問題ないでしょう。 --with-domと--with-dom-xsltと--with-dom-exsltは libXML2とlibXSLT、--with-iconvはGNU iconv、--with-ldapはOpenLDAP、 --with-pgsqlはPostgreSQL。 これらはちょっと古いOS付属のものはインストールされていたとしても、 バージョンが古いので使えないと警告されることがあります。 そして、--with-javaはJ2SE、--enable-xsltと--with-xslt-sablotはSablotron。です。
    なお、 --with-mysqlの後にはMySQLのルートディレクトリの指定が必須です。 --with-mysqliの方は、mysql_configコマンドにPATHが通っていればそのままでOK、 そうでなければ、そのパスを指定する必要があります。
    また、 ApacheのPHPモジュールを作るには、ApacheのapxsコマンドにPATHが通っているか、 --with-apxs2でそのパスを指定する必要があります。configureがapxsを見つけられないと、 コマンドラインのインタープリタしか作られないので注意して下さい。
  3. で、makeでコンパイル、make installでインストールを行えばOKです。
  4. libs/libphp5.so を /usr/local/apache2/modulesにコピーします。 (通常make installによって既にコピーされているので、何もしなくて可と思います)
  5. /usr/local/apache2/conf/httpd.confをテキストエディタで編集し、 次の2行を追加します。

    LoadModule php5_module modules/libphp5.so
    AddType application/x-httpd-php .php
    

    (1行目は、make installによって自動的に書き加えられます。 この場合、古いhttpd.confはhttpd.conf.bakという名前で同じディレクトリに保存されています)
  6. アーカイブに入っているphp.ini-distを /usr/local/lib/php.ini という名前でコピーし、必要に応じて編集します。 とりあえず動くのを確認したいなら、編集せずにそのまま使用できます。
  7. これでApacheを再起動すればインストールは完了です。 phpinfo()を使った簡単なサンプル文書を作って、動作を確認します。

Open Source Web Architecture Top

(first uploaded 2001/01/17 last updated 2013/06/23, KQ TAURA - URANO398)