phpでsambaに接続してファイルを読み書きするのは可能?
phpでfopen(‘smb://user:password@192.168.123.123/xxxxxxxx’); みたいなことできないよね。
デフォルトではsambaにアクセスできるラッパー(smb://~ができるラッパー)がない。
そこでlibsmbclientを利用したphpのextensionを使う方法をご紹介。
# cd libsmbclient-php # phpize # ./configure # make # make install
configure でライブラリが足らないといわれたら
yum install libsmbclient libsmbclient-devel
php.ini に以下を追加。
extension="libsmbclient.so"
httpd 再起動。
別な方法としては、必要なときだけに dl(‘no-debug-non-zts-20020429/libsmbclient.so’); などしてもよい。
phpinfo()で確認
・読み出し
//dl('no-debug-non-zts-20020429/libsmbclient.so');
$fh = smbclient_open('smb://user:password@192.168.123.123/xxxxxxxx/test.txt');
while($str = smbclient_read($fh, 4096)) {
var_dump($str);
}
smbclient_close($fh);
その他、これらの関数が使えるようです。
マニュアル類が見当たらないので、細かいところはソース(libsmbclient.c)を読めということでしょうか。
システム開発 ソフテルのブログ | こんなこともメモって!
no comments
RSS / trackback