2012-06-06 4 views
1

Bluehost 공유 사이트에 PHP 확장을 설치하고 싶습니다. 특히 MongoDB 드라이버. pecl은 설치된 모든 확장이있는 주 서버 디렉토리에 쓸 수 없으므로 집에서 지정한 디렉토리에 mongo.so 파일을 설치하고 싶습니다. 내가 웹에서 발견 된 가장 가까운 기사였다공유 호스트의 로컬 디렉토리에 pecl로 설치

http://www.site5.com/blog/programming/php/how-to-setup-your-own-php-pear-environment/20090624/

그러나, 단계를 수행 한 후 나는 "PECL 몽고를 설치"명령을 사용할 때, 그것은 여전히 ​​서버에 Bluehost를 중앙 디렉토리에 설치하려고 유지합니다.

답변

1

서버에 대한 루트 액세스 권한이없는 것 같습니다. 무엇이든 컴파일해야 할 필요가 있다면 서버에 대한 루트 액세스 권한이 있어야합니다. 그렇지 않으면 sudoers 중 하나 여야합니다.

3

내 웹 호스트의 기술 지원 팀에 따르면 pecl 설치 프로그램을 사용하면 계정 아래에만 확장 기능을 설치하는 대신 서버 전체에 확장 기능을 설치하려고합니다. 내 웹 호스트는 보안상의 이유로 공유 환경에서 서버 전체 설치를 허용하지 않으며 전체적으로 항공기를 동일하게 유지하기를 원하기 때문입니다. 네 주인이 같다고 생각해.

$ cd ~/ 
$ wget http://pecl.php.net/get/pecl_http 
$ tar -zxvf pecl_http.tar.gz 
$ cd pecl_http 
$ phpize 
$ ./configure --prefix=~/bin 
$ make 
$ make test 
$ make install 

성공적인 설치 :

그러나, 그들은을 다운로드 제안 구성하고 내 계정에있는 PECL 패키지 (pecl_http)를 설치하는 경우에만 (이 아닌 서버 전체) 다음과 같은 수동 프로세스를 통해 한 extname.so가 생성되어 PHP 확장 디렉토리에 저장됩니다. php.ini 파일을 편집해야합니다 (내 경우 확장자를 사용하는 스크립트와 동일한 폴더에있는 표준 php.ini 파일의 사본입니다) extension=extname.so 줄을 추가하십시오. 사례, extension=http.so)를 사용하기 전에 확장 프로그램을 사용할 수 있습니다. 위의 코드에서 ~ 문자 (~가) 현재 사용자의 홈 디렉토리를 참조하는 http://www.php.net/manual/en/install.pecl.phpize.php

주 (예를 들어 /home/username 내 호스트의 서버에). pecl_http은 파일 확장자없이 다운로드 한대로 오류 나타난 다음 tar 명령을 사용하는 경우

문제는 당신은 "디렉토리가 아닌이 을 열 수 없습니다"

  1. 으로 실행할 수 있습니다. 이 쉽게 수정되었습니다

    mv pecl_http pecl_http.tar.gz 
    
  2. make install 명령, 사용 errror 나타났다 "은 cp : 일반 파일을 만들 수는 ... 권한 거부". 나는 PECL에 대한 ext_dir을 변경하여이 문제 를 해결 ...

    pecl config-set ext_dir /home/username/bin/extensions 
    

    ... 그리고 make install을 다시 실행. 나는 또한 /home/username/bin/extensions에 http.so 확장을 복사하고 내 PHP에서 해당 위치를 참조했다.이 파일 :

    extension_dir = "/home/username/bin/extensions" 
    
관련 문제