CentOS 7 / Debian 8에서 Apache 및 MariaDB와 함께 PHP 7을 설치하는 방법
지난주 (더 정확하게는 2015 년 8 월 21 일) PHP 개발 팀은 최신 PHP 7 릴리스를 발표하고 전 세계 사용자와 개발자에게 테스트를 권장했습니다.
그러나이 버전은 RC (Release Candidate) 버전이므로 버그가 있거나 기존 설정과 호환되지 않을 수 있으므로 사용자는 버그 추적 시스템 및 해당 단계에있는 동안 프로덕션에서 PHP 7을 사용하지 않습니다.

좋은 점은이 버전에 몇 가지 수정 사항이 포함되어 있다는 것입니다 (이 페이지는 프로젝트의 GitHub 저장소에서 새로운 기능 및 개선 사항에 대한 자세한 목록을 참조하십시오).
이 기사는 CentOS 7 및 Debian 8 Jessie에서 Apache 및 MariaDB와 함께 소스 tarball에서 PHP 7 RC1을 설치하고 컴파일하는 과정을 안내합니다. 동일한 지침은 RHEL, Fedora, Scientific Linux 및 Ubuntu/Mint와 같은 Debian 기반과 같은 CentOS 기반 배포에서도 작동합니다.
CentOS 7 및 Debian 8에 PHP 7 설치
소개에서 언급했듯이이 버전은 안정적인 릴리스가 아닌 RC이므로 리포지토리에서 찾을 수 있다고 합리적으로 기대할 수 없습니다. 따라서 소스 코드를 다운로드하고 프로그램을 처음부터 컴파일해야합니다.
그러나 그렇게하기 전에 PHP 7을 더 잘 활용하기 위해 아마도 가장 좋은 방법은 저장소에서 찾을 수있는 Apache 및 MariaDB와 함께 설치하는 것임을 기억해야합니다.
# yum update && yum install httpd mariadb mariadb-server
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
두 경우 모두 PHP 소스 코드가 포함 된 tarball을 다음과 같이 다운로드하고 추출 할 수 있습니다.
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
완료되면 /opt/php-7.0.0RC1로 이동하고 –force 스위치를 사용하여 buildconf 스크립트를 실행하여 RC 버전을 강제로 빌드합니다.
# ls

# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force

이제 잘 알려진 구성 명령을 실행할 차례입니다. 아래 옵션은 표준 PHP 7 설치를 보장하지만, 필요에 따라 설치를 더 잘 사용자 정의하기 위해 PHP 설명서의 전체 옵션 목록을 참조 할 수 있습니다.
# ./configure \ --prefix=$HOME/php7/usr \ --with-config-file-path=$HOME/php7/usr/etc \ --enable-mbstring \ --enable-zip \ --enable-bcmath \ --enable-pcntl \ --enable-ftp \ --enable-exif \ --enable-calendar \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-curl \ --with-mcrypt \ --with-iconv \ --with-gmp \ --with-pspell \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-xpm-dir=/usr \ --with-freetype-dir=/usr \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-openssl \ --with-pdo-mysql=/usr \ --with-gettext=/usr \ --with-zlib=/usr \ --with-bz2=/usr \ --with-recode=/usr \ --with-mysqli=/usr/bin/mysql_config \ --with-apxs2
다음 오류가 발생하는 경우 :
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details

다음 명령으로 gcc 및 종속성을 설치하고 위의 구성 명령을 다시 실행하십시오.
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
PHP 7을 컴파일하는 데 시간이 걸릴 수 있습니다. 누락 된 다른 라이브러리 또는 리소스가있는 경우이 프로세스는 실패하지만 언제든지 설치하고 configure를 다시 실행할 수 있습니다.
예를 들어 다음과 같은 오류 메시지가 나타난 후 libxml2-devel을 설치해야했습니다.
configure: error: xml2-config not found. Please check your libxml2 installation.
안타깝게도 설치된 소프트웨어가 시스템마다 다를 수 있으므로 모든 사례 시나리오를 다룰 수는 없습니다. 설치하는 동안 몇 가지를 설명하는 이 페이지를 참조하십시오 각 솔루션과 함께 소스에서 PHP를 설치하는 동안 발생할 수있는 오류.
다음은 구성 프로세스를 완료하기 전에 CentOS 7 상자에 설치해야하는 전체 패키지 목록입니다.
gcc libxml2-devel pkgconfig openssl-devel bzip2-devel curl-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
표시된대로 하나의 yum 명령으로 위의 모든 필수 패키지를 설치할 수 있습니다.
# yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
다음 메시지는 구성이 성공적으로 완료되었음을 나타냅니다.

그런 다음 실행하십시오.
# make # make install
설치가 완료되면 명령 줄을 사용하여 버전을 확인할 수 있습니다.

데비안에서 구성 프로세스를 성공적으로 완료하려면 다음 패키지를 설치해야했습니다.
make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
Debian 8에서 apt-get 명령을 사용하여 위의 모든 필수 패키지를 설치할 수 있습니다.
# apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
그런 다음 구성 옵션에 –with-libdir =/lib/x86_64-linux-gnu를 추가하고 gmp.h 헤더 파일에 대한 다음 심볼릭 링크를 만듭니다.
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
그런 다음 이전의 경우와 같이 make 및 make install을 실행했습니다. 10-15 분 내에 컴파일이 완료되어야하며 이전과 같이 설치된 PHP 버전을 확인할 수 있습니다.
# make # make install

php.ini 설정 및 PHP 7 설치 테스트
소스에서 PHP를 설치하면 두 개의 샘플 php.ini가 제공됩니다. "이 경우에는 /opt/php-7.0.0RC1에 있습니다.
# ls -l /opt/php-7.0.0RC1 | grep php.ini

이제 이들 중 하나를/usr/local/lib에 복사해야합니다.이 위치는 설치 정보에 따라 해당 파일의 기본 위치로 지정됩니다.
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
그리고이 구성 지시문을 Apache의 기본 구성 파일에 추가하는 것을 잊지 마십시오.
/etc/httpd/conf/httpd.conf [On CentOS 7 box] /etc/apache2/apache2.conf in [On Debian 8 box]
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
Debian 8에서는 LoadModule 줄을 생략 할 수 있으며 표시된 Apache 모듈에 대한 다음 심볼릭 링크를 제거하고 만들어야합니다.
# cd /etc/apache2 # rm mods-enabled/mpm_event.conf # rm mods-enabled/mpm_event.load # ln -s mods-available/mpm_prefork.conf mpm_prefork.conf # ln -s mods-available/mpm_prefork.load mpm_prefork.load
그런 다음 웹 서버를 다시 시작하십시오.
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
CentOS 7에서 Apache를 시작하면 libphp7.so 모듈을 찾을 수 없다는 오류 메시지가 표시되면 /opt/php-7.0.0RC1/.libs/libphp7.so에서 표시된 경로로 복사하면됩니다.
PHP/Apache 설치를 테스트하는 고전적인 방법은 phpinfo ()
파일을 사용하는 것입니다. "웹 서버의 문서 루트 (두 배포판 모두에서/var/www/html)에 다음 내용으로 test.php라는 파일을 만듭니다.
<?php phpinfo(); ?>
그리고 네트워크 내의 클라이언트에서 브라우저를 시작하여 테스트합니다.
http://localhost/test.php OR http://IP-address/test.php


요약
이 기사에서는 전례없는 값으로 성능을 향상시키는 것을 목표로하는이 인기있는 서버 측 스크립팅 언어의 최신 RC 인 소스 코드에서 PHP 7을 설치하는 방법을 설명했습니다. 2015 년 11 월에 안정 버전에 도달 할 때까지 프로덕션 환경에서이 릴리스를 사용하지 않는 것이 좋습니다.
이 기사에 대한 질문/의견/제안이 있으면 아래 양식을 사용하여 언제든지 알려주십시오.