pcntl 확장은 PHP의 다중 스레드 작업을 지원할 수 있습니다(Linux에만 해당)
원래 PHP를 다시 컴파일하고 나중에 구성 프롬프트에 --enable-pcntl을 추가해야 했습니다.
PHP는 yum으로 설치하기 때문에 위의 방법은 사용할 수 없습니다
다음은 php phpize에 동적으로 확장을 추가하는 방법을 소개합니다
1. phpize 명령이 위치한 디렉터리( ps: My 디렉터리/usr/bin/phpize)
찾지 못하면 설치를 진행하세요
yum install php53_devel (ps:请注意自己的版本)
설치가 다시 완료되었습니다. phpize 명령이 생성됩니다
2. php.net으로 이동하여 해당 버전의 PHP 소스 파일을 다운로드합니다
php-5.3.17을 예로 들어 보겠습니다. 압축을 풀고 해당 모듈 진입 다음
cd ext/pcntl #先执行phpize /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config (ps:请正确的指定php-config的目录) #编译、安装 make && make install
이번에 오류가 발생했습니다
./configure는 정상적으로 컴파일되었지만 make가 오류
오류: 'PHP_FE_END'가 여기에 선언되지 않았습니다(함수에 없음)
해결 방법:
소스 코드에 오류가 있습니다. php-5.3.17 디렉토리를 입력하세요
sed -i 's |PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.c
sed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c
다시 만들기 && make install
3. 컴파일 완료되면 pcntl.so 파일이 생성됩니다. PHP 모델 디렉터리
에서 /etc/php.ini를 편집하고
extension=pcntl.so
를 추가합니다. 4. Apache를 다시 시작합니다
. service httpd restart
5. 설치 성공 여부 테스트
<?php echo pcntl_fork(); ?>
출력: 23165
Linux 시스템에서 PHP에 pcntl 확장자를 추가하는 것과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!