PHP5.2.5インストール方法 on CentOS5.1
以前のエントリ(PHPインストールメモ on CentOS4.4(ソースから))を参考にして、最新のPHP5をインストールしてみました。
ダウンロード
PHP: Downloads
http://www.php.net/downloads.php
から、PHP5.2.5のソースをダウンロードします。
# cd /usr/local/src # wget http://jp2.php.net/get/php-5.2.5.tar.gz/from/jp.php.net/mirror
解凍
# tar zxvf php-5.2.5.tar.gz # cd php-5.2.5
コンパイルとインストール
今回はApache2とMySQLをそれぞれ連携したいので、それぞれインストールしたうえで実行。
with-apxs2 with-mysql オプションはそれぞれの環境に合わせること。
MySQLのインストールは、MySQL 5.0.51をソースからインストールする on CentOS5.1を参照して下さい。
Apacheのインストールについては、Apache2.0.63インストール方法 on CentOS5.1を。
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --with-mysql=/usr/local/mysql --enable-pdo --with-pdo-mysql=/usr/local/mysql #make #make install
確認
# php -v PHP 5.2.5 (cli) (built: Mar 3 2008 23:56:05) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
PHPの設定
php.iniを編集。雛型が用意されているのでそれを利用。
# cp -p /usr/local/src/php-5.2.5/php.ini-dist /usr/local/lib/php.ini
php.iniを編集
有効にする、または追加するパラメータ
# vi /usr/loca/lib/php.ini
[PHP] output_handler = mb_output_handler default_charset = "UTF-8" [mbstring] mbstring.language = Japanese mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.internal_encoding = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = none;
apacheとの連携
Apacheのインストールについては、Apache2.0.63インストール方法 on CentOS5.1を。
http.confを修正。
# vi /usr/local/apache2/conf/httpd.conf
phpを有効にする。
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Apache 再起動
# /sbin/service httpd restart
おっ。エラーが出ました。
httpd を起動中: Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
ライブラリに対するセキュリティ属性が適切に設定されていないことを意味するそうです。
via: Kazuhiro's Weblog: (メモ) 「cannot restore segment prot after reloc: Permission denied」の対処方法
というわけで、SELinuxをEnforcingから、Disable(無効)にしてしまいました(--;
system-config-securitylevel-tui
PHPの動作確認
Apacheのドキュメントルートにテスト用のファイルを作成する。
# vi /usr/local/apache2/htdocs/phpinfo.php
中身を以下のように記述
<?php phpinfo(); ?>
データベースアクセスを実装するために、PDO(PHP Data Object)をインストール
PDOは、PHP拡張モジュールとして、PECL(The PHP Extension Community Library)から入手する
ダウンロード
# pecl download pdo_mysql WARNING: channel "pecl.php.net" has updated its protocols, use "channel-update pecl.php.net" to update downloading PDO_MYSQL-1.0.2.tar ... Starting to download PDO_MYSQL-1.0.2.tar (Unknown size) .........done: 70,656 bytes File /usr/local/src/php-5.2.5/PDO_MYSQL-1.0.2.tar downloaded
解凍とコンパイルとインストール
autoconfが必要になるので入れておく
# yum -y install autoconf
コンパイルとインストール
# tar xvf PDO_MYSQL-1.0.2.tar # cd PDO_MYSQL-1.0.2 # phpize # ./configure --with-pdo-mysql=/usr/local/mysql # make # make install Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
ライブラリのコピー
# cp -p /usr/local/lib/php/extensions/no-debug-non-zts-20060613/* /usr/local/lib/php/extensions/.
PDOを有効にするために、php.iniの編集
# vi /usr/local/lib/php.ini
以下の内容でキーを有効にする
include_path = ".:/php/includes:/usr/local/lib/php" extension_dir = "/usr/local/lib/php/extensions"
Apacheの再起動
# /sbin/service httpd restart
PDO動作確認
PDOを使ったデータベースアクセスのサンプルプログラム。単に接続するだけですが...(w
MySQLのインストールは、MySQL 5.0.51をソースからインストールする on CentOS5.1を参照して下さい。
# vi /usr/local/apache2/htdocs/pdo.php
<?php try { $dbh = new PDO('mysql:host=localhost;dbname=mydatabase','dev','dev00'); $dbh = null; print "OK"; } catch (PDOException $e) { print "error! " . $e->getMessage(); die(); } ?>