Magic Guide
PHP 8.0 Alpha 1이 2020년 6월 25일에 출시되었습니다. 오늘은 PHP 8.0의 새로운 기능인 JIT를 빠르게 시험해 볼 수 있는 가장 간단한 PHP 8 소스 코드 컴파일 및 설치 방법을 공유하겠습니다. .
운영 체제: CentOS Linux 릴리스 7.4.1708(코어)
GCC: 4.8.5 20150623(Red Hat 4.8.5-28)
PHP 버전: php-8.0.0alpha1
1. 다운로드 페이지
https://downloads.php.net/~pollita/
2. PHP 8.0
wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz
3을 다운로드합니다. Unzip
tar -zxvf php-8.0.0alpha1.tar.gz
4. 이 머신에는 여러 PHP 버전이 공존하므로 새로운 디렉터리를 만들어야 합니다. 의미 있는 디렉터리, 다시 생각할 필요 없이 PHP 버전을 알려주는 디렉터리 이름입니다.
mkdir -p /usr/local/php80
5. 구성 옵션
이것은 구성 옵션의 간소화된 버전으로, PHP 구성 옵션에 대한 보다 풍부한 설명입니다: https://www.php.net/manual/en/configure.about.php
cd php-8.0.0alpha1 ./configure --prefix=/usr/local/php80/ --enable-debug --enable-fpm --with-config-file-path=/usr/local/php80/etc/ --with-config-file-scandir=/usr/local/php80/etc/php.d/구성 프로세스 중에 프롬프트 구성: 오류가 발생하는 경우 아래 오류 세부 정보에 주의하세요. 다음은 구성 프로세스 중에 발생하는 오류 조건에 대한 주요 정보 요약입니다. 나열되지 않은 다른 오류 조건에 대한 해결 방법은 동일합니다. 오류 #1:
configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package 'libxml-2.0' found해결책:
yum install libxml2-devel.x86_64오류 #2:
configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package 'sqlite3' found해결책:
yum install sqlite-devel.x86_64다음 프롬프트 메시지가 표시되면 구성 단계가 성공한 것입니다.
6. Compilation & Installation
makemake 단계에서 소요되는 시간은 머신 구성과 관련이 있습니다. 다음 정보를 보면 make 단계가 완료되었음을 의미합니다.
Build complete. Don't forget to run 'make test'.
make 테스트 얼리 어답터이므로 이 단계는 생략합니다.
make install exit 0; -v -d /home/fanjiapeng/php-8.0.0alpha1/Zend/zend_ini_parser.y -o /home/fanjiapeng/php-8.0.0alpha1/Zend/zend_ini_parser.c Installing shared extensions: /usr/local/php80/lib/php/extensions/debugnon-zts-20190128/ Installing PHP CLI binary: /usr/local/php80/bin/ Installing PHP CLI man page: /usr/local/php80/php/man/man1/ Installing PHP FPM binary: /usr/local/php80/sbin/ Installing PHP FPM defconfig: /usr/local/php80/etc/ Installing PHP FPM man page: /usr/local/php80/php/man/man8/ Installing PHP FPM status page: /usr/local/php80/php/php/fpm/ Installing phpdbg binary: /usr/local/php80/bin/ Installing phpdbg man page: /usr/local/php80/php/man/man1/ Installing PHP CGI binary: /usr/local/php80/bin/ Installing PHP CGI man page: /usr/local/php80/php/man/man1/ Installing build environment: /usr/local/php80/lib/php/build/ Installing header files: /usr/local/php80/include/php/ Installing helper programs: /usr/local/php80/bin/ program: phpize program: php-config Installing man pages: /usr/local/php80/php/man/man1/ page: phpize.1 page: php-config.1 /home/fanjiapeng/php-8.0.0alpha1/build/shtool install -c ext/phar/phar.phar /usr/local/php80/bin/phar.phar ln -s -f phar.phar /usr/local/php80/bin/phar Installing PDO headers: /usr/local/php80/include/php/ext/pdo/
7. PHP
/usr/local/php80/bin/php -v PHP 8.0.0alpha1 (cli) (built: Jul 2 2020 15:47:26) ( NTS DEBUG ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies8. 환경 구성
ln -s /usr/local/php80/bin/php /usr/bin/php80 cp php.ini-development /usr/local/php80/etc/php.ini cp /usr/local/php80/etc/php-fpm.conf.default /usr/local/php80/etc/phpfpm.conf cp /usr/local/php80/etc/php-fpm.d/www.conf.default /usr/local/php80/etc/php-fpm.d/www.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php80-fp chmod +x /etc/init.d/php80-fpm9. 구성 경로 확인
사용자 정의된 구성 항목이 유효한지 확인: --with-config-file-path, - -with-config-file-scan-dir
php80 --ini Configuration File (php.ini) Path: /usr/local/php80/etc/ Loaded Configuration File: /usr/local/php80/etc/php.ini Scan for additional .ini files in: /usr/local/php80/etc/php.d/ Additional .ini files parsed: (none)
10. FPM 시작
/etc/init.d/php80-fpm start Starting php-fpm done11. FPM 확인
ps aux | grep php-fpm root 26876 0.0 0.0 52084 2828 ? Ss Jul02 0:14 php-fpm: master process (/usr/local/php80/etc/php-fpm.conf) nobody 26877 0.0 0.0 52084 3648 ? S Jul02 0:00 php-fpm: pool www nobody 26878 0.0 0.0 52084 3624 ? S Jul02 0:00 php-fpm: pool www /etc/init.d/php80-fpm -h Usage: /etc/init.d/php80-fpm {start|stop|forcequit|restart|reload|status|configtest} /etc/init.d/php80-fpm status php-fpm (pid 26876) is running... /etc/init.d/php80-fpm configtest [06-Jul-2020 11:06:42] NOTICE: configuration file /usr/local/php80/etc/php fpm.conf test is successful여기에서는 Nginx 구성 세부 정보가 생략되었습니다. 주로 설치된 PHP-FPM 모드를 빠르게 테스트하기 위한 것입니다. 사용 가능.
// index.php <?php var_dump(PHP_VERSION); var_dump(PHP_VERSION_ID);rrree
12 새로운 기능 JIT를 사용해 보세요
머신 구성: 8코어 16G, SATA 디스크, 운영 체제: CentOS Linux 릴리스 7.4.1708(코어)
Zend OPCache(/usr/local/php80/ etc/php .ini) 구성은 다음과 같습니다. 대부분의 [opcache] 구성 항목에는 기본값이 있습니다. 이러한 구성 항목의 중요성을 강조하기 위해 여기에 나열되어 있습니다.curl localhost string(11) "8.0.0alpha1" int(80000)이것은 유휴 리소스가 있는 가상 머신입니다. .JIT, JIT를 끄고 테스트 결과를 관찰해 보면 결과 값이 거의 변하지 않습니다. 테스트 결과는 특별히 가장 아름다운 데이터를 선택하지 않았습니다. 실제로는 필요하지 않습니다. 아래 그림과 같습니다:
13. 요약
이것은 범용 PHP 소스 코드 컴파일 및 설치 방법입니다. 실제 비즈니스 응용 프로그램의 컴파일 및 설치 방법은 유사합니다. 옵션이 훨씬 풍부해지고 클래스 라이브러리도 더욱 포괄적으로 설치되어야 합니다. 이 기사에서는 PHP 8의 새로운 기능인 JIT를 테스트합니다. Zend/bench.php의 테스트 결과에 따르면 여전히 눈길을 끕니다. PHP 8 JIT에 대한 소개는 "PHP8의 새로운 기능인 JIT 사용 소개
"를 추천합니다. PHP8.0"
위 내용은 PHP 8.0 소스 코드 컴파일 및 설치 및 JIT 얼리 어답터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!