웹사이트 검색

Ubuntu 16.04에서 ISPConfig 3.1용 추가 PHP-FPM 및 FastCGI로 PHP 5.6을 설치하는 방법


이 페이지에서

  1. 1 서문
  2. 2 PHP-FPM 및 Fastcgi로 PHP 5.6 컴파일
    1. 2.1 xDebug 확장 설치(선택사항)\n

    이 튜토리얼은 Ubuntu 16.04(Xenial Xerus)에서 PHP 5.6을 PHP-FPM 및 FastCGI 버전으로 빌드하는 방법을 보여줍니다. Ubuntu 16.04는 기본적으로 PHP 7과 함께 제공되지만 여전히 PHP 7을 지원하지 않는 웹사이트가 많이 있습니다. 이 튜토리얼에서는 Ubuntu 16.04에 PHP 5.6을 추가 PHP 버전으로 설치하여 각 웹사이트의 두 버전 간에 전환할 수 있도록 하는 방법을 보여줍니다. ISPConfig에서 개별적으로.

    1 서문

    /opt에 PHP 5.6을 설치하여 Ubuntu의 기본 PHP 7이 영향을 받지 않고 PHP 7이 우리 서버의 기본 PHP로 유지되도록 하고 PHP 5.6은 ISPConfig(웹사이트 설정)에서 옵션으로 사용할 수 있습니다. PHP-FPM은 Apache 및 Nginx 서버 모두에서 사용할 수 있지만 FastCGI는 ISPConfig의 Apache 서버에서만 사용할 수 있습니다.

    이전 PHP 버전에서는 PHP-FPM과 FastCGI가 상호 배타적이어서 FPM과 FastCGI 바이너리를 별도로 빌드해야 했습니다. PHP 5.6을 사용하면 FPM 및 FCGI 모드를 지원하는 단일 바이너리를 빌드할 수 있습니다.

    2 PHP-FPM 및 Fastcgi로 PHP 5.6 컴파일

    구성 파일을 편집하는 데 사용할 PHP 5.6, wget 및 nano 편집기를 빌드하기 위한 필수 구성 요소를 설치합니다.

    apt-get install build-essential wget nano
    apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
    ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

    (--with-imap으로 PHP를 빌드하는 경우 마지막 명령이 필요합니다. 그렇지 않으면 ./configure가 다음 오류와 함께 중지되기 때문입니다.

    checking for crypt in -lcrypt... yes
    configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
    :/usr/local/src/php5-build/php-5.6.30#

    )

    php.net에서 PHP 5.6을 다운로드하고 추출합니다.

    mkdir /opt/php-5.6.30
    mkdir /usr/local/src/php5-build
    cd /usr/local/src/php5-build
    wget http://de.php.net/get/php-5.6.30.tar.bz2/from/this/mirror -O php-5.6.30.tar.bz2
    tar jxf php-5.6.30.tar.bz2
    cd php-5.6.30/

    다음과 같이 PHP 5.6.30을 구성하고 빌드합니다(필요에 따라 ./configure 명령을 조정할 수 있습니다.

    ./configure --help

    사용 가능한 모든 옵션을 보려면 다른 ./configure 명령을 사용하는 경우 추가 라이브러리가 필요하거나 빌드 프로세스가 실패할 수 있습니다.)

    ./configure --prefix=/opt/php-5.6.30 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --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-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-gettext --with-xmlrpc --with-xsl --with-kerberos --enable-fpm

    위의 문자열은 하나의 긴 명령일 뿐이므로 줄 바꿈을 추가하지 마십시오. 마지막 스위치(--enable-fpm)는 이 PHP 버전이 PHP-FPM에서 작동하는지 확인합니다.

    make
    make install

    php.ini 및 php-fpm.conf를 올바른 위치에 복사합니다.

    cp /usr/local/src/php5-build/php-5.6.30/php.ini-production /opt/php-5.6.30/lib/php.ini
    cp /opt/php-5.6.30/etc/php-fpm.conf.default /opt/php-5.6.30/etc/php-fpm.conf

    풀 파일 디렉터리 php-fpm.d를 만듭니다.

    mkdir /opt/php-5.6.30/etc/php-fpm.d

    /opt/php-5.6.30/etc/php-fpm.conf를 열고 다음 설정을 조정합니다(pid 줄 앞의 ; 제거).

    nano /opt/php-5.6.30/etc/php-fpm.conf
    [...]
    pid = run/php-fpm.pid
    [...]
    user = www-data
    group = www-data
    [...]
    listen = 127.0.0.1:8999
    [...]
    include=/opt/php-5.6.30/etc/php-fpm.d/*.conf

    2.1 xDebug 확장 설치(선택 사항)

    xDebug 모듈은 PHP용 디버깅 확장 프로그램입니다. 설치는 선택 사항입니다.

    다음 명령으로 xDebug를 설치하십시오.

    cd /opt/php-5.6.30/etc
    pecl -C ./pear.conf update-channels
    pecl -C ./pear.conf install xdebug

    그런 다음 편집기를 사용하여 php.ini 파일을 편집합니다.

    nano /opt/php-5.6.30/lib/php.ini

    파일 끝에 다음 행을 추가하십시오.

    zend_extension=/opt/php-5.6.30/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

    3 시스템 단위 파일 생성

    Ubuntu 16.04는 systemd를 초기화 시스템으로 사용합니다. PHP-FPM 서비스를 시작/중지하고 다시 시작할 수 있도록 시스템 단위 파일을 생성하겠습니다.

    nano /lib/systemd/system/php-5.6.30-fpm.service

    다음 내용으로:

    [Unit]
    Description=The PHP 5.6 FastCGI Process Manager
    After=network.target

    [Service]
    Type=simple
    PIDFile=/opt/php-5.6.30/var/run/php-fpm.pid
    ExecStart=/opt/php-5.6.30/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6.30/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID

    [Install]
    WantedBy=multi-user.target

    서비스를 활성화하고 systemd를 다시 로드합니다.

    systemctl enable php-5.6.30-fpm.service
    systemctl daemon-reload

    마지막으로 PHP-FPM을 시작합니다.

    systemctl start php-5.6.30-fpm.service

    Zend OPcache를 활성화하려면 /opt/php-5.6.30/lib/php.ini...를 엽니다.

    nano /opt/php-5.6.30/lib/php.ini

    ... 그리고 마지막에 다음 줄을 추가합니다.

    [...]
    zend_extension=opcache.so

    PHP 버전 테스트:

    cd /opt/php-5.6.30/bin
    ./php --version

    출력은 이 스크린샷과 유사해야 합니다.

    4 ISPConfig에서 PHP 5.6 활성화

    ISPConfig 3.1에서는 시스템 > 추가 PHP 버전에서 새 PHP 버전을 구성할 수 있습니다. 이름 탭에서 PHP 버전(예: PHP 5.6.30)의 이름을 입력하면 됩니다. 이 PHP 버전은 ISPConfig의 웹사이트 설정에서 이 이름 아래 나열됩니다.

    FastCGI 설정 탭으로 이동하고 다음과 같이 필드를 채웁니다.

    Path to the PHP FastCGI binary: /opt/php-5.6.30/bin/php-cgi
    Path to the php.ini directory: /opt/php-5.6.30/lib

    그런 다음 PHP-FPM 설정 탭으로 이동하여 다음과 같이 입력란을 작성합니다.

    Path to the PHP-FPM init script: php-5.6.30-fpm
    Path to the php.ini directory: /opt/php-5.6.30/lib
    Path to the PHP-FPM pool directory: /opt/php-5.6.30/etc/php-fpm.d

    5 링크

    • PHP: http://www.php.net/
    • ISP구성: http://www.ispconfig.org/
    • 우분투: http://www.ubuntu.com/