답변:
를 통해 첫째, 당신은 PEAR를 설치해야합니다 apt-get
둘 것을 필요한 패키지 및 유통 시스템을 얻을 수 PEAR
및 PECL
사용. 쉘 프롬프트에서 다음을 입력하십시오.
sudo apt-get install php-pear
설치를 확인하라는 메시지가 표시됩니다. “y”를 누르고 입력하십시오. 모든 것이 잘되면 php-pear 패키지를 다운로드하여 설치하십시오.
이제 추가 모듈을 컴파일하는 데 필요한 PHP5 소스 파일을 얻으려면 php5-dev 패키지를 설치해야합니다. 쉘 프롬프트에서 다음을 입력하십시오.
sudo apt-get install php5-dev
php5-dev 패키지를 설치하지 않고“pear install”을 사용하여 PECL 확장을 설치하려고하면 다음 오류가 발생합니다.
sh: phpize: not found
ERROR: `phpize’ failed
PECL_HTTP 확장에는 추가 종속성 패키지를 설치해야합니다. 다른 확장의 경우 이것을 건너 뛸 수 있습니다.
sudo apt-get install libcurl3-openssl-dev
이제 확장을 실제로 설치할 준비가되었습니다. 쉘 프롬프트에서 다음을 입력하되 설치하려는 PECL 확장명으로“pecl_http”를 대체하십시오.
sudo pecl install pecl_http
설치 프로그램이 설치중인 확장의 특정 옵션에 대해 묻습니다. 구현에 특정 옵션을 설정하지 않는 한 enter를 한 번 이상 눌러 모든 기본값을 수락 할 수 있습니다. 문제가 해결되지 않으면 모듈을 다운로드, 빌드 및 설치해야합니다.
설치가 완료되면 php.ini 파일에“extension =”줄을 추가하라는 메시지가 표시 될 것입니다. 자주 사용하는 텍스트 편집기에서 php.ini 파일을 열고“Dynamic Extensions”섹션 아래에 줄을 추가하십시오. 우분투에서 php.ini 파일은 / etc / php5 / apache2 폴더에 있습니다.
sudo nano /etc/php5/apache2/php.ini
이 예에서 pecl_http 확장 설치는“extension = http.so”를 추가하도록 요청했습니다. php.ini 파일이 업데이트되었으므로 Apache를 다시 시작해야 새 확장자가로드됩니다.
sudo /etc/init.d/apache2 restart
make
이 작업을 수행하기 전에 설치해야 할 수도 있습니다 . 간단히sudo apt-get install make
php7.0-dev
대신 패키지를 원할 것입니다 :sudo apt-get install php7.0-dev
@Ask의 답변 외에도 다음을 수행해야했습니다.
sudo apt-get install libpcre3-dev
에 pecl install pecl_http
대해이 오류가 발생하여 실행 하기 전에 pcre.h
:
치명적인 오류 : pcre.h : 해당 파일 또는 디렉토리 컴파일이 종료되지 않았습니다.
또한 php.ini
파일 을 편집하는 대신 파일 pecl-http.ini
이있는 conf.d
하위 디렉토리 php.ini
(ubuntu에서 /etc/php5/apache2/conf.d
) 라는 새 파일을 만들었습니다.
그리고 세 줄을 추가해야했습니다.
extension=raphf.so
extension=propro.so
extension=http.so
마지막으로, 설치된 버전이므로 기능을 2.0.6
사용할 수 없지만 http_get_request_headers
네임 스페이스 버전을 사용해야했습니다. \http\Env::getRequestHeader()
자세한 내용은 여기를 참조하십시오.
추신 : 당신이 끝나면 아파치를 다시 시작하는 것을 잊지 마십시오 ( service apache2 restart
)
extension=json.so
전과 http.so
라인 에도 불구하고 이미 가지고 json.ini
에 포함 된 파일을 conf.d
.
Maythux 및 cwd의 답변 외에도 php.ini 파일을 편집하지 않을 수도 있습니다. 이러한 변경 사항은 업데이트시 손실 될 수 있습니다.
데비안 (따라서 우분투)은 아파치 모듈과 같은 방식으로 PHP 모듈을 처리합니다. 살펴보면 다음 /etc/php5
과 같은 디렉토리가 있습니다.
apache2/
cli/
mods-available/
살펴보면 다음 mods-available
과 같은 여러 파일이 표시됩니다.
curl.ini
gd.ini
json.ini
mysql.ini
…
모든 API (apache, cli, cgi)에 대해 이러한 사용 가능한 모드를 활성화 / 비활성화하려면 명령을 사용 php5enmod
하거나 다음 php5dismod
과 같이 할 수 있습니다 .
$ sudo php5enmod curl
각기
$ sudo php5dismod curl
그러면 apache2/conf.d/
및에 모듈 구성 파일에 대한 심볼릭 링크가 만들어 지거나 제거 cli/conf.d/
됩니다.
sapi를 지정하여 모드를 활성화 / 비활성화 할 수 있습니다 (이 경우에는 아파치).
$ sudo php5enmod -s apache2
pecl install
에 대한 구성 파일을 만들지 않고 raphf
다른 모듈과 함께 설치할 수도 있지만 직접 만들 수도 있습니다.
$ sudo touch /etc/php5/mods-available/raphf.ini
그런 다음 다음 줄을 작성하십시오.
; configuration for php raphf module
; priority=20
extension=raphf.so
기본 우선 순위는 20입니다. 어떤 우선 순위를 사용해야하는 모듈의 유형에 따라 달라질 수 있습니다. 들어 raphf
(20)의 벌금을 보인다. ( 업데이트는 : 당신이 버전 2로, pecl_http를 찾고 있다면 그것은 이후에로드되어야 rapfh
하고 propro
그래서에 우선 순위를 설정, mods-available/http.ini
에 30
.)
이를 통해 모듈을 활성화 할 수 있습니다.
$ sudo php5enmod raphf
(참고 : 내 대답은 Ubuntu 14.04에 따라 다르지만 13.04에서 동등한 방식으로 작동 할 수 있습니다 ( http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu 참조 )