http://blog.daum.net/haha25/5387375 에서 참조

DDL(데이터 정의어)Data Definition정의 Language
▪ SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는
언어
▪ 데이터베이스 관리자나 데이터베이스 설계자가 사용함
▪ 데이터 정의어(D이)의 3가지 유형

 명령어 기능
CREATE  – Schema, Domain, Table, View, Index를 정의함
ALTER    –  Table에 대한 정의를 변경하는데 사용함
DROP     –  Schema, Domain, Table, View, Index를 삭제함

DML(데이터 조작어)Data Manipulation조작, 속임수  Language
▪ 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로
처리하는데 사용하는 언어
▪ 데이터베이스 사용자와 데이터베이스 관리시스템간의 인터페이스 제공
▪ 데이터조작어(DML)의 4가지 유형

 명령어 기능
SELECT       테이블에서 조건에 맞는 튜플을 검색함
INSERT        테이블에서 새로운 튜플을 삽입함
DELETE       테이블에서 조건에 맞는 튜플을 삭제함
UPDATE       테이블의 조건에 맞는 튜플의 내용을 변경함

 DCL(데이터 제어어)
▪ 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의 하는데 사용하는 언어
▪ 데이터베이스 관리자가 데이터 관리를 목적으로 사용함
▪ 데이터 제어어(DCL)의 종류

 명령어 기능
COMMIT        데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
ROLLBACK     데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함
GRANT           데이터베이스 사용자에게 사용권한을 부여함
REVOKE        데이터베이스 사용자의 사용권한을 취소함

http://blog.daum.net/haha25/5387375 에서 참조

DDL(데이터 정의어)Data Definition정의 Language
▪ SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는
언어
▪ 데이터베이스 관리자나 데이터베이스 설계자가 사용함
▪ 데이터 정의어(D이)의 3가지 유형

 명령어 기능
CREATE  — Schema, Domain, Table, View, Index를 정의함
ALTER    — Table에 대한 정의를 변경하는데 사용함
DROP     — Schema, Domain, Table, View, Index를 삭제함

DML(데이터 조작어)Data Manipulation조작, 속임수  Language
▪ 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로
처리하는데 사용하는 언어
▪ 데이터베이스 사용자와 데이터베이스 관리시스템간의 인터페이스 제공
▪ 데이터조작어(DML)의 4가지 유형

 명령어 기능
SELECT       테이블에서 조건에 맞는 튜플을 검색함
INSERT        테이블에서 새로운 튜플을 삽입함
DELETE       테이블에서 조건에 맞는 튜플을 삭제함
UPDATE       테이블의 조건에 맞는 튜플의 내용을 변경함

 DCL(데이터 제어어)
▪ 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의 하는데 사용하는 언어
▪ 데이터베이스 관리자가 데이터 관리를 목적으로 사용함
▪ 데이터 제어어(DCL)의 종류

 명령어 기능
COMMIT        데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
ROLLBACK     데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함
GRANT           데이터베이스 사용자에게 사용권한을 부여함
REVOKE        데이터베이스 사용자의 사용권한을 취소함

PHP configuration 옵션 정리 __PHP

원본: http://orion203.springnote.com/pages/6906419.xhtml

CentOS 5 가 최소 설치되었다고 가정하고 시작했기 때문에 컴파일 환경을 구축을 먼저 해줘야 합니다.

yum update -y

reboot

yum install gcc.x86_64 gcc-c++.x86_64 wget.x86_64 bzip2-devel.x86_64 pkgconfig.x86_64 openssl-devel.x86_64 make.x86_64 man.x86_64 nasm.x86_64 gmp.x86_64 gdbm-devel.x86_64 readline-devel.x86_64 compat-readline43.x86_64 ncurses-devel.x86_64 db4-devel.x86_64 automake* autoconf* -y

Donwload and Unpack

cd /usr/src

wget ftp://ftp.sayclub.com/pub/languages/php/php-5.2.16.tar.bz2

tar xvjf php-5.2.16.tar.bz2

cd php-5.2.16

Knowledge

Php는 아주 많은 기능들을 제공합니다. 이러다보니 Configure 옵션도 많아서 제대로 지정해주지 않으면 사용하지도 않는 기능이 내장이 된다거나 꼭 필요한 기능인데 shared module로 올린다거나 하는 불상사가 발생할 수 있습니다. 따라서 무엇이 필요한지 자주 사용되는 기능인지를 따져보는 것이 좋습니다.

Php의 많은 기능들은 컴파일할때 기능을 내장하는 Built in 방식과 필요한 기능만을 그때 그때 컴파일해서 붙여서 쓰는 shared 방식을 사용할 수 있습니다. 보통 Built in 방식으로 지정을하지 않으면 전부다 shared 방식으로 언제든지 붙여서 쓸수 있기 때문에 너무 걱정을 하지 않아도 됩니다.

Built in 방식은 보통 자주 쓰는 경우에 사용을하고 shared 방식은 가끔 쓰는 기능이 필요한 경우에 사용을 합니다. 따라서 Php가 어떤 목적으로 사용할 것인지를 알아야 필요한 기능을 Built in 할것인지를 알 수 있겠죠.

주요한 기능들은 다음과 같습니다.

  1. —with-pear     – php 라이브러리인 pear 를 지원.
  2. —with-gettext  – php내에 국제화를 위한 프로그램을 지원하기위해서 필요한 기능을 지원.
  3. —with-iconv     – 문자셋 변환을 위한 기능을 지원.
  4. —with-bz2      – 압축프로그램인 BZip2 기능을 지원.
  5. —with-gmp      – GNU MP 지원. GNU MP는 멀티 프로세싱을 위한 것입니다. 쓰레드, Fork 와는 또다른 병렬 프로그래밍 기법입니다.
  6. —with-apxs2    – apache2 와 연동 지원.
  7. —with-zlib      – ZLIB 지원.
  8. —with-mcrypt   – mcrypt 로 암호화 과련 기능을 지원.
  9. —with-mhash    – mhash 지원.
  10. —with-mysql     – mysql 데이터베이스 지원.
  11. —with-pdo-mysql  – pdo mysql 지원.
  12. —with-mysqli         – mysqli 지원.
  13. —with-pgsql      – pgsql 데이터베이스 지원.
  14. —with-pdo-pgsql  – pdo pgsql 지원.
  15. —with-xmlrpc      – xmlrpc 지원.
  16. —with-libxml-dir    – XML2 지원을 위한 libxml2 라이브러리 디렉토리 지정.
  17. —with-pcre-dir    – Perl Compatible Regular Expression 지원을 위한 라이브러리 디렉토리 지정.
  18. —with-gd          – GD 그래픽 지원.

  19. —with-native-ttf     – TrueType 문자열 지원.

  20. —with-jpeg-dir    – JPEG 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  21. —with-png-dir     – PNG 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  22. —with-xpm-dir     – XPM 그래픽 지원을 위한 라이브러리 디렉토리 지정.

  23. —with-ttf          – FreeType 폰트 지원.

  24. —with-freetype-dir – FreeType 폰트 라이브러리 디렉토리 지정.

  25. —enable-safe-mode      – safe mode 지원.

  26. —enable-zend-multibyte  – Zend 의 multibyte 지원.

  27. —enable-soap   – SOAP 웹 서비스 지원.

  28. —enable-curl     – cURL 지원.

  29. —enable-sockets  – fsockopen 과 같은 소켓 함수를 쓰기위해서는 필요합니다.

  30. —enable-zip        – Zip 파일을 읽고 쓸수 있는 기능 지원.

  31. —enable-magic-quotes  – ‘,” 와 같은 것을 자동으로 처리해주는 기능을 제공합니다.

  32. —enable-mbstring   – multibyte 문자열 처리를 위한 지원.

  33. —enable-shmop      – Shared Memory Operations 으로서 공유메모리 접근 기능을 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  34. —enable-pcntl(CLI/CGI only)  – Process Control 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다.

  35. —enable-sysvmsg    – System V message 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  36. —enable-sysvsem    – System V Semaphore 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  37. —enable-sysvshm     – System V shared memory 를 지원합니다. Windows 플랫폼은 사용할 수 없습니다. 여기를 참고하세요.

  38. —enable-calendar    – Calendar Conversion 를 지원합니다.

  39. —enable-bcmath     – bc 스타일의 수학함수를 지원합니다.

  40. —enable-ftp         – ftp 지원.

  41. —enable-exif        – 이미지 메타정보 표시를 지원합니다.

  42. —enable-fastcgi     – FastCGI 지원.

주로 많이 사용하는 Configure 옵션들은 위와 같습니다. 자세히 보면 ‘with’ 시작하는 것이 있고 ‘enable’ 로 시작하는 것이 있는데, with 의 경우에는 외부의 라이브러리가 있어야 하며 enable은 php에 라이브러리를 내장하고 있어 기능을 켜는 역활을 합니다.

Configure 를 하기전에 위의 내용을 알고 있어야 자신에게 필요한 것을 Php에 내장시킬 수 있습니다. 여기에서는 큰틀에서 다음과 같은 것을 Php에 넣을 것입니다.

  1. Apache 웹서버 연동. —with-apxs2 옵션 설정 필요.

  2. Mysql 데이터베이스 연동. —with-mysql, —with-pdo-mysql 옵션 설정 필요.

  3. Pgsql 데이터베이스 연동. —with-pgsql, —with-pdo-pgsql 옵션 설정 필요.

  4. 그래픽 이미지 지원. —with-gd, gd-native-ttf, jpg, png, freetype 기능이 필요함.

  5. xml 처리를 위한 기능이 필요. —with-libxml 옵션 설정 필요.

  6. pear 기능 필요. —with-pear 옵션 설정 필요.

  7. 기타 부가적인 기능들 필요. gettext, bz2, mcrypt, mbstring, magic quotas, iconv 등등

1~3까지는 설치 노트에 있는대로 설치를 한 것으로 간주했습니다. 나머지 설치를 위한 라이브러리 설치를 먼저 진행을 합니다. 즉 다음과 같습니다.

  • Apache2 – /usr/local/apache2

  • Mysql – /usr/local/mysql5.5

  • PostgreSQL – /usr/local/pgsql-9.0

 —with-gd를 위한 CentOS Lib 설치.

yum install gd.x86_64 gd-devel.x86_64

 —with-jpeg-dir 를 위한 CentOS Lib 설치.

yum install libjpeg.x86_64 libjpeg-devel.x86_64

 —with-png-dir 를 위한 CentOS Lib 설치.

yum install libpng.x86_64 libpng-devel.x86_64

 —with-freetype-dir 를 위한 CentOS Lib 설치.

yum install freetype.x86_64 freetype-devel.x86_64

 —with-libxml-dir 를 위한 CentOS Lib 설치.

yum install libxml2.x86_64 libxml2-devel.x86_64

 —with-bz2 를 위한 CentOS Lib 설치.

yum install bzip2.x86_64 bzip2-devel.x86_64

 —with-gettext 를 위한 CentOS Lib 설치.

yum install gettext.x86_64 gettext-devel.x86_64

 —with-jpeg-dir 를 위한 CentOS Lib 설치.

yum install libmcrypt.x86_64 libmcrypt-devel.x86_64

 —with-mhash 를 위한 CentOS Lib 설치.

yum install mhash.x86_64 mhash-devel.x86_64

 —with-gmp 를 위한 CentOS Lib 설치.

yum install gmp-devel.x86_64 gmp.x86_64

이외에도 필요한 기능들을 포함하면 한번쯤 CentOS 라이브러리를 패키지를 살펴봐야 합니다.

Configure and Compile

이제 컴파일을 위한 Configure 는 다음과 같습니다.

./configure —prefix=/usr/local/php5.2.16

—with-libdir=lib64

—with-apxs2=/usr/local/apache2/bin/apxs

—with-mysql=/usr/local/mysql5.5

—with-pdo-mysql=/usr/local/mysql5.5

—with-mysqli=/usr/local/mysql5.5/bin/mysql_config

—with-pgsql=/usr/local/pgsql9.0

—with-pdo-pgsql=/usr/local/pgsql9.0

—with-pear

—with-libxml-dir=/usr

—with-gettext

—with-iconv

—with-zlib

—with-mcrypt

—with-mhash

—with-gd

—with-jpeg-dir=/usr

—with-png-dir=/usr

—with-freetype-dir=/usr

—with-bz2

—enable-gd-native-ttf

—enable-zip

—enable-mbstring

—enable-zend-multibyte

—enable-safe-mode

make

make install

cp php.ini-recommended /usr/local/php5.2.16/lib/php.ini

Apache PHP Configure

Apache 웹서버에서 PHP 컴파일을 인식시켜야 합니다. 이를 위해서 아파치에 설정을 해야 합니다.

]# cd /usr/local/apache2/conf/extra

]# vim httpd-php.conf

<IfModule php5_module>

    <FilesMatch “.(htm|html|php)$”>

        SetHandler application/x-httpd-php

    </FilesMatch>

    <FilesMatch “.phps$”>

        SetHandler application/x-httpd-php-source

    </FilesMatch>

    DirectoryIndex index.htm index.html index.php

</IfModule>

]# vim /usr/local/apache2/conf/httpd.conf

#Php settings

Include conf/extra/httpd-php.conf

]# /usr/local/apache2/bin/apachectl restart