아치 리눅스에 php_http 설치

아치 리눅스에 php_http 설치

먼저 PHP 컬 확장을 설치했습니다.

$ sudo pacman -S php-curl

그리고

$ grep curl /etc/php/php.ini
extension=curl.so

그런 다음 PHP PEAR를 설치했습니다.

$ sudo pacman -S php-pear

이제 pear가 설치되었으므로 PECL도 설치했으며 이제 php_http 확장을 설치할 수 있습니다.

$ pecl install php_http

그리고

$ grep http.so /etc/php/php.ini
extension=http.so

http.so는 /usr/lib/php/modules/ 폴더에 있으며 /usr/lib/http/modules/ 폴더에 복사됩니다.

이제 내가 아는 한, 여기에는 php_http 확장이 설치되어 있어야 하지만, 시도하면

$req = new HttpRequest();

오류가 발생했습니다.

Fatal error: Class 'HttpRequest' not found in /srv/http/webcrawler/nettocrawl.php on line 4 

답변1

PECL HTTP 2.0+

최신 버전의 pecl_http에는 http 네임스페이스가 도입되었습니다. 따라서 HttpRequest더 이상 사용할 수 없습니다. PHP에 주목하세요문서네임스페이스를 사용하고 제공된 phpunit 디렉토리에서 사용법과 예제를 확인하세요.

$req = new http\Client\Request();

또는 더 바람직하게는 이전 버전 지원을 허용합니다.

use http\Client\Request as HttpRequest;
$req = new HttpRequest();

기타

때때로 PECL 확장이 올바르게 설치되지 않을 수 있습니다. 팩맨 패키지와 pecl 확장을 혼합하면 이런 일이 발생할 수 있지만 매우 드뭅니다. pecl_http를 수동으로 설치하는 것이 좋습니다.

소스코드를 잡아라

shell ~> curl -o pecl_http.tar.gz http://pecl.php.net/get/pecl_http
shell ~> tar zvxf pecl_http.tar.gz
shell ~> cd pecl_http

구성, 컴파일 및 테스트

shell ~/pecl_http> phpize
shell ~/pecl_http> ./configure
shell ~/pecl_http> make
shell ~/pecl_http> make test

설치하다

shell ~/pecl_http> make install

http.so그러면 설치될 디렉터리가 출력됩니다. 제가 아는 한 그것은 /usr/lib/php/<timestamp>/유용한 메모입니다.

php.ini 및 테스트

php.ini파일을 편집 하고 http.so확장자를 추가합니다.

shell ~> php -m | grep http

표시되지 않으면 확장 프로그램의 전체 경로를 http다시 편집하십시오 .php.ini

extension=/usr/lib/php/<timestamp>/http.so

관련 정보