Gentoo に PHP5 をインストールする

PHP5 のインストールの設定を調べる

# emerge -pv php

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] dev-libs/libmcrypt-2.5.8-r1
[ebuild  N    ] app-admin/php-toolkit-1.0.1
[ebuild  N    ] dev-lang/php-5.2.10  USE="berkdb bzip2 cli crypt gdbm iconv ipv6 mysql mysqli ncurses nls pcre readline reflection session spl sqlite ssl unicode zlib -adabas -apache2 -bcmath -birdstep -calendar -cdb -cgi -cjk -concurrentmodphp -ctype -curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -exif -fastbuild -fdftk -filter -firebird -flatfile -force-cgi-redirect -frontbase -ftp -gd -gd-external -gmp -hash -imap -inifile -interbase -iodbc (-java-external) -json -kerberos -kolab -ldap -ldap-sasl -libedit -mcve -mhash -msql -mssql -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -posix -postgres -qdbm -recode -sapdb -sharedext -sharedmem -simplexml -snmp -soap -sockets -solid -spell -suhosin -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer -truetype -wddx -xml -xmlreader -xmlrpc -xmlwriter -xpm -xsl -yaz -zip"

USE フラグの設定と Apache2 向けモジュールに対応した PHP5 をインストールする

# USE="curl json mhash simplexml zip xml apache2" emerge php

USE フラグの「curl json mhash simplexml zip xml」は個人的に必要なものを設定した。

インストールした PHP5 の環境などを確認する

# php -v
_php is correct? [n,y,a,e]: n
PHP 5.2.10-pl0-gentoo (cli) (built: Aug 13 2009 13:33:23)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
# php -m
[PHP Modules]
bz2
curl
date
dba
dom
gettext
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
ncurses
openssl
pcre
readline
Reflection
session
SimpleXML
SPL
SQLite
standard
xml
zip
zlib

[Zend Modules]

PHP5 の設定ファイルの確認

# ls -l /etc/php/
total 8
drwxr-xr-x 4 root root 4096 Aug 13 13:55 apache2-php5
drwxr-xr-x 4 root root 4096 Aug 13 13:55 cli-php5
/root# ls -l /etc/php/apache2-php5/
total 56
drwxr-xr-x 2 root root  4096 Aug 13 13:55 ext
drwxr-xr-x 2 root root  4096 Aug 13 13:55 ext-active
-rw-r--r-- 1 root root 45326 Aug 13 13:54 php.ini
/root# ls -l /etc/php/cli-php5/
total 56
drwxr-xr-x 2 root root  4096 Aug 13 13:55 ext
drwxr-xr-x 2 root root  4096 Aug 13 13:55 ext-active
-rw-r--r-- 1 root root 45326 Aug 13 13:54 php.ini
# php --ini
Configuration File (php.ini) Path: /etc/php/cli-php5
Loaded Configuration File:         /etc/php/cli-php5/php.ini
Scan for additional .ini files in: /etc/php/cli-php5/ext-active
Additional .ini files parsed:      (none)

コマンドラインPHPApache に読み込まれる設定ファイルは異なる

Server APIApache 2.0 Handler
Virtual Directory Supportdisabled
Configuration File (php.ini) Path/etc/php/apache2-php5
Loaded Configuration File/etc/php/apache2-php5/php.ini
Scan this dir for additional .ini files /etc/php/apache2-php5/ext-active

Apache 2 の設定ファイルを確認する

# ls -l /etc/conf.d/apache2
-rw-r--r-- 1 root root 3075 Aug 13 13:55 /etc/conf.d/apache2
# cat /etc/conf.d/apache2 | grep PHP5
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PHP5"

/etc/conf.d/apache2 に PHP5 の設定がない場合は、「APACHE2_OPTS」に「-D PHP」追記する。

# vi /etc/conf.d/apache2
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PHP5"

PHP5 の動作を確認する

# /etc/init.d/apache2 restart
# vi /var/www/localhost/htdocs/info.php
<?php
phpinfo();
?>

http://yourdomain/info.php にアクセスをして、PHP5 が有効になっていることを確認する。