php71

Description:

PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled web page with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The mod_php module enables the Apache web server to understand and process the embedded PHP language in web pages.

Features:

    1.
    PHP 7.1 compatible 패키지
    2.
    Apache module(libphp7.so)은 지원하지 않고, cli와 FPM만 지원합니다. Fastcgi protocol을 이용하여 php71-fpm과 연결하여야 합니다.
    3.
    php71-cli 설정 파일
      /etc/php71.d/php-cli.ini
      /etc/php71.d/cli/SHARED.ini
      php-cli.ini는 수정을 하지 말고, 변경할 옵션을 /etc/php71.d/cli/SHARED.ini 에 하는 것을 권장함
    4.
    php71-fpm 설정 파일
      FPM 구동 설정 파일
        /etc/php71.d/fpm.conf
        /etc/php71.d/fpm.d
      FPM 설정 파일
        /etc/php71.d/php-fpm-fcgi.ini
        /etc/php71.d/fpm/SHARED.ini
        php-fpm-fcgi.ini는 수정을 하지 말고, 변경할 옵션을 /etc/php71.d/fpm/SHARED.ini 에 하는 것을 권장함
    5.
    성능
      PHP VM type을 GOTO mode로 빌드 (성능 20% 향상)
      realpath_cache_force ini 옵션 제공
        openbase_dir 사용시에, realpath_cache 기능을 강제로 사용하게 하여 30% 정도의 성능을 향상

Reference:

    1.
    exec_dir (PHP_INI_SYSTEM) 기능
      PHP의 shell injection을 engine level에서 방어하기 위한 기능
        이 기능은 engine level에서 처리를 하기 때문에, php code 쪽에서는 아무런 영향이 없음.
      2005년 부터 KLDP와 N사 T사의 core system에 적용되어 검증
      PHP 5.4 이전의 safe_mode_exec_dir을 safe_mode가 아닌 경우에도 사용할 수 있도록 수정하고 command 치환 parser를 확장
      기본값 /var/lib/php71/bin
        안녕의 PHP 에서 system 함수를 사용하려면 사용하려면 command가 /var/lib/php56/bin 에 soft link나 복사 되어야 함.
      system function에 의해서 실행된 command의 경로를 강제로 지정한 값으로 변환
      1
      exec_dir = /path/bin
      2
      system('/some/path/command -option cmd_arg');
      3
      => system('/path/bin/command -option cmd_arg'); 치환됨
      Copied!
      치환 가능 범위
      1
      command; command => /path/bin/command; /path/bin/command
      2
      command $(command) => /path/bin/command $(/path/bin/command)
      3
      command $(command $(command)) => /path/bin/command $(/path/bin/command $(/path/bin/command))
      4
      command $(command `command`) => /path/bin/command $(/path/bin/command `/path/bin/command`)
      5
      command `command` => /path/bin/command `/path/bin/command`
      6
      command | command => /path/bin/command | /path/bin/command
      7
      command && command => /path/bin/command && /path/bin/command
      8
      command || command => /path/bin/command || /path/bin/command
      Copied!
      적용 functions
    2.
    disable_functions 기본 적용
      phpinfo
      php_uname
      sys_get_temp_dir
      phpversion
      ini_get
      ini_set
      ini_get_all
      get_cfg_var
      상단의 적용 function들은 함수명 앞에 prefix로 under bar 3개를 붙이면 호출이 가능함.
      1
      <?php
      2
      ___phpinfo();
      3
      ?>
      Copied!
    3.
    file upload시 image header의 injection code 여부 검사 기능 추가
      php.ini 에 다음 옵션 추가
        upload_image_check (기본값 On)
          업로드 이미지 헤더에 php code가 포함되었는지 검사
          php code 발견 시에 E_WARNING 발생
        upload_image_check_log (기본값 On) - 업로드 이미지 헤더 검사 관련 로그 기록
        upload_image_check_test (기본값 On)
          검사만 하고, 에러 레벨만 리턴(E_WARNING 발생 안함)
          검사 결과 감지가 되면 UPLOAD_ERR_SEC 반환
        upload_image_check_whitelist - 이미지 헤더 문자열 white list
    4.
    allow_url_fopenallow_url_include를 PHP_INI_ALL로 수정
      기본값 OFF이며, php code에서 ini_set으로 변경 가능
    5.
    allow_include_extension 옵션 추가 (기본값: .php)
      등록된 확장자만 php compiler에 의해 compile 됨.
      include / require 모두 해당
      등록된 확장자 파일을 upload 할 경우, UPLOAD_ERR_ILL 에러를 반환하고 업로드 되지 않음.
    6.
    short_open_tag 기본 값 Off
      short_open_tag 가 Off 이더라도, <?=$var?> 구문은 사용 가능.

Dependencies:

    None

Sub Packages:

    php71-cli - php 5.6 cli 인터페이스
    php71-dba - PHP 5.6 dba 확장
    php71-dblib - PHP 5.6 dba 확장
    php71-devel - php 5.6 확장 개발을 위한 파일들
    php71-extension - php 5.6 shared extension
      php71-cli, php71-fpm 공용으로 사용
      /etc/php71.d/{cli,fpm}/SHARED.ini 에서 module loading 설정을 해 주어야 함. 기본으로 loading 하지 않음
      1
      [[email protected] ~]$ cat /etc/php71.d/cli/SHARED.ini
      2
      ;
      3
      ; Follow extensions need php-extension package
      4
      ;
      5
      ;extension = bcmath.so
      6
      ;extension = calendar.so
      7
      ;extension = curl.so
      8
      ;extension = event.so
      9
      ;extension = exif.so
      10
      ;extension = fileinfo.so
      11
      ;extension = ftp.so
      12
      ;extension = gd.so
      13
      ;extension = gettext.so
      14
      ;extension = gmp.so
      15
      ;extension = imap.so
      16
      ;extension = json.so
      17
      ;extension = ldap.so
      18
      ;extension = libevent.so
      19
      ;extension = mcrypt.so
      20
      ;extension = memcache.so
      21
      ;extension = mysql.so
      22
      ;extension = mysqli.so
      23
      ;extension = pdo_mysql.so
      24
      ;extension = pdo_sqlite.so
      25
      ;extension = snmp.so
      26
      ;extension = soap.so
      27
      ;extension = sqlite.so
      28
      ;extension = sqlite3.so
      29
      ;extension = wddx.so
      30
      ;extension = xmlreader.so
      31
      ;extension = xmlwriter.so
      32
      ;extension = zip.so
      33
      ;zend_extension = /usr/lib64/php71/extensions/opcache.so
      Copied!
    php71-fpm - php 7.1 fpm engine
    php71-oci - PHP 7.1 oci8/pdo_oci 확장
    php71-odbc - PHP 7.1 odbc, pdo_odbc 확장
    php-pear - PHP 7.1 확장및 응용 프로그램 저장소 프레임웍
    php71-pgsql - PHP 7.1 pgsql, pdo_pgsql 확장
    php71-recode - PHP 7.1 recode 확장
    php71-nis

Related Packages:

Last modified 2yr ago