Memo/Linux/SC420
php5.0 †
インストール †
- 既に導入してある場合は、削除
# rpm -qa | grep php
php-4.3.9-3.6
php-ldap-4.3.9-3.6
php-pear-4.3.9-3.6
# rpm -qa | grep php | xargs rpm -e
# rpm -qa | grep php
なにも出てこなくなればOK
- ダウンロードとインストール
CentOS用のphp5.0.4 rpmがあったので導入してみる。
# lftp -c "open ftp.riken.jp && user anonymous password && cd /Linux/centos/4.1/centosplus/i386/RPMS/ && mget php*5.0.4-2*"
# rpm -ivh --nodeps php-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-pear-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-devel-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-bcmath-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-dba-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-gd-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-imap-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-ldap-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-mbstring-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-ncurses-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-odbc-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-snmp-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-soap-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-xml-5.0.4-2.centos4.i386.rpm
# rpm -ivh php-xmlrpc-5.0.4-2.centos4.i386.rpm
# rpm -ivh --nodeps php-mysql-5.0.4-2.centos4.i386.rpm
# rpm -ivh --nodeps php-pgsql-5.0.4-2.centos4.i386.rpm
モジュールが正常動作しているか確認。
# php -m
# PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysql.so' - libmysqlclient.so.14: cannot open shared object file: No such file or directory in Unknown on line 0
# PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysqli.so' - libmysqlclient.so.14: cannot open shared object file: No such file or directory in Unknown on line 0
# PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pgsql.so' - libpq.so.3: cannot open shared object file: No such file or directory in Unknown on line 0
古いmysqlとpgsqlのrpmは消したのでライブラリが見つからないらしい。
最新のライブラリのパスを検索。
# locate libmysqlclient.so.15
locateでエラーが出る場合は、
# updatedb
# locate libpq.so.4
新しいライブラリにシンボリックリンクを張ってごまかしてみる。
# ln -s /usr/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.14
# ln -s /usr/lib/libpq.so.4 /usr/lib/libpq.so.3
httpdの再起動
# service httpd restart
もう一度確認
# php -m
今度は問題無い模様
- 確認
# vi /var/www/html/phpinfo.php
---------------------------------
<?php phpinfo();?>
---------------------------------
ブラウザでアクセスしてみる。
http://IPアドレス/phpinfo.php
OKだった。
php.iniの設定 †
- 編集
# vi /etc/php.ini
- 出力時に、mbstringモジュールを通すようにする
;output_handler =
output_handler = mb_output_handler
- mbstringのデフォルト言語を日本語にする
;mbstring.language = Japanese
mbstring.language = Japanese
- 内部エンコーディングをUTF-8にする
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
- 入力時のエンコーディングを自動判別させる
;mbstring.http_input = auto
mbstring.http_input = auto
- 出力時のエンコーディングは無変換とする
(mbstring.internal_encodingでUTF-8としているので、デフォルト出力はUTF-8となる)
;mbstring.http_output = SJIS
mbstring.http_output = pass
- 入力エンコーディングの検出および内部エンコーディングへの変換を有効とする
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On
- 入力エンコーディングの検出順序をauto(ASCII,JIS,UTF-8,EUC-JP,SJIS)とする
;mbstring.detect_order = auto
mbstring.detect_order = auto
- 保存して、httpdの再起動
# service httpd restart
動作確認 †
PostgreSQL †
PHP5の関数が使用できるかテスト
# vi /var/www/html/pgsql.php
--------------------------------
<?php
$database = pg_connect ("host=localhost port=5432 user=postgres dbname=template1");
echo "<pre>";
var_export(pg_version($database));
pg_close ($database);
?>
--------------------------------
ブラウザから見てみる。
http://IPアドレス/pgsql.php
--------------------------------
array (
'client' => '7.4.8',
'protocol' => 3,
'server' => '8.0.3',
)
OK。
MySQL †
# vi /var/www/html/mysql.php
--------------------------------
<?php
$database = mysql_connect("localhost") or die("Could not connect");;
echo "<pre>";
$result = mysql_query ("SELECT VERSION();") or die ("Invalid query");
$line = mysql_fetch_array($result, MYSQL_ASSOC);
var_export($line);
mysql_close($database);
?>
--------------------------------
ブラウザから見てみる。
http://IPアドレス/mysql.php
--------------------------------
array (
'VERSION()' => '5.0.11-beta-standard',
)
OK。
参考リンク †