AccuWebHosting, PHP 7 호스팅 도입
게시 됨: 2015-12-07PHP 개발 팀은 WebMaster의 오랜 기다림을 끝내고 PHP 7의 즉각적인 가용성을 발표했습니다. 세계에서 가장 인기 있는 스크립팅 언어(웹의 81%를 지원)의 다음 버전인 PHP 7이 2015년 12월 3일 마침내 출시되었습니다.
완료하는 데 8년과 롤아웃이 몇 주 지연된 후 마침내 PHP 7을 다운로드할 수 있습니다. Windows 사용자는 여기에서 PHP 7 Windows 바이너리를 다운로드할 수 있습니다. 최신 버전의 PHP에는 많은 변경 사항이 도입되었으므로 PHP 7은 확실히 기존 PHP 4 레거시 코드와 역호환되지 않지만 PHP 5.x 코드와 원활하게 작동해야 합니다. PHP 7에 도입된 변경 사항을 확인하려면 Changelog를 참조하십시오.
PHP 7의 주요 이점
PHP 7은 구문 수정을 최소화하고 성능 향상에 더 중점을 둡니다. 지난 몇 개월 동안 PHP 7에서 여러 벤치마크가 수행되었으며 PHP 7은 이전 버전(PHP 5.x)보다 거의 200% 더 빠릅니다.
PHP 7은 최신 엔진인 PHPNG(PHP Next Generation) 에서 실행되며 Facebook의 HHVM과 같은 인터프리터와 경쟁합니다. HHVM은 수년 동안 PHP를 능가하여 PHP 7 개발자 팀이 역량을 향상하도록 격려했습니다. PHPNG 덕분에 PHP 7 코어 엔진은 이제 CPU와 메모리에 더욱 최적화되었습니다.
PHP 7에서 수행된 벤치마크를 기반으로 PHPNG 엔진은 최신 5.6 릴리스와 비교할 때 메모리 및 CPU 사용률을 절반으로 줄였습니다.
여기에서는 PHP 7로 업그레이드할 때 사용할 수 있는 가장 흥미로운 새 기능에 대해 설명합니다.
신규 오퍼레이터
PHP 7에는 우주선 (또는 결합 비교 연산자)과 null 병합 연산자라는 두 가지 새로운 연산자가 있습니다.
우주선 연산자( <=> )는 연결 비교를 더 간결하게 만드는 데 사용됩니다. 예를 들어:
$var1 <=> $var2
이 표현식은 다음과 같이 평가됩니다.
$var1이 $var2보다 작으면 -1, $var1이 $var2인 경우 0, 그리고 $var1이 $var2보다 크면 1,
이것은 기본적으로 다음 표현식의 바로 가기입니다.
($var1 < $var2) ? -1 : (($var1 > $var2) ? 1 : 0)
null 병합 연산자( ?? )는 일반적인 사용 사례의 바로 가기로 사용할 수 있습니다. 예를 들어, PHP 5.x에서는 다음과 같이 할 수 있습니다.
$var1 = isset($var2) ? $var2 : "기본값";
다음과 같이 PHP 7에서 null 병합 연산자를 사용하여 동일한 표현식을 작성할 수 있습니다.
$var1 = $var2 ?? "기본";
스칼라 유형 힌트
Scalar Type Hint는 최신 PHP 버전에서 가장 눈에 띄는 기능 중 하나입니다. 정수, 부동 소수점, 문자열 및 부울을 함수 및 메서드에 대한 유형 힌트로 사용할 수 있습니다. 즉, 정수 매개변수에 부동 소수점 값을 전달하면 Scalar Type Hint는 오류나 경고를 생성하지 않고 정수로 강제 변환합니다. 그러나 엄격 모드가 활성화되면 잘못된 유형이 인수로 전달되면 오류가 발생합니다.
<?php 함수 더블(int $값) { 반환 2 * $ 값; } $var = 더블("8"); var_dump($var);
엄격 모드가 비활성화된 경우 위의 코드는 오류를 생성하지 않습니다. 또한 인수로 전달된 문자열 "8"은 double 함수 내에서 정수로 강제 변환됩니다. 위 코드의 첫 번째 줄에 선언(strict_types = 1) 지시문을 포함하여 엄격 모드를 활성화하면 정수만 이중 함수에 전달할 수 있습니다.
< ?php 선언(엄격한 유형 = 1); 함수 더블(int $값) { 반환 2 * $ 값; } $var = 더블("8"); var_dump($var);
엄격 모드가 활성화되면 위의 코드는 치명적 오류를 생성합니다.
반환 유형 힌트
반환 유형 힌트를 사용하면 메서드 및 함수의 반환 유형을 정의할 수 있습니다. 강제 및 엄격 모드 측면에서 스칼라 유형 힌트와 동일한 방식으로 작동합니다.
< ?php 함수 a() : 부울 { 반환 1; } var_dump(a());
위의 코드가 실행되면 반환된 값은 오류 및 경고 없이 자동으로 bool로 변환됩니다. 엄격 모드가 활성화되면 치명적인 오류가 발생합니다.
HHVM 대 PHP 7
HHVM 은 PHP 애플리케이션을 실행하기 위해 Facebook 개발자가 만든 가상 머신입니다. 2008년 페이스북 팀은 PHP 스크립트를 C++로 변환하여 웹 서버에서 컴파일하고 실행할 수 있는 도구를 개발했습니다. 주요 목표는 서버 리소스 활용도를 낮추고 서버의 실제 용량보다 5~6배 많은 트래픽을 수용하는 것이었습니다. 이러한 문제를 극복하기 위해 Facebook은 HHVM(HipHop Virtual Machine)을 개발했습니다. 이 변경은 웹 트래픽의 500-600% 증가를 수용할 수 있도록 서버 용량을 늘렸습니다.
이 시점에서 "HHVM이 그렇게 빠른 이유는 무엇입니까?"라고 물을 수 있습니다.
PHP 코드를 C++로 컴파일하는 대신 HHVM은 JIT(Just-In-Time) 컴파일을 활용하여 PHP 코드를 중간 바이트코드로 변환합니다. 이 바이트코드는 x64 기계어로 더 변환됩니다. 이제 JIT 컴파일러가 등장하여 런타임에 동적으로 번역을 실행하여 가능한 모든 최적화를 허용합니다. 결과적으로 PHP 응용 프로그램의 성능이 크게 향상됩니다.

PHP 7 또는 PHPNG 는 HipHop Virtual Machine에 대한 진정한 경쟁자이자 커뮤니티의 응답입니다. HHVM은 이전 버전의 PHP를 분명히 능가했지만 최근 벤치마크 테스트에 따르면 특정 상황에서 PHP 7이 HHVM보다 약간 더 빠릅니다. WordPress, Magento 및 Drupal과 같은 일부 인기 앱에서 ZEND가 수행한 벤치마크 테스트 결과를 살펴보겠습니다.
Magento HHVM 3.7 대 PHP 7
아래 차트에서 추론할 수 있듯이 동일한 하드웨어에서 최대 3배 많은 Magento 카탈로그 서버 요청을 수행할 수 있으며 PHP 7은 메모리를 30% 더 적게 사용합니다.
Magento HHVM 대 PHP 7 비교
출처 : www.zend.com
워드프레스 HHVM 3.7 대 PHP 7
표시된 결과에 따르면 HHVM 3.7과 PHP 7 사이에 큰 차이가 없습니다. 가장 흥미로운 사실은 PHP 5.6에 비해 PHP 7이 서버 실행의 25%만 사용한다는 것입니다. 따라서 동일한 용량의 서버는 더 많은 수의 사용자에게 서비스를 제공할 수 있습니다.
WordPress HHVM 3.7 대 PHP 7 비교
출처: www.zend.com
Drupal HHVM 3.7 대 PHP 7
차트는 PHP 7이 HVVM보다 훨씬 빠르며 흥미롭게도 Drupal 8은 PHP 5.6에 비해 PHP 7에서 72% 더 빠르게 실행된다는 것을 보여줍니다.
Drupal HHVM 대 PHP 7 비교
출처: www.zend.com
기타 벤치마크
PHP Australia에서 Rasmus Lerdorf가 수행한 벤치마크를 참조할 수도 있습니다. 화살표 키를 사용하여 슬라이드를 탐색합니다.
무엇을 가지고 가야 하나요?
PHP 7 또는 PHPNG 이전에는 HHVM이 모든 PHP 버전에서 PHP-Zend 패키지보다 확실히 더 빠릅니다. PHP 7은 대부분의 벤치마크에서 대부분의 스크립트에 대해 HHVM에 대해 더 나은 성능을 보여주었습니다.
Etsy 및 Wikimedia Foundation과 같은 대규모 웹 사이트는 HHVM을 사용하지만 PHP-Zend 패키지에서 PHP-HHVM 패키지로 완전히 전환하는 데 6개월 이상이 걸렸습니다. 즉, PHP-Zend 패키지에서 PHP-HHVM 패키지로의 전환은 하룻밤 사이에 이루어지는 작업이 아닙니다. 소규모 웹 사이트 소유자의 경우 더 많은 전문 지식이 필요한 HHVM으로의 복잡한 전환에 비해 PHP 7로의 전환이 훨씬 쉬울 것입니다.
AccuWebHosting의 PHP 7 호스팅
AccuWebHosting이 PHP 7 호스팅을 제공하는 최초의 웹 호스트 중 하나라는 것은 놀라운 일이 아닙니다. 우리의 열정적인 테스트 팀은 최신 버전의 PHP를 오랫동안 기다렸습니다. PHP 7 릴리스 다음 날, 팀은 웹 호스팅 인프라에서 PHP 7을 테스트할 기회를 얻었습니다.
Linux 공유 SSD 호스팅 및 WordPress 호스팅 계획 모두에서 PHP 7 지원을 제공하게 된 것을 자랑스럽게 생각합니다.
AccuWebHosting은 Linux Shared/Reseller 플랜에 PHP 구성 플러그인을 제공하여 고객이 디렉토리 및 도메인에 대해 PHP 7 버전을 설정할 수 있도록 합니다. Linux 공유 SSD 호스팅 및 WordPress 호스팅 고객은 다음 문서를 사용하여 이전 PHP 버전에서 7로 변경할 수 있습니다.
cPanel에서 PHP 버전 변경
전용 서버에서 PHP 7 지원
- Windows 전용 서버를 사용하여 AccuWebHosting 팀은 요청 시 PHP 7을 설치하고 구성합니다.
- 현재 cPanel/WHM은 PHP 7을 지원하지 않으므로 CloudLinux 운영 체제를 사용하지 않는 한 cPanel 전용 서버에서 PHP 7을 사용할 수 없습니다. cPanel/WHM이 PHP 7 지원을 시작하면 WHM EasyApache를 통해 추가할 수 있습니다.
- Linux 전용 서버(cPanel 제외) 고객은 요구 사항에 따라 PHP 7을 설치 및 구성할 수 있습니다.
Windows VPS에서 PHP 7 지원
모든 Windows VPS 계획은 PHP 7을 지원합니다. Windows VPS 고객은 PHP 7을 설치 및 구성하기 위해 티켓을 제출해야 합니다.
Linux VPS에서 PHP 7 지원
Linux VPS(cPanel 제외) 고객은 요구 사항에 따라 PHP 7을 설치하고 구성할 수 있습니다. cPanel은 PHP 7을 지원하지 않으므로 cPanel VPS 고객은 cPanel이 PHP 7 지원을 출시할 때까지 기다려야 합니다. cPanel이 PHP 7 지원을 시작하면 EasyApache를 통해 추가할 수 있습니다.