2014年7月13日日曜日

Apache2環境でPHP5のインストール

Apache2環境でPHP5をインストールしたときのメモ。

pkgtools.confの編集

portupgradeやportinstallの際に自動でインストールオプションを追加できるように「pkgtools.conf」にあらかじめ記載をしておく。

pkgtools.confのある場所

/usr/local/etc/pkgtools.conf

追加する内容

'lang/php5' => 'WITH_APACHE=yes',
'lang/php5-extensions' => 'WITH_GD=yes WITH_MBSTRING=yes WITH_MYSQL=yes',

#vi /usr/local/etc/pkgtools.conf⏎ ←viでpkgtools.confを開く
MAKE_ARGS = { ←この中に以下を追加する。
'lang/php5' => 'WITH_APACHE=yes',
'lang/php5-extensions' => 'WITH_GD=yes WITH_MBSTRING=yes WITH_MYSQL=yes; WITH_PGSQL=yes', ←保存して閉じる
}

WITH_APACHE=yes
PHPをApacheで利用できるようにする。
WITH_GD=yes
PHPでGDを利用できるようにする。
(PHPで画像処理ができるようになる。)
WITH_MBSTRING=yes
PHPでMBSTRINGを利用できるようにする。
(PHPで日本語などのマルチバイト文字に対応ができるようになる。)
WITH_MYSQL=yes
PHPでMYSQLが利用できるようにする。
事前にMYSQLをインストールしていることが前提。
WITH_PGSQL=yes
PHPでPostgreSQLを利用できるようにする。
事前にPostgreSQLをインストールしていることが前提。

PHP5のインストール

今回はPHP5.5をインストールした。
ただし、後でlibphp5.soがインストールされずにはまることになった。

#/usr/ports/lang/php5.5⏎ ←PHP5.5のインストーラーが保存されている場所へ移動
#make BATCH=yes WITH_APACHE=yes WITHOUT_IPV6=yes install clean⏎ ←PHP5.5をインストール

WITH_~オプションはインストール時も指定すること。

php5-extensionsのインストール

PHPの拡張モジュールをインストールする。

#cd /usr/ports/lang/php55-extensions⏎ ←php5-extensionsのインストーラーが保存されている場所へ移動
#make BATCH=yes WITH_GD=yes WITH_MBSTRING=yes WITH_MYSQL=yes WITH_PGSQL=yes install clean⏎ ←php5-extensionsのインストール

今回はテスト用のサーバのためMYSQLとPostgreSQLをインストールしている。

libphp5.soを追加する

amd64環境の場合、「WITH_APACHE」でPHP5をインストールしても、libphp5.soがインストールされない場合がある。
その場合は、次の方法でインストールする。

#cd /usr/ports/www/mod_php55⏎ ←インストーラーの保存されている場所へ移動
#make config⏎ ←AP2FILTERにチェックを入れる
#make install clean⏎ ←モジュールのインストール

「make config」は忘れないようにする。

http.confを編集する

http.confを編集してApacheでphpを利用できるようにする。

#vi /usr/local/etc/apache22/httpd.conf⏎ ←viでhttpd.confを開く
DirectoryIndex index.html index.htm index.cgi
↓以下を追加(index.php)
DirectoryIndex index.html index.htm index.cgi index.php ←http://~/を開いたときにindex.phpも開くようにする

<IfModule mime_module>
↓以下を追加後保存して閉じる
AddType application/x-httpd-php .php ←phpを利用できるようにする
</IfModule>

php.iniを設定する

「php.ini」を編集して、環境を変更する。

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini ←php.ini-productionをコピーして利用
chmod 640 /usr/local/etc/php.ini ←権限変更
#vi /usr/local/etc/php.ini⏎ ←viでphp.iniを開く
short_open_tag = Off

short_open_tag = On ←PHPのタグを<?~?>で記載可能にする設定に変更

expose_php = On

expose_php = Off ←telnetなどでアクセスした場合にphpのバージョンを隠す設定に変更

max_execution_time = 30

max_execution_time = 300 ←スクリプトの実行時間を300ミリ秒に変更

;default_charset = "iso-8859-1"

default_charset = "UTF-8" ←デフォルトの文字エンコードをUTF-8に変更

upload_max_filesize = 2M

upload_max_filesize = 100M ←最大アップロードサイズを100Mに変更

;date.timezone =

date.timezone = Asia/Tokyo ←タイムゾーンをアジア/東京に変更

;mbstring.language = Japanese

mbstring.language = Japanese ←ディフォルトの言語を日本語に変更

;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = UTF-8 ←内部文字のディフォルトのエンコードをUTF-8に変更

;mbstring.http_input = auto

mbstring.http_input = UTF-8 ←HTTP入力文字エンコードをUTF-8に変更

;mbstring.http_output = SJIS

mbstring.http_output = pass ←HTTP出力文字エンコードをHTTPレスポンスは変換しない設定に変更

;mbstring.encoding_translation = Off

mbstring.encoding_translation = On ←内部文字エンコードを有効にする

;mbstring.detect_order = auto

mbstring.detect_order = auto ←文字コードを自動で検出する設定に変更

;mbstring.substitute_character = none;

mbstring.substitute_character = none; ←無効な文字は表示しない設定に変更

内容の詳細はphp.netのマニュアルが詳しい。


http://php.net/manual/ja/ini.list.php

Apacheを再起動

Apacheを再起動して設定を有効にする。

# /usr/local/etc/rc.d/apache22 restart⏎

phpinfo();でPHPの環境情報を表示する(PHPが利用できるようになったかの確認)

phpinfo();を利用して設定したPHPの環境が設定できてるか確認すると同時に、PHPが利用できるようになったのか確認する。

#echo "<?php phpinfo(); ?>" > /usr/local/www/apache22/data/info.php⏎ ←info.phpというファイルを作成し、その中にphpinf();関数を記載して保存する

変更後に以下のページにアクセスし、動作確認をする。
「http://ドメイン名/info.php」

0 件のコメント :

コメントを投稿

ご質問などあればこちらへどうぞ