웹사이트 검색

CentOS 7/Debian 8에 Apache 및 MariaDB와 함께 PHP 7을 설치하는 방법


지난 주(더 정확하게는 2015년 8월 21일), PHP 개발 팀은 PHP 7의 최신 릴리스를 발표하고 전 세계 사용자와 개발자에게 테스트를 권장했습니다. 그것.

그러나 이 버전은 RC(출시 후보) 버전이므로 버그가 있거나 기존 설정과 호환되지 않을 수 있으므로 사용자에게 문의할 사항이 있다는 점에 유의해야 합니다. 버그 추적 시스템을 사용하여 이를 보고하고 해당 단계에 있는 동안 프로덕션에서 PHP 7을 사용하지 마십시오.

밝은 면은 이 버전에 몇 가지 수정 사항이 포함되어 있다는 것입니다(새로운 기능과 향상된 기능에 대한 자세한 목록은 프로젝트의 GitHub 저장소에 있는 이 페이지를 참조하세요). 가장 눈에 띄는 기능은 다음과 같습니다. 이전 버전에 비해 성능이 눈에 띄게 향상되었습니다.

이 문서에서는 CentOS 7에서 ApacheMariaDB와 함께 소스 tarball에서 PHP 7 RC1을 설치하고 컴파일하는 과정을 안내합니다. Debian 8 Jessie. 동일한 지침은 RHEL, Fedora, Scientific LinuxDebian<과 같은 CentOS 기반 배포판에서도 작동합니다. Ubuntu/Mint와 같은 기반.

CentOS 7 및 Debian 8에 PHP 7 설치

소개 부분에서 언급했듯이 이 버전은 안정적인 릴리스가 아닌 RC이므로 저장소에서 찾을 수 있을 것이라고 합리적으로 기대할 수 없습니다. 그러한 이유로 우리는 소스 코드를 다운로드하고 처음부터 프로그램을 컴파일해야 합니다.

하지만 그 전에 PHP 7을 더 잘 활용하려면 PHP 7을 시험해 보는 가장 좋은 방법은 Apache와 함께 설치하는 것임을 기억해야 합니다. 및 MariaDB - 저장소에서 찾을 수 있습니다.

CentOS 7에서


yum update && yum install httpd mariadb mariadb-server

데비안 8에서


aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

두 경우 모두 PHP 소스 코드가 포함된 타르볼을 다운로드하여 다음과 같이 추출할 수 있습니다.


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

이제 잘 알려진 configure 명령을 실행할 차례입니다. 아래 옵션을 사용하면 표준 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 및 종속 항목을 설치하고 위의 configure 명령을 다시 실행하세요.


yum install gcc       [On CentOS 7 box]
aptitude install gcc  [On Debian 8 box]

PHP 7을 컴파일하는 중인데 시간이 좀 걸릴 수 있습니다. 다른 누락된 라이브러리나 리소스가 있는 경우 이 프로세스는 실패하지만 언제든지 해당 라이브러리나 리소스를 설치하고 구성을 다시 실행할 수 있습니다.

예를 들어, 다음 오류 메시지가 표시된 후 libxml2-devel을 설치해야 했습니다.


configure: error: xml2-config not found. Please check your libxml2 installation.

안타깝게도 설치된 소프트웨어가 시스템마다 다를 수 있으므로 모든 사례 시나리오를 다룰 수는 없습니다. 설치하는 동안 소스에서 PHP를 설치하는 동안 발생할 수 있는 몇 가지 오류와 해당 솔루션을 설명하는 이 페이지를 참조할 수 있습니다.

CentOS 7에서

구성 프로세스를 완료하기 전에 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

설치가 완료되면 명령줄을 사용하여 버전을 확인할 수 있습니다.

데비안 8에서

Debian에서 구성 프로세스를 성공적으로 완료하려면 다음 패키지를 설치해야 했습니다.


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

그런 다음 이전 사례와 마찬가지로 makemake 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월에 마구간에 도달할 때까지 STRONGLY 이 버전을 프로덕션 환경에서 사용하지 마세요.

이 기사에 대한 질문/의견/제안 사항이 있는 경우 아래 양식을 사용하여 언제든지 알려주십시오.