Memo/Linux/SC420/php5.0

http://dexlab.net/pukiwiki/index.php?Memo/Linux/SC420/php5.0
 

Memo/Linux/SC420

php5.0

インストール

  • 2005-08-18 現在 5.0.4
  1. 既に導入してある場合は、削除
    # 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
  2. ダウンロードとインストール
    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
    今度は問題無い模様
  3. 確認
    # 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。

参考リンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 12:44:37 (3088d)