안녕리눅스 3 User Guide
  • Introduction
  • Chapter 1. 안녕 리눅스 3 \/ CentOS 7.2 차이점
  • Chapter 2. Access Control
    • 안녕 리눅스 방화벽 설정
      • 기본 설정
      • Inbound 제어
      • Outbound 제어
      • brute force attack 제어
      • User defined rule 제어
      • 특정 국가에서의 접속 제어
      • oops-firewall 실행 방법
    • Shell login Control (with PAM)
      • login 가능한 account 제한
      • login account chroot
      • Google OTP를 이용한 2 factor 인증
    • 인증 통합 (Authentification\/Authorization Intergrate)
      • Openldap
        • Master Server 설정
        • SSL 설정
        • Slave Server 설정
        • Replication 설정
        • LDAP 클라이언트 인증 연동 설정
        • LDAP data 관리
        • Sudo LDAP 연동
      • NIS
      • Active Directory
  • Chapter 3. Web control
    • httpd
    • nginx
    • lighttpd
    • PHP
    • Web Access Control
      • Apache 2.4
      • Nginx
      • lighttpd
    • Web Monitor agent
  • Chapter 4. JVM 운영
  • Chapter 5. DNS 운영
    • 기본 설정
    • 신규 도메인 설정
    • Slave DNS 구성
    • Inverse Domain 설정
    • DNSSEC 설정
    • GeoDNS 설정
    • Domain 위임
    • IDN
    • Troble Shooting
  • Chapter 6. Time Server 운영
    • Chrony
    • NTP
  • Chapter 7. VPN 운영
  • Chapter 8. SMTP 운영
  • 안녕 리눅스 White Paper
    • Disk Partition Aligment
  • 안녕 리눅스 알려진 버그
  • 안녕 리눅스 3 패키지 일람
    • [AN:core]
      • annyung-release
      • byspam
      • check-utils
      • genpasswd
      • httpd-conf
      • httpd-krisp
      • httpd-nis
      • httpd-url
      • kmod-geoip
      • l4vip
      • ldap-auth-utils
      • libchardet
      • libimginfo
      • libipcalc
      • libkrisp
      • mariadb-aes256
      • olibc
      • oops-firewall
      • perl-KRISP
      • perl-ModuleList
      • php-chardet
      • php56-chardet
      • php71-chardet
      • php-common
      • php56-common
      • php71-common
      • php-fpm-conf
      • php56-fpm-conf
      • php71-fpm-conf
      • php-geoip
      • php56-geoip
      • php71-geoip
      • php-korean
      • php56-korean
      • php71-korean
      • php-krisp
      • php56-krisp
      • php71-krisp
      • php-nis
      • php56-nis
      • php71-nis
      • php-pear-KSC5601
      • php-pear-ipcalc
      • php-pear-krisp
      • php-pear-oops-key
      • procdump
      • python-chardet
      • python-krisp
      • remount
      • utf8-profile
      • whois
      • yum-annyung
    • [AN:base]
      • apr
      • authconfig
      • bash
      • bind
      • chrony
      • coreutils
      • ctags
      • cvs
      • ecj
      • filesystem
      • GeoIP
      • gperftools
      • httpd
      • initscrtips
      • iptables
      • java-1.8.0-openjdk
      • javapacakges-tools
      • linuxdoc-tools
      • mariadb
      • memcached
      • net-tools
      • ntp
      • openssh
      • openssl
      • pam
      • php
      • procmail
      • procps-ng
      • redhat-rpm-config
      • rootfiles
      • rsyslog
      • sendmail
      • setup
      • shadow-utils
      • sudo
      • systemd
      • sysvinit-tools
      • tomcat
      • traceroute
      • unzip
      • util-linux
      • vim
      • xinted
    • [AN:xless]
    • [AN:addon]
      • authbind
      • cronolog
      • google-authenticator
      • hping3
      • httpd-fcgid
      • imap
      • jfbterm
      • jlint
      • libevent14
      • libnet
      • libnetfilter_acct
      • lighttpd
      • mhash
      • mimetex
      • mm
      • netdata
      • netperf
      • nginx
      • openvpn
      • pdnsd
      • perl-CSS-DOM
      • php-pecl-apcu
      • php56-pecl-apcu
      • php71-pecl-apcu
      • php-pecl-memcache
      • php56-pecl-memcache
      • php71-pecl-memcache
      • php-pecl-oauth
      • php56-pecl-oauth
      • php71-pecl-oauth
      • php-pecl-xdebug
      • php56-pecl-xdebug
      • php71-pecl-xdebug
      • php56
      • php71
      • proftpd
      • python-Mako
      • python-MarkupSafe
      • python-mcrypt
      • python-openpyxl
      • python-xlrd
      • re2c
      • redis
      • rudiments
      • splint
      • sqlite32
      • sqlrelay
      • tomcat-native
    • [AN:plus]
  • 안녕 리눅스 Upgrade Guide
Powered by GitBook
On this page
  • Description:
  • Changes on AnNyung:
  • Sub packages:

Was this helpful?

  1. 안녕 리눅스 3 패키지 일람
  2. [AN:base]

php

PreviouspamNextprocmail

Last updated 4 years ago

Was this helpful?

Description:

Apache2 PHP 엔진 (mod_php7, libphp7.so)

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.

Changes on AnNyung:

  1. php 7 업데이트

  2. 성능

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

    • realpath_cache_force ini 옵션 제공

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

    • 참조

  3. 보안

    • 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/php/bin

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

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

        exec_dir = /path/bin
        system('/some/path/command -option cmd_arg');
        => system('/path/bin/command -option cmd_arg'); 치환됨
      • 치환 가능 범위

        command; command              => /path/bin/command; /path/bin/command
        command $(command)            => /path/bin/command $(/path/bin/command)
        command $(command $(command)) => /path/bin/command $(/path/bin/command $(/path/bin/command))
        command $(command `command`)  => /path/bin/command $(/path/bin/command `/path/bin/command`)
        command `command`             => /path/bin/command `/path/bin/command`
        command | command             => /path/bin/command | /path/bin/command
        command && command            => /path/bin/command && /path/bin/command
        command || command            => /path/bin/command || /path/bin/command
      • 참조:

      • 적용 functions

        • 내부적으로 php_exec API를 호출하는 function들

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

        <?php
        ___phpinfo();
        ?>
    • 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

    • allow_url_fopen과 allow_url_include를 PHP_INI_ALL로 수정

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

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

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

      • include / require 모두 해당

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

    • short_open_tag 기본 값 Off

  4. 기능

    • gd charsapce 기능 제공 (송효진님 패치)

      • 참조

    • date function 사용시 system tzdata 사용 하도록 변경 (RHEL patch)

    • TLS 1.3 지원 (with openssl11)

Sub packages:

  • php-cli - php7 cli 인터페이스

  • php-dba - PHP7 dba 확장

  • php-dblib - PHP7 dba 확장

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

  • php-extension - php7 shared extension

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

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

      [root@an3 ~]$ cat /etc/php.d/cli/SHARED.ini
      ;
      ; Follow extensions need php-extension package
      ;
      ;extension = bcmath.so
      ;extension = calendar.so
      ;extension = curl.so
      ;extension = exif.so
      ;extension = fileinfo.so
      ;extension = ftp.so
      ;extension = gd.so
      ;extension = gettext.so
      ;extension = imap.so
      ;extension = json.so
      ;extension = ldap.so
      ;extension = libevent.so
      ;extension = mcrypt.so
      ;extension = mysql.so
      ;extension = mysqli.so
      ;extension = pdo_mysql.so
      ;extension = pdo_sqlite.so
      ;extension = snmop.so
      ;extension = snmp.so
      ;extension = soap.so
      ;extension = sqlite3.so
      ;extension = wddx.so
      ;extension = xmlreader.so
      ;extension = xmlwriter.so
      ;extension = zip.so
      ;zend_extension = /usr/lib64/php/extensions/opcache.so
      [root@an3 ~]
  • php-fpm - php7 fpm engine

  • php-oci - PHP7 oci8/pdo_oci 확장

  • php-odbc - PHP7 odbc, pdo_odbc 확장

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

  • php-pgsql - PHP7 pgsql, pdo_pgsql 확장

  • php-recode - PHP7 recode 확장

https://my.oops.org/173
https://github.com/OOPS-ORG-PHP/mod_execdir/
http://kldp.org/node/45576
system
exec
passthru
popen
escapeshellcmd
pcntl_exec
backtick operator
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=20819
php-common
php-fpm-conf
php-geoip
php-krisp
php-nis
php-pecl-apcu
php-pecl-memcache
php-pecl-oauth
php-pecl-xdebug
php-sqlrelay