LinuxサーバにApache2.0をインストールします。
ここでは、Linuxサーバをリモートホストとし、インターネット経由でWindowsPCをクライアントとして、「Tera Term Pro」や「NextFTP」を使って作業を行っています。
2.1 PHP5のインストール
(1) PHP5のUnix版(Linux版)のソースファイルをダウンロードします。たとえば、以下のサイトにアクセスします。
http://www.php.net/downloads.php
PHPは2007年12月時点で最新版はPHP5.2.5です。「Complete Source Code」の項の「PHP5.2.5(tar.gz」)リンクをクリックします。

(2)ミラーサイトのリンクをクリックします。

(3)「保存」ボタンをクリックし、クライアントPCの任意のフォルダにダウンロードします。

(4)ダウンロードしたファイルを、FTPにより、Linuxサーバのたとえば/usr/local/src/ディレクトリにアップロードします。
■ソースファイルの解凍、コンパイル
(1)一般には、make install時のみ、スーパユーザroot権限で実行しますが、ここでは、最初からスーパユーザroot権限で実行します。
カレントディレクトリを、ソースファイルphp5.2.5.tar.gzがある/usr/local/src/に変更し、tarコマンドにより解凍します。オプションは「zxvf」とします。
-z |
gzipコマンドで解凍する(対象ファイル拡張子:.tar.gz)。-fの前に指定する必要がある。 |
-x |
アーカイブ内部のファイルを階層構造を保ったまま展開する。 |
-v |
処理したファイルの一覧を表示する。 |
-f |
アーカイブファイルのパスを指定する。オプションの最後に指定する。 |
[yamada@ma10 yamada]$ su -l
[root@ma10 etc]# cd /usr/local/src
[root@ma10 src]# tar zxvf php-5.2.5.tar.gz
(2)カレントディレクトリを、./php-5.2.5に変更し、コンパイルを以下により実行します。PHP5は、既定では主たるファイルが/usr/local/bin/以下にインストールされます。RedHat標準のPHP4は別のディレクトリにインストールされているので、RedHat標準のPHP4を残したまま、新しいPHP5をインストールできます。
まず、PHPのconfigureを行います。configureのオプションを指定することにより、自分のサーバのディレクトリ構造にあった形で、特定の拡張モジュールを有効にするなどのカスタマイズを行います。configureの選択可能なオプションは
./configure --help
で確認できます。
(補足)
たとえば、PHP4等の古いバージョンでXMLを使うときに必要だったオプション--with-libxmlは、php-5.2.5では未定義オプションになっています。つまりPHP5.2.5ではXML関連の関数はオプションで指定しなくても、PHP本体に既定で組み込まれているということです。
まず、Apache2環境では、apxsの所在ディレクトリを、--with-apxs2=/usr/local/apache2/bin/apxsで指定します。日本語などのマルチバイト言語対応文字列関数を使用できるようにするために、--enable-mbstringを付加します。
apxs(APache eXtenSion )はApache拡張ツールで、DSO(Dynamic Shared Object:動的拡張オブジェクト)作成ツールです。
データベースとして、MySQLを使うなら--with-mysqlを付加します。MySQLをソースからコンパイルしてインストールした場合は、MySQLの所在ディレクトリを--with-mysql=/usr/local/mysqlのように明示的に指定します。MySQLのインストールは、PHPのインストールの前に実行しておく必要があります。MySQL4.1.3以降の拡張を使う場合は、--with-mysqli=/usr/bin/mysql_configも付加します。
データベースのPostgreSQLを使用する場合は、--with-pgsql=/usr/local/pgsqlを付加します。その他、自サーバに必要なオプションを適宜付加します。
Red Hat9でyumを実行しても、いくつかのモジュール等のバージョンが古かったりなかったりします。その場合は適宜インターネットで探しインストールしておく必要があります。その場合、make
test(make checkではない)でエラーがないか確認しておきます。(詳細は後述)
--with-apxs2=/usr/local/apache2/bin/apxs |
Aapche2におけるapxsのディレクトリ |
--enable-mbstring |
マルチバイト対応 |
--with-mysql=/usr/local/mysql |
MySQ対応 |
--with-mysqli=/usr/bin/mysql_config |
MySQ拡張対応 |
--with-pgsql=/usr/local/pgsql |
PostgreSQL対応 |
[root@ma10 src]# cd php-5.2.5
[root@ma10 src]# CFLAGS="-O2" ./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/bin/mysql_config \
--with-pgsql=/usr/local/pgsql
[root@ma10 src]# make
[root@ma10 src]# make test
[root@ma10 src]# make install
CFLAGS="-O2"は、コンパイルの最適化レベル2を指定しています。行末の「\」は、エンターキーによる「改行」コードを無効にします。このようにして、オプションをみやすくできます。
2.2 PHP5の環境設定・動作確認
■php.iniのコピー
まず、PHP5の環境設定ファイルphp.iniを以下によりコピーしておきます。カレントディレクトリはmake installを実行したディレクトリです。
[root@ma10 src]# cp php.ini_dist /usr/local/lib/php.ini
php.ini_recomendedをコピーする方法もありますが、いろいろ最適化されているので、既定のままのphp.ini_distをコピーした方が無難なようです。
■php.iniの設定
/usr/local/lib/にあるphp.iniファイルをviエディタ等で自サーバ用に編集(カスタマイズ)します。行頭の「;」は、コメント行であることを示しています。本サーバでは、たとえば以下のような設定を行っています。
・マルチバイト文字列対応のために以下の設定を行います。
;output_handler =
↓(「;」を削除し、コメント行でなくし、有効にする)
output_handler = mb_output_handler
;default_charset = "iso-8859-1"
↓
default_charset = "UTF8"
;mbstring.language = Japanese
↓
mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
↓
mbstring.internal_encoding = UTF8
;mbstring.http_input = auto
↓
mbstring.http_input = auto
;mbstring.http_output = SJIS
↓
mbstring.http_output = UTF8
;mbstring.encoding_translation = Off
↓
mbstring.encoding_translation = On
;mbstring.detect_order = auto
↓
mbstring.detect_order = auto
;mbstring.substitute_character = none;
↓
mbstring.substitute_character = none;
■httpd.confの設定
Apacheの環境設定ファイルである/usr/local/apache2/conf/httpd.confに、以下の各行がない場合は追加します。
・PHPの共有モジュールをロードするよう設定
LoadModule php5_module modules/libphp5.so
・ApacheがPHPファイルを識別するための拡張子の設定
AddType application/x-httpd-php .php .phtml
・PHP のソースをハイライト表示するよう設定
AddType application/x-httpd-php-source .phps
■Apacheの再起動
以下によりApacheを再起動し、編集したhttpd.confを読み込ませます。
/usr/local/apache2/bin/apachectl restart
■PHPの動作確認
以下の簡単なPHPファイルを作成し、たとえばphpinfo.phpとして、ルートディレクトリにおきアクセスしてみます。
phpinfo.php
<?php
phpinfo();
?>
以下のように表示されれば、ApacheおよびPHPは正常にインストールされ起動されています。

また、MySQLのモジュールが正常にインストールされていれば、以下の部分が表示されます。

PostgreSQLのモジュールが正常にインストールされていれば、以下の部分が表示されます。

【参考リンク】
PHP::Unix
システムへのインストール
http://www.php.net/manual/ja/install.unix.apache2.php
PHPのインストール(Apache2.0
Linux編)
http://www.aconus.com/~oyaji/www/apache_linux_php.htm
自宅サーバー Debian:: PHP 5 のインストール
http://debianj.com/php_5_instal
【関連書籍】
Ben Laurie, Peter
Laurie 著、田辺 茂也 監訳、大川 佳織 訳:「Apacheハンドブック 第3版」、オライリー・ジャパン、2003年9月
Apache HTTPサーバについての解説書として定番
こがよういちろう:「Apache HTTPサーバの構築」、アスキー出版局、1998年12月
Apacheの手軽な解説書
大垣 靖男:「[改訂版] PHP
ポケットリファレンス 」、技術評論社、2005年9月
PHPプログラミングのために、手元においておきた必携書
山田祥寛
:「Pocket詳解 PHP辞典」、秀和システム、2006年3月
山田祥寛:「独習PHP」、翔泳社、2006年1月
入門から、PEAR、Smartyまで、PHPを丸ごと学べる定番の入門書
KJ、田中ナルミ:「PHPによるWebアプリケーションスーパーサンプル
活用編」、ソフトバンククリエイティブ、2006年9月
PEARモジュールを活用して、複雑なスクリプティングをより軽量化
小島まさご:「実践マスターPHP+MySQL―PHP4/PHP5対応」、ソーテック社、2007年6月
PHPの基礎から、データベースMySQLを使用した会員管理システム構築まで詳細に解説
【関連リンク】
The Apache Software Foundation
Apacheの公式サイト
http://www.apache.org/
Downloading the Apache
HTTP Server
Apacheの公式ダウンロードサイト
http://httpd.apache.org/download.cgi
ApacheのWindow用バイナリーファイルのダウンロードサイト
http://ftp.riken.jp/net/apache/httpd/binaries/win32/
Apache HTTP サーバ バージョン 2.2
ドキュメント
Apache2.2の日本語公式ドキュメント
http://httpd.apache.org/docs/2.2/
PHP:Hypertext Preprocessor
PHPの公式サイト
http://www.php.net/
PHP:Downloads
PHPの公式ダウンロードサイト
http://www.php.net/downloads.php
PHP:マニュアル
PHPの公式日本語マニュアル
http://www.php.net/manual/ja/
日本PHPユーザ会
http://www.php.gr.jp/
PHP入門スクリプト
PHP関連リンク集
http://php.ninja-x.jp/
レッツPHP!
http://php.s3.to/
初心者のためのホームページ作り:PHP入門
http://www.scollabo.com/banban/php/index.html
初心者用PHP入門
http://www.standpower.com/index.html
phpspot
http://phpspot.net/php/
基礎から解る!PHP入門講座
http://w1.nirai.ne.jp/freeze/
そふぃのPHP入門
http://nyx.pu1.net/
ボブ先生のスパルタPHP入門
http://www.kochinet.info/usr/php/
1.1 Apache2.0のインストール
1.2 Apache2.0の環境設定・動作確認
2.1 PHP5のインストール
2.2 PHP5の環境設定・動作確認
■PostgreSQL8.2によるWebアプリケーション(Linux+Apache2.0+PHP5.2環境)
この記事へのコメント
|