phpでsftpファイル転送

Gumblarがftpを利用するということで、弊社サーバもftpサービスを停止いたしました。

以前、個人のパソコンからファイル転送するバッチを作っていたのですが、これがftpで転送をしていたので、sftpに書き直しの必要に迫られました。
どうせ自分のマシンで使うものだから手軽にやっとけ。ってことでphpに決定。

phpはphp.netから最新版のWindows用バイナリを取得。sftp転送にはpeclのphp_ssh2ライブラリはdownloads.php.netより取得

実際は複数ファイルなのでループ回したりしてますが、概ねこんな感じ。

$conn = ssh2_connect('server.com', 22);
if (!ssh2_auth_password($conn, 'userid', 'password')) {
die('【エラー】ログインが拒否されました。\n');
} else {
$sftp = ssh2_sftp($conn);
}
if (!ssh2_scp_send($conn, 'c:\local\path\file.csv', 'remote/path/file.csv', 0644)) {
echo "転送失敗\n";
}

拍子抜けな程アッサリと動きました。
phpは色々便利なライブラリが揃ってるのでこういうちょこっと仕事に非常に便利ですね。

CentOS5にphp最新版をRPMでインストール

以前、php5.2のインストールを書いたのですが、5.3のインストールの機会があったのでメモ。
パッケージはLes RPM de Remiより。フランス語と英語でちんぷんかんぷんですが(笑)、
とりあえずEnglish : Repository Configurationに従って

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

を実行後、yumにてパッケージインストール

# yum –enablerepo=remi install php php-bcmath php-cli php-common php-dba php-eaccelerator php-gd php-imap php-interbase php-ldap php-magickwand php-mbstring php-mcrypt php-mhash php-mssql php-mysql php-ncurses php-oci8 php-odbc php-pdo php-pear php-pecl-imagick php-pgsql php-process php-snmp php-soap php-suhosin php-tidy php-xml php-xmlrpc php-zts php-devel php-adodb

Apacheの再起動後、phpinfoにて確認。無事インストールできました。

phpの最新版RPMがあるリポジトリ

現在phpの最新版は5.3ですが、さすがにまだどのディストリビュージョンも対応していないですね。ググってみると、現在配布しているリポジトリはフランスのRemiが安定しているみたいです。

トップはフランス語で何が何だか・・・
右上ペインの「English : Repository Configuration」からFedora・RHEL・CentOSのリポジトリに入れます。5.2.10まではremi、5.3以降はremi-testでパッケージが見つかります。