◆ ApacheとPHPの最新パッケージを入手する。
・ Apacheパッケージのダウンロード・ Apacheパッケージは、ここから最新のもの(ファイル名: apache_1.3.xx.tar.gz)をダウンロードしてください。 (日本Apacheユーザ会のホームページからも辿っていくことができます。)・ PHPパッケージのダウンロード
・ Apacheには現在、バージョン1.3系と2.0系の2通り存在しますが、ここでは1.3系のほうをインストールすることにします。
・ 私が自分のPCにインストールした当時は、バージョン1.3.28が最新だったため、 ここではApacheパッケージとして「apache_1.3.28.tar.gz」を使用します。
・ PHPパッケージは、ここから最新のもの(ファイル名: php-4.x.x.tar.gz)をダウンロードしてください。 (日本PHPユーザ会のホームページからも辿っていくことができます。)
・ 私が自分のPCにインストールした当時は、バージョン4.3.6が最新だったため、 ここではPHPパッケージとして「php-4.3.6.tar.gz」を使用します。
◆ インストール済みrpmパッケージのアンインストール
すでにApache,PHPのrpmパッケージがインストール済みの場合、それが邪魔になってソースからのコンパイルが上手くいかない事があります。 その場合はrpmパッケージを削除してください。
・ まず root でログインします。
・ Apacheのアンインストール (rpmパッケージ)
・ インストール済みrpmパッケージの検索を行います。・ PHPのアンインストール (rpmパッケージ)
# rpm -qa | grep apache
何も出力されなければ、インストールされていません。パッケージ名などが出力された場合は、以下の方法でアンインストールして下さい。
・ rpmパッケージのアンインストール
# rpm -e apache
上記コマンドを実行した場合、rpmパッケージの依存関係のためにアンインストールできない場合があります。
このような場合は、依存関係でチェックされたパッケージをすべてアンインストールした後で、Apacheをアンインストールしてください。
・ インストール済みrpmパッケージの検索を行います。
# rpm -qa | grep php
何も出力されなければ、インストールされていません。パッケージ名などが出力された場合は、以下の方法でアンインストールして下さい。
・ rpmパッケージのアンインストール
# rpm -e php
上記コマンドを実行した場合、rpmパッケージの依存関係のためにアンインストールできない場合があります。
このような場合は、依存関係でチェックされたパッケージをすべてアンインストールした後で、PHPをアンインストールしてください。
◆ Apacheのインストール
・ Apacheパッケージファイル 「apache_1.3.28.tar.gz」 を /usr/local/src 下へコピーし、下記コマンドを実行してください。
# cd /usr/local/src
# tar xfz apache_1.3.28.tar.gz
# cd apache_1.3.28
# env OPTIM="-O2" ./configure --enable-module=so
# make
# make install
※ OPTIM="-O2" の太字部分はともに0(ゼロ)ではなく、英大文字のO(オー)です。
◆ PHPのインストール
・ PHPパッケージファイル 「php-4.3.6.tar.gz」 を /usr/local/src 下へコピーし、下記コマンドを実行してください。
# cd /usr/local/src
# tar xfz php-4.3.6.tar.gz
# cd php-4.3.6
# ./configure --enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans \
> --with-apxs=/usr/local/apache/bin/apxs --with-pgsql --with-mysql=/usr/local/mysql
# make
# make install
◆ PHP設定ファイルの編集
・ 以下のコマンドを実行して、/usr/local/lib/php.ini ファイルを作成してください。
# cd /usr/local/src/php-4.3.6
# cp php.ini-dist /usr/local/lib/php.ini
・ テキストエディタで、下記の通り /usr/local/lib/php.ini のパラメータを修正してください。
修正前 修正後 output_buffering = Off output_buffering = On ;output_handler = output_handler = mb_output_handler register_globals = Off register_globals = On修正しない (注);mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = EUC-JP ;mbstring.http_input = auto mbstring.http_input = EUC-JP ;mbstring.http_output = SJIS mbstring.http_output = EUC-JP ;mbstring.detect_order = auto mbstring.detect_order = auto ;mbstring.substitute_character = none mbstring.substitute_character = auto
(注) セキュリティの観点上、register_globalsパラメータはOffにして運用してください。
・ 参考までに、私のPCの設定ファイルを掲載しておきます。ここをクリックしてください。
◆ Apache設定ファイルの編集
・ テキストエディタで、下記の通り /usr/local/apache/conf/httpd.conf のパラメータを修正してください。
修正前 修正後 #ServerName サーバ名 ServerName サーバ名 DirectoryIndex index.html DirectoryIndex index.html index.htm index.php - <Files ~ "\.ini$">
Deny from all
</Files>
- AddType application/x-httpd-php .php - AddType application/x-httpd-php-source .phps #AddType text/html .shtml AddType text/html .shtml #AddHandler server-parsed .shtml AddHandler server-parsed .shtml
・ 参考までに、私のPCの設定ファイルを掲載しておきます。ここをクリックしてください。
◆ 手動で、Apacheの起動・停止を確認する。
・ Apacheの起動
# /usr/local/apache/bin/apachectl start
正常に起動すると、以下のメッセージが表示されます。
/usr/local/apache/bin/apachectl start: httpd started
・ Apacheの停止
# /usr/local/apache/bin/apachectl stop
正常に停止すると、以下のメッセージが表示されます。
/usr/local/apache/bin/apachectl stop: httpd stopped
◆ Apacheの自動起動設定
・ 以下のコマンドを投入して、自動起動の設定を行ってください。
# cd /etc/rc.d/init.d
# cp /usr/local/apache/bin/apachectl ./httpd
# chmod 755 httpd
# for I in 0 1 2 6; do
> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc$I.d/K39httpd
> done
# for I in 3 4 5; do
> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc$I.d/S71httpd
> done
・ Linuxマシンを再起動してください。
# /sbin/shutdown -r now
◆ Apache + PHPの動作確認
・ ここをクリックして phpinfo.txt ファイルをダウンロードしてください。
・ ダウンロードした phpinfo.txt ファイルを /usr/local/apache/htdocs 下へコピーしてください。
# cp phpinfo.txt /usr/local/apache/htdocs/phpinfo.php
・ LAN上の別のPCからWebブラウザを立ち上げ、以下のURLを指定してください。
http://xxx.xxx.xxx.xxx/phpinfo.php (xxx.xxx.xxx.xxx はWebサーバのIPアドレスです。)
クリック!! <== このような画面が表示されたら、ApacheとPHPは正常に動作しています。