학습자료(~2017)/리눅스

[PHP] php 에 ssh2 라이브러리 연동하기

단세포소년 2012. 3. 2. 16:16
반응형

자료 출처 : http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=203

자료 출처 : http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=202

자료 출처 : http://surfnet.dl.sourceforge.net/sourceforge


*** php 모듈들은 phpize 를 해주어야 configure 파일이 생긴다.. 이점 꼭 기억해두면 좋다..


세 웹사이트를 보면서 해보면 된다.


리눅스에서 php로 ssh를 이용한 ftp 전송을 하고자 할 경우

PECL 사이트에서 제공하는 ssh2를 설치 하시면 이용 가능합니다.

해당 모듈이 php와 연동 해서 동작하는 원리 입니다.

ssh2 PHP extension http://pecl.php.net/package/ssh2

직접 다운로드 (http://pecl.php.net/get/ssh2-0.11.0.tgz)

# tar zxvf ssh2-0.11.0.tgz
# cd ssh2-0.11.0
# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

* phpize 가 안되는 경우
http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=202

# ./configure
# make
# cp .libs/ssh2.so /usr/local/php/
(이 예제는 PHP Extension을 /usr/local/lib 에 복사를 한다.)

# vi /usr/local/lib/php.ini
extension=ssh2.so 를 추가 시켜준다.
** 여기서 extension_dir의 경로가  /usr/local/php 로 설정이 되어있고 , 시스템마다 다른경로로 표현이 될수 있음

# php -m | grep ssh2
ssh2

설치가 완료 되었으므로 Apache 웹서버를 재 시작해준다.

[출처] 세이박스 - http://www.saybox.co.kr/bbs/board.php?bo_table=board01&wr_id=203



phpize 명령어를 실행시 아무런 반응이 없는경우
설치가 안되었거나 path가 설정 안되어서 그렇습니다.

일단, 설치하실려면 yum 을 이용해서 간단히 설치 하실 수 있습니다.

yum -y install php-devel.i386

[root@ ssh2-0.11.0]# yum install php-devel.i386
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package php-devel.i386 0:5.2.9-2.fc9 set to be updated
--> Processing Dependency: php = 5.2.9-2.fc9 for package: php-devel
--> Running transaction check
---> Package php.i386 0:5.2.9-2.fc9 set to be updated
--> Processing Dependency: httpd-mmn = 20051115 for package: php
--> Processing Dependency: php-common = 5.2.9-2.fc9 for package: php
--> Processing Dependency: php-cli = 5.2.9-2.fc9 for package: php
--> Processing Dependency: httpd for package: php
--> Running transaction check
---> Package httpd.i386 0:2.2.9-1.fc9 set to be updated
--> Processing Dependency: httpd-tools = 2.2.9-1.fc9 for package: httpd
---> Package php-cli.i386 0:5.2.9-2.fc9 set to be updated
---> Package php-common.i386 0:5.2.9-2.fc9 set to be updated
--> Running transaction check
---> Package httpd-tools.i386 0:2.2.9-1.fc9 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================
 Package                     Arch                 Version                     Repository                      Size
===================================================================================================================
Installing:
 php-devel                   i386                 5.2.9-2.fc9                 updates-newkey                 551 k
Installing for dependencies:
 httpd                       i386                 2.2.9-1.fc9                 updates-newkey                 975 k
 httpd-tools                 i386                 2.2.9-1.fc9                 updates-newkey                  69 k
 php                         i386                 5.2.9-2.fc9                 updates-newkey                 1.2 M
 php-cli                     i386                 5.2.9-2.fc9                 updates-newkey                 2.3 M
 php-common                  i386                 5.2.9-2.fc9                 updates-newkey                 238 k

Transaction Summary
===================================================================================================================
Install      6 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 5.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): httpd-tools-2.2.9-1.fc9.i386.rpm                                                     |  69 kB     00:00    
(2/6): php-common-5.2.9-2.fc9.i386.rpm                                                      | 238 kB     00:00    
(3/6): php-devel-5.2.9-2.fc9.i386.rpm                                                       | 551 kB     00:00    
(4/6): httpd-2.2.9-1.fc9.i386.rpm                                                           | 975 kB     00:00    
(5/6): php-5.2.9-2.fc9.i386.rpm                                                             | 1.2 MB     00:00    
(6/6): php-cli-5.2.9-2.fc9.i386.rpm                                                         | 2.3 MB     00:00    
-------------------------------------------------------------------------------------------------------------------
Total                                                                              3.9 MB/s | 5.3 MB     00:01    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : php-common                                                                                  1/6
  Installing     : php-cli                                                                                     2/6
  Installing     : httpd-tools                                                                                 3/6
  Installing     : httpd                                                                                       4/6
  Installing     : php                                                                                         5/6
  Installing     : php-devel                                                                                   6/6

Installed:
  php-devel.i386 0:5.2.9-2.fc9                                                                                    

Dependency Installed:
  httpd.i386 0:2.2.9-1.fc9      httpd-tools.i386 0:2.2.9-1.fc9 php.i386 0:5.2.9-2.fc9 php-cli.i386 0:5.2.9-2.fc9
  php-common.i386 0:5.2.9-2.fc9

Complete!


실행 경로는 저의 경우 /usr/bin/phpize 경로에 있더군요.

yum 으로 설치 하셨다면 바로 path 설정 될테니

# phpize

라고 바로 실행 하시면 됩니다.

실행 결과는 다음처럼 나타날겁니다.

[root@ ssh2-0.11.0]# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

이후에 # ll 해보시면 파일이 여러개 생긴걸 보시게 될겁니다.
이후 ./configure ~ make 등 실행 하셔서 원하는 파일 설치 하시면 되겠습니다.


반응형