2016-07-12 3 views
1

나는 remi 저장소에있는 Fedora 23에서 사용할 수있는 PHP7 버전을 사용하고 있으며 정상적으로 작동합니다. 필자는 최근 Pthread가 작동하도록 PHP7을 소스에서 컴파일 할 필요가 있음을 발견했습니다. PHP를 옵션 --enable-maintainer-zts와 함께 컴파일해야합니다. 필자는 PHP를 컴파일하는 데 어떤 옵션을 사용했는지에 상관없이 PHP가 OS에 의해 실행될 때 사용되지 않는다는 것을 발견했습니다. 터미널에서 php -i를 사용하면 스레드 안전이 꺼져 있고 설정 한 다른 옵션이 나열되지 않습니다. remi 버전의 PHP를 제거했지만 아무런 차이가 없었습니다. 그러나 이는 필자의 컴퓨터에서 remi 버전의 PHP를 제거한 후에 PHP가 PHP-FPM을 통해 계속 작동한다는 이상한 상황을 초래했습니다. 이것은 필자가 소스에서 빌드 한 PHP7 버전을 실행 중이지만 내 지시문은 무시되었다는 것을 의미합니다. 그게 사실이 아니라면, PHP가 DNF 제거 PHP를 실행했을 때 PHP가 실제로 내 컴퓨터에서 제거되지 않았다는 것을 제외하고는 이것이 가능한 방법이 전혀 없습니다. (그리고 소스에서 설치 한 버전은 무시되거나 잘못 설치되었습니다.).컴파일 지침이 무시되는 이유는 무엇입니까?

나는 마지막 존재로, 몇 가지 다른 빌드 명령을 사용한

: 나는 PHP에 대한 다양한 파일에 타임 스탬프를 검사 할 때, 대부분 지금까지 내가 만든 날짜/시간과 일치하지 않은

./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=nginx --with-fpm-group=nginx --with-libdir=/usr/lib64/php-zts --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-maintainer-zts --enable-debug 

소스에서 PHP.

내가 여기에서 놓친 것에 대해 직관력이있는 사람이 있습니까?

답변

0

구축 할 필요가 레미 (또는 페도라)에서 패키지 저장소

# yum --enablerepo=remi-php70 install php-pecl-pthreads 
... 
# zts-php -m | grep thread 
pthreads 

당신은 확인할 수 있습니다 (pthreads의 확장은 CLI입니다) ZTS, 당신은 ZTS-PHP는 명령을 사용해야 구축의 pthreads 확장했다 remth 저장소의 PECL extension RPM status (pthread를 사용할 수 있음)

+0

ZTS 구성 옵션이 활성화 된 PHP7 버전을 어떻게 설치합니까? 나는 이미 php-pecl-pthreads 패키지를 설치했지만 PHP에서 쓰레드 옵션을 활성화하지 않을 것인가? 그 확장을 설치하고 PHP 자체에서 스레드 안전성을 활성화해야한다고 생각했습니다. 지금까지 PHP가 다시 컴파일해야한다고 밝혀졌습니다. 여기에서 : http://stackoverflow.com/questions/17272439/how-to-enable-zts-on-php – tunist

+0

위에서 말했듯이, remi 저장소의 패키지에는 ZTS 빌드가 있습니다. 그래서 php-cli 패키지는 "php"(NTS)와 "zts-php"(ZTS = Thread Safe) 명령어를 제공합니다. –

+0

오, 이제까지 'thread safety'가 phpinfo) 출력 페이지, 스레드 안전을 사용할 수 없다고 생각. 방금 remi repo를 통해 사용할 수있는 PHP7.0.8 버전을 다시 설치했는데 phpinfo()에서 스레드 안전이 비활성화 된 것을 볼 수 있습니다. zts-php -m 명령을 실행하면 명령 행을 통해 'pthreads'결과가 나타납니다. – tunist

관련 문제