ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    さくらのVPS 最新のPHPインストール

    このエントリーを含むはてなブックマーク はてなブックマーク - さくらのVPS 最新のPHPインストール あとで読む
    さくらのVPS インストールまとめ - 浜村拓夫の世界

    さくらのVPS(CentOS5.5 64bit版)で、最新のPHPをインストールします。
    ・現時点ではPHP5.3.6が最新版でした。
    ・PHP拡張モジュール「php-mysql」のインストールでエラーが出たので、対処法もご紹介いたします。





    ●最新バージョンのPHPをインストール
    「remi」リポジトリに最新のPHPのパッケージがありました。
    remiを利用してインストールしてみます。

    さくらのVPS サーバー設定の基礎知識 - 浜村拓夫の世界

    (5) CentOSのリポジトリ
    Linuxの各種ソフトやライブラリは、インターネット上サーバで保存・公開されており、ダウンロードして利用可能になっています。
    保存・公開されている場所のことを「リポジトリ」と呼びます。
    CentOSの場合、インストールを管理する「yum」等のツールで、いろいろなリポジトリを利用することができます。



    (参考) CentOS 5.5 に PHP 5.3 をインストール

    ・remiリポジトリを登録

    rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm



    ・epelリポジトリを登録すると、最新のMySQLをインストールするときにエラーが出たので、ここでは登録しないでおきます。
    (=MySQL5.5の32bit版、64bit版等がごっちゃになってエラーが出た?スキルが低くて、原因は追求できていません。)

    ・現状のバージョンを確認

    rpm -qa | grep php | sort
    yum info php --enablerepo=remi ← remiリポジトリにあるPHPのバージョンをチェック



    Available Packages
    Name : php
    Arch : x86_64
    Version : 5.3.6
    Release : 1.el5.remi



    ・最新のPHP 5.3.6があったので、これを入れます。

    yum install php --enablerepo=remi



    ●php.iniの編集
    date.timezoneを確認して、必要に応じて変更します。

    (参考) date.timezoneを設定(PHPの処理が速くなる)

    vi /etc/php.ini



    [Date]
    date.timezone = "Asia/Tokyo"



    ●PHPの拡張モジュールをインストール
    使う予定のあるPHPの拡張モジュールをインストールします。

    (参考) yumでインストールできるPHP関連の一覧

    (例)とりあえず、以下のような拡張モジュールを入れときます。
    php-mbstring → マルチバイト(日本語など)を扱う
    php-gd → GDライブラリで画像を扱う
    php-pear → PEARを使用する
    php-mcrypt → 暗号化関数Mcryptを使用する(phpMyAdminで必要)
    php-mysql → MySQLを使用する
    php-devel → PHPのコンパイル(phpizeコマンド)で使用する
    php-eaccelerator → アクセラレータ(APCを使う場合は、php-apc)




    yum install php-mbstring --enablerepo=remi
    yum install php-gd --enablerepo=remi
    yum install php-pear --enablerepo=remi
    yum install php-mcrypt --enablerepo=remi
    yum install php-mysql --enablerepo=remi → ここでエラー発生!
    yum install php-devel --enablerepo=remi



    (一行で書くなら、
    yum install php php-mbstring php-gd php-pear php-mcrypt php-mysql php-devel php-eaccelerator --enablerepo=remi)

    ・Apache再起動で変更を反映させます。

    /etc/rc.d/init.d/httpd restart



    ●拡張モジュール「php-mysql」のインストールエラー対処法
    PHPの「php-mysql」(mysql拡張モジュール)をインストールしようとしたところ、依存するパッケージが無いというエラーメッセージが出て、インストールに失敗しました。
    そのうち更新されればエラーは出なくなるのだろうと思いますが、現時点では以下のような対処方法が紹介されていました。

    ・解決方針
    不足している依存パッケージ「libmysqlclient.so.16(libmysqlclient_16)(64bit)」を手動で追加することにします。

    (参考) CentOS 5でPHP 5.2.10 + MySQLを使う | wdsdx.com

    2009/08/11(火) 21:14 - saboten-dx
    RHEL(CentOS) 5でPHP 5.2.10を使う
    以前ですね、「CentOS 5 で PHP 5.2.8 以上を使う」でlibmysqlclient.so.16ライブラリ(MySQL 5.1系クライアント)がRHEL5系のOSにはないので、下記のようなエラーが出たり、インストールできなかったりという時の解決方法を紹介しました。

    PHP Warning: PHP Startup: Unable to load dynamic library
    '/usr/lib/mysql/mysql.so' -
    libmysqlclient.so.16: 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/local/zend/lib/php_extensions/mysqli.so' -
    libmysqlclient.so.16: 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/local/zend/lib/php_extensions/pdo_mysql.so' -
    libmysqlclient.so.16: cannot open shared object file:
    No such file or directory in Unknown on line 0

    サードパーティのyumリポジトリ「remi」を使って、mysql-serverを5.1にアップグレードする方法でした。

    ところが時間がたって、サードパーティリポジトリよりもう少し信頼性の高い解決方法ができました。

    1つ目は、Zend Serverを導入する方法。Zend ServerはPHPのアプリケーションサーバでVer.4では、PHP5.2.10を含んでいます。

    2つ目は、MySQLの公式サイトでRHEL5用のRPMを配っています。その中のShared compatibility librariesという、libmysql.soのコンパチパッケージをインストール方法です。

    今回は、こちらの方法を紹介します。
    MySQLのダウンロードはユーザ登録(無料)が必要なせいか、リポジトリがありませんのでダウンロードします。
    もう一点、注意事項ですがリポジトリがないので、バージョンアップの監視も更新も毎回手作業です!

    MySQLサイトのアカウントを取って、ログインしておいてください。

    1. MySQL-shared-compatのRPMダウンロード

    MySQL公式サイトからで、「ダウンロード」をクリックして、開きます。
    MySQL Community Serverの5.1の「Download」をクリックして、Red Hat Enterprise Linux 5 RPM (x86)をクリックしてください。
    アーキティクチャやRHELのバージョンが違う人は、自分に合わせたものを選びます。

    Shared compatibility libraries(3.23, 4.x, 5.x libs in same package)のPick a mirrorをクリックし、ミラーサイトの一覧から適当なのを選んでください。

    MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm

    をダウンロードします。
    URLさえわかれば認証は関係なさそうなのです。wgetでサーバ上に直接取得できました。

    # wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/

    2. MySQL-shared-compatのインストール

    rpmなので何も考えずインストールするだけです。

    # rpm -Uvh MySQL-shared-compat-5.1.37-0.rhel5.i386.rpm

    libmysqlclient.soが何種類かインストールされて、PHPの最新版をインストールできるようになります。

    サードパーティは最新バージョンがあって、使い勝手はいいのですが、業務的に考えると信頼性やサポートがなかったり、運用保守フェーズで非常に障害になります。担当が替わることも考えて、できるだけRPMを使うという方針を持ってサーバ構築の勉強をした方がいいと思ってます。



    ・ポイントは、32bit版と64bit版を間違えないで取得することでしょうか?
    (=RPMパッケージのファイル名末尾で見分ける)
    ・32bit版 → *.i386.rpm
    ・64bit版 → *.x86_64.rpm

    本記事では、さくらのVPSのデフォルトのゲストOS(CentOS5.5 64bit版)を使用しているので、64bit版対応のRPMパッケージを利用します。
    具体的には、以下のような操作を行います。

    「MySQL-shared-compat-5.5.10-1.rhel5.x86_64.rpm」
    で検索します。

    ヒットしたMySQLサイトのページ:
    http://dev.mysql.com/downloads/mysql/5.5.html?current_os=7

    Red Hat & Oracle Enterprise Linux 5 (x86, 64-bit), RPM Package
    Compatibility Libraries 5.5.10 4.9M
    (MySQL-shared-compat-5.5.10-1.rhel5.x86_64.rpm) MD5: f602d3934d3b42a6d8c855fe87f725d3


    最新のRPMがありました。

    ダウンロードのリンク先:
    http://dev.mysql.com/downloads/mirror.php?id=401909#mirrors

    ミラーサイトのダウンロードURL:
    http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-shared-compat-5.5.10-1.rhel5.x86_64.rpm/from/http://ftp.iij.ad.jp/pub/db/mysql/
    IIJにミラーがありました。

    とりあえず、作業用ユーザーのホームディレクトリ等にダウンロードします。

    /home/sakura



    RPMパッケージをインストールします。

    cd /home/sakura
    rpm -Uvh MySQL-shared-compat-5.5.10-1.rhel5.x86_64.rpm



    以上の操作で、不足していた依存パッケージ「libmysqlclient.so.16(libmysqlclient_16)(64bit)」が入りました。

    改めて、「php-mysql」を入れます。

    yum --enablerepo=remi install php-mysql



    これでエラーが出なくなりました。
    「php-mysql」のインストール成功!

    ・Apacheを再起動して、変更を反映させます。

    /etc/rc.d/init.d/httpd restart



    ●phpinfo()確認
    PHPのインストールが完了したら、最後にphpinfo()関数で設定内容を確認しておきます。

    <?php
    phpinfo();
    ?>



    ●yum-utils
    依存関係を無視してインストールする方法も紹介されていました。
    CentOS5.5でMySQL本家のRPMを使って5.5.6 rc1をインストールしてremiのPHP5.3.3から接続する

    php-mysqlを依存関係無視してインストールするためにyum-utilsをインストール

    # yum install yum-utils

    # yumdownloader --enablerepo=remi php-mysql
    # rpm -ivh --nodeps php-mysql



    yum-utilsの機能拡張アップデート

    yum-utilsは、yumパッケージマネージャ用のユーティリティとサンプルを集めたものです。これには、複数の開発者がyumをより使いやすく強力にするために作成したユーティリティが含まれています。



    yumのパッケージ管理機能を強化するプラグインとユーティリティ

    コマンドラインでの作業用としてインストールしておきたいのがyum-utilsだ。米デューク大学(Duke University)で開発されたyum-utilsには各種ツールを1つにまとめる狙いがあるようだが、今のところツールは2つしか含まれていない。その1つ、yumdownloaderユーティリティはyum-downloadonlyプラグインに似ているが、ディレクトリの指定、必要な依存関係のダウンロードファイルへの追加、ソースパッケージのダウンロードなど、より多くのオプションが存在する。



    独習Linux独習Linux
    小林 準

    翔泳社 2007-01-25
    売り上げランキング : 152999

    Amazonで詳しく見る
    by G-Tools


    実践CentOSサーバルート養成講座実践CentOSサーバルート養成講座
    田鍬 享

    秀和システム 2009-06
    売り上げランキング : 253219

    Amazonで詳しく見る
    by G-Tools


    さくらのVPS インストールまとめ - 浜村拓夫の世界
    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/638-f66f3c41

    FC2Ad