php56

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 5.6 compatible 패키지

  2. Apache module(libphp5.so)은 지원하지 않고, cli와 FPM만 지원합니다. Fastcgi protocol을 이용하여 php56-fpm과 연결하여야 합니다.

  3. php56-cli 설정 파일

    • /etc/php56.d/php-cli.ini

    • /etc/php56.d/cli/SHARED.ini

    • php-cli.ini는 수정을 하지 말고, 변경할 옵션을 /etc/php56.d/cli/SHARED.ini 에 하는 것을 권장함

  4. php56-fpm 설정 파일

    • FPM 구동 설정 파일

      • /etc/php56.d/fpm.conf

      • /etc/php56.d/fpm.d

    • FPM 설정 파일

      • /etc/php56.d/php-fpm-fcgi.ini

      • /etc/php56.d/fpm/SHARED.ini

      • php-fpm-fcgi.ini는 수정을 하지 말고, 변경할 옵션을 /etc/php56.d/fpm/SHARED.ini 에 하는 것을 권장함

  5. 성능

    • PHP VM type을 GOTO mode로 빌드 (성능 20% 향상)

    • realpath_cache_force ini 옵션 제공

      • openbase_dir 사용시에, realpath_cache 기능을 강제로 사용하게 하여 30% 정도의 성능을 향상

Reference:

  1. PHP 5.3 호환 기능

    • PHP 5.4에서 deprecated 되었거나 remove된 기능들을 지원

    • Known unsupported functions

      • preg_replace "/e" modifier : replace preg_replace_callback

    • /etc/php56.d/{cli,fpm}/php53compatible.ini

  2. 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/php56/bin

      • 안녕의 PHP 에서 system 함수를 사용하려면 사용하려면 command가 /var/lib/php56/bin 에 soft link나 복사 되어야 함.

    • system function에 의해서 실행된 command의 경로를 강제로 지정한 값으로 변환

    • 치환 가능 범위

    • 적용 functions

  3. 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개를 붙이면 호출이 가능함.

  4. 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

  5. allow_url_fopenallow_url_include를 PHP_INI_ALL로 수정

    • 기본값 OFF이며, php code에서 ini_set으로 변경 가능

  6. allow_include_extension 옵션 추가 (기본값: .php)

    • 등록된 확장자만 php compiler에 의해 compile 됨.

    • include / require 모두 해당

    • 등록된 확장자 파일을 upload 할 경우, UPLOAD_ERR_ILL 에러를 반환하고 업로드 되지 않음.

  7. short_open_tag 기본 값 Off

    • short_open_tag 가 Off 이더라도, <?=$var?> 구문은 사용 가능.

Dependencies:

  • None

Sub Packages:

  • php56-cli - php 5.6 cli 인터페이스

  • php56-dba - PHP 5.6 dba 확장

  • php56-dblib - PHP 5.6 dba 확장

  • php56-devel - php 5.6 확장 개발을 위한 파일들

  • php56-extension - php 5.6 shared extension

    • php56-cli, php56-fpm 공용으로 사용

    • /etc/php56.d/{cli,fpm}/SHARED.ini 에서 module loading 설정을 해 주어야 함. 기본으로 loading 하지 않음

  • php56-fpm - php 5.6 fpm engine

  • php56-oci - PHP 5.6 oci8/pdo_oci 확장

  • php56-odbc - PHP 5.6 odbc, pdo_odbc 확장

  • php-pear - PHP 5.6 확장및 응용 프로그램 저장소 프레임웍

  • php56-pgsql - PHP 5.6 pgsql, pdo_pgsql 확장

  • php56-recode - PHP 5.6 recode 확장

Last updated

Was this helpful?