>백엔드 개발 >PHP 문제 >리눅스에 PHP 스레드 확장을 설치하는 방법

리눅스에 PHP 스레드 확장을 설치하는 방법

藏色散人
藏色散人원래의
2021-10-26 10:29:452861검색

Linux에 PHP 스레드 확장을 설치하는 방법: 1. lnmp 설치 디렉터리에서 lnmp.conf 파일을 찾습니다. 2. "PHP_Modules_Options"에 "--enable-maintainer-zts"를 추가합니다.

리눅스에 PHP 스레드 확장을 설치하는 방법

이 기사의 운영 환경: Ubuntu 16.04 시스템, PHP 버전 7.1, DELL G3 컴퓨터

Linux에 PHP 스레드 확장을 설치하는 방법은 무엇입니까?

Ubuntu에서 PHP용 pthreads 확장 설치:

pthreads는 멀티스레딩을 사용하는 PHP 확장입니다. 여기서는 너무 많은 내용을 소개하지 않겠습니다. 이미 이해하셨으니 이해가 안 되신다면 문서를 읽어보시기 바랍니다.

문서 주소 : https://www.php.net/manual/zh/book.pthreads.php

여기서 설치 과정에 대해 이야기해보겠습니다. 우여곡절도 있었고 정식으로 만나기 전에 많은 정보를 참고했습니다. 그것을 설치. 적어서 자신만의 기록을 남기고, 미래의 친구들에게도 참고가 되어 함정을 피하세요.

설치 환경

  • Ubuntu 16.04 LTS
  • Lnmp 1.4 - - 많은 사람들이 이
  • pthreads 소스 코드

를 사용하고 있다고 생각합니다. 여기서는 pecl install pthreads를 통한 이 확장 프로그램 설치가 실패했다는 점에 유의해야 합니다. 소스코드를 다운로드해 직접 컴파일하고 설치해야 하며, GitHub 트렁크 브랜치에서만 다운로드할 수 있습니다. 다른 소스 코드에는 문제가 있는 것 같았습니다. 처음에는 http://pecl.php.net에서 다운로드했지만 컴파일이 항상 실패했습니다. 나중에 정보를 확인해 보니 문제가 있다는 걸 알게 됐어요. GitHub에서 다운로드해야 합니다.

GitHub: https://github.com/krakjoe/pthreads

PHP 환경 구성하기

기본적으로 모두가 이미 lnmp 환경을 설치했습니다. 아직 설치하지 않았다면 왼쪽으로 돌아가서 구글링해 보세요.
pthreads에서는 PHP가 스레드로부터 안전한 방식으로 실행되어야 하므로 PHP를 컴파일할 때 --enable-maintainer-zts를 추가해야 합니다. 그러나 lnmp 통합 패키지는 기본적으로 스레드로부터 안전하지 않습니다.

여기에서 lnmp 설치 디렉터리로 이동하여 lnmp.conf 파일을 찾으세요.

리눅스에 PHP 스레드 확장을 설치하는 방법

제 스크린샷처럼 PHP_Modules_Options에 --enable-maintainer-zts를 추가하세요.

컴파일 PHP

  1. 새 설치 환경, lnmp 프로세스를 단계별로 따르세요. 설치가 완료되면 PHP는 스레드로부터 안전합니다.
  2. 설치된 lnmp 환경 여기서는 lnmp에서 제공하는 업그레이드 스크립트를 사용하여 PHP를 업그레이드할 수 있습니다(PS: 스크립트는 현재 버전 번호를 감지하지 못합니다. 현재 버전 번호를 입력하면 PHP를 다시 설치한다는 의미입니다). 완전한.
  3. ** PHP 수동 컴파일 ** lnmp1.4-full/src 디렉터리를 입력합니다(실제 상황에 따라). 내 디렉터리는 /home/src/lnmp1.4-full/src에 있으며 압축된 파일이 있는지 확인하세요. PHP 패키지, 직접 다운로드하지 않은 경우
sudo wget http://cn2.php.net/distributions/php-7.0.20.tar.bz2
tar -jxvf php-7.0.20.tar.bz2

참고: 제가 여기서 제공하는 내용은 현재 PHP 공식 웹사이트에서 직접 확인할 수 있습니다.

계속:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl --enable-maintainer-zts
make
sudo make install

이 코드는 lnmp1.4-full/include/php.sh에서 추출되었습니다. 직접 공부해 보세요.
phpinfo()를 엽니다.

리눅스에 PHP 스레드 확장을 설치하는 방법

스레드 안전이 활성화되어 있는지 확인하세요.

pthread를 컴파일하는 중요한 순간이 왔습니다

pthreads 소스 코드 패키지를 PHP 소스 코드의 ext 디렉토리에 넣으세요. 내 디렉토리는 다음과 같습니다. lnmp1.4-fullsrcphp -7.0.19ext [자신의 상황에 따라 조정]
pthreads 디렉토리에 들어가세요

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install

자신의 상황에 맞게 php-config 경로를 조정하세요. 기본 lnmp를 사용한다면 바로 이겁니다

여기서 실행하면 pthreads.so가 성공적으로 컴파일되었다는 메시지가 뜹니다. 그렇지 않은 경우 이전 단계를 확인하세요.

php.ini 구성

일반 온라인 튜토리얼에서는 이 지점에 도달한 후 다음과 같이 말합니다. php.ini 파일에 pthreads.so를 추가하고 php-fpm을 다시 시작하면 끝입니다.
이곳은 구덩이입니다. php.ini를 직접 추가하면 php-fpm을 시작할 수 없으며 pthreads.so를 로드할 수 없다는 메시지가 표시됩니다

올바른 자세:
php.ini를 복사하고 이름을 php-cli.ini
Put pthreads로 지정하세요. .so를 php .cli.ini로
그런 다음 php -m | grep pthreads를 실행하여 나타나는지 확인하세요.

여기서만 완성되었습니다.

참고: pthread는 프로덕션 환경에서 사용하면 안 됩니다. 버그가 있는 경우 직접 플레이하고 명령줄 작업을 실행하세요. 최종 설치를 통해 CLI를 통해서만 실행할 수 있다는 것도 알게 되었습니다. 하하하하.

마지막으로 Windows에 설치된 pthreads 패키지에서 볼 수 있는 많은 데모가 있습니다.

Windows 버전 다운로드 주소: https://windows.php.net/downloads/pecl/releases/pthreads/

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 리눅스에 PHP 스레드 확장을 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.