スタッフブログ

  • 最新配信
  • RSS

CentOSにSSH2を入れてみた

suin : PHP 2010/10/4 17:22

Blogger's Avatar

PHPにはSSH2の関数が用意されています。ここでは、CentOSにSSH2を入れる手順を書いておきます。試行錯誤込みで書いてますので、手っ取り早くうまく言ったコマンドだけ知りたい人はこのセクションの最後に飛んでください。

SSH2はPECLの拡張モジュールなので、下記のコマンドを実行すればいいとのこと。

pecl install ssh2-beta

実行してみた。

bash: pecl: command not found

...(-_-;;;

PECLが入ってなかったとは。PECLを入れるために下記のコマンドを実行しました。

yum -y install php-pear

すると、こんどは、Missing Dependencyのエラーが。なんという失敗続き;;

php-devel-5.1.6-27.el5.x86_64 from base has depsolving problems
  --> Missing Dependency: php = 5.1.6-27.el5 is needed by package php-devel-5.1.6-27.el5.x86_64 (base)
Error: Missing Dependency: php = 5.1.6-27.el5 is needed by package php-devel-5.1.6-27.el5.x86_64 (base)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.

稼働中のPHPのバージョンが5.2.14だったので、そのPHPをとってきたリポジトリからyumしました。

yum install --enablerepo=utterramblings php-pear

which peclとコマンドをたたいて、peclが入っているのを確認。

libssh2が必要らしいので、こちらもyumで取ってきます。

yum -y install libssh2
yum -y install libssh2-devel

peclからssh2を入れます。コマンドは、pecl install ssh2を実行。すぐに怒られました。

Failed to download pecl/ssh2 within preferred state "stable", latest release is version 0.11.0, stability "beta", use "channel://pecl.php.net/ssh2-0.11.0" to install
install failed

仕方がないので、下記のコマンドを実行。

 pecl install channel://pecl.php.net/ssh2-0.11.0

ssh2のインストール中にlibssh2の場所を聞かれます。私の場合、/usrではなかったのでパスを指定しました。

libssh2 prefix? [/usr] : /usr/lib64

しかし、これではうまくいかずエラーが出てしまいました。今日は怒られてばかりです(笑)

ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr/lib' failed

ググったらlibssh2-develも入れないといけないとわかったので、以下のコマンドを実行します。

 yum install libssh2-devel

その後、再度peclコマンドでssh2をインストールします。今度こそうまくいったようなので、php.iniを編集します。

cd /etc/php.d/
 # php.iniを設定しますが、私の環境では.iniを分割していたので、適当にzip.iniをコピーして編集しました。
cp zip.ini ssh2.ini
vim ssh2.in

extension=ssh2.soに書き換えて保存します。あとは、Apacheを再起動して終わりです。

/etc/init.d/httpd restart

結局うまくいったコマンド

# yum install --enablerepo=utterramblings php-pear
 
# yum -y install libssh2
# yum install libssh2-devel
 
# pecl install channel://pecl.php.net/ssh2-0.11.0
 
# cd /etc/php.d/
 ## php.iniを設定しますが、私の環境では.iniを分割していたので、適当にzip.iniをコピーして編集しました。
# cp zip.ini ssh2.ini
# vim ssh2.ini

 	extension=ssh2.soと書き込み

# /etc/init.d/httpd restart

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.