BLOG ENTRY

PHPでssh接続環境をインストール[PECL][SSH2][CentOS]

php

PHPでssh2_connect()などssh2関数を使えるように、PECLのssh2をCentOS5.3の64ビット版にインストール

まずは準備から

# wget http://www.libssh2.org/download/libssh2-1.1.tar.gz
# mv libssh2-1.1.tar.gz /usr/local/src/libssh2-1.1.tar.gz
# cd /usr/local/src/
# tar zxvf libssh2-1.1.tar.gz
# cd libssh2-1.1.tar.gz
# ./configure
# make

ここでエラーが出てしまいました。

なのでopensslの開発環境をインストール

# yum -y install openssl-devel

再度makeから実行

# make
# make install

でlibssh2のコンパイル完了

次に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
Cannot initialize ’ssh2′, invalid or missing package file
Package “ssh2″ is not valid
install failed

なので手動でssh2の最新版をインストール

# wget http://pecl.php.net/get/ssh2-0.11.0.tgz
# tar zxvf ssh2-0.11.0.tgz
# cd ssh2-0.11.0
# phpize
# make
# make install
Installing shared extensions:     /usr/lib64/php/modules/

php.ini用にextensionを記載する
# vim /etc/php.d/ssh2.ini
extension=ssh2.so

Webサーバ再起動してphp.ini再読み込み

#service httpd restart

phpinfoにssh2の項目が表示されて
ssh2_connect()などが使えるようになりました

PHPで別サーバへファイル送信テスト

<?php
$connection = ssh2_connect('接続先ホスト', 22);
ssh2_auth_password($connection, 'ユーザー名', 'パスワード');
ssh2_scp_send($connection, 'sample.jpg', '/var/www/html/sample.jpg', 0644);

sample.jpgをリモートからファイルアップロードできました。

※ついでにPHPでリモートサーバのファイル削除テスト

<?php
$connection = ssh2_connect('接続先ホスト', 22);
ssh2_auth_password($connection, 'ユーザー名', 'パスワード');
$sftp = ssh2_sftp($connection);
ssh2_sftp_unlink($sftp, '/var/www/html/sample.jpg');

sample.jpgをリモートから削除できました。

関連記事

  1. LinuxとWindows(XAMPP)にimageMagic(imagick)
  2. CentOS5.3にPECLでphp-apcをインストールする
  3. PEARを強引にupgrade[CentOS5.3]
  4. [PHP][PEAR]Services_Twitterを使ってタイムラインを取得
  5. $_SERVER['PATH_INFO']でやる擬似rewrite[PHP]

WRITE COMMENT


(required)


(required)


(required)

MENU