| At line 1 added 316 lines |
| [{TableOfContents}] |
|
| !!!참고 사이트 |
| *[http://www.php.net/manual/kr/install.apache2.php] |
| *[http://naggingmachine.blogspot.com/2006/08/php5.html] |
| *[http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=2387&sfl=&stx=&sst=wr_hit&sod=desc&sop=and&page=1] |
|
| !!!mcrypt 설치 |
| {{{ |
| wget http://jaist.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz |
| tar -xvf libmcrypt-2.5.8.tar.gz |
| cd libmcrypt-2.5.8 |
| ./configure |
| make && make install |
| cd .. |
| }}} |
|
| !!!gzip설치 |
| {{{ |
| wget ftp://mirrors.kernel.org/gnu/gzip/gzip-1.2.4.tar |
| tar -xvf gzip-1.2.4.tar |
| cd gzip-1.2.4 |
| ./configure |
| make && make install |
| cd .. |
| }}} |
|
| !!!libxml설치 |
| {{{ |
| wget ftp://xmlsoft.org/libxml2/libxml2-2.6.30.tar.gz |
| tar -xvzf libxml2-2.6.30.tar.gz |
| cd libxml2-2.6.30 |
| ./configure |
| make && make install |
| cd .. |
| }}} |
|
| !!!Zlib 설치 |
| {{{ |
| wget http://www.zlib.net/zlib-1.2.3.tar.gz |
| tar -xvzf zlib-1.2.3.tar.gz |
| cd zlib-1.2.3 |
| ./configure |
| make && make install |
| cd .. |
| }}} |
|
| !!!LibPng 설치 |
| {{{ |
| wget http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.29.tar.gz |
| tar -xvzf libpng-1.2.29.tar.gz |
| cd libpng-1.2.29 |
| cp scripts/makefile.linux makefile |
| make test |
| make install |
| cd .. |
| }}} |
|
| !!!GD설치 |
| {{{ |
| wget http://www.libgd.org/releases/oldreleases/gd-2.0.34.tar.gz |
| tar -xvzf gd-2.0.34.tar.gz |
| cd gd-2.0.34 |
| ./configure |
| make all |
| cd .. |
|
| 참고 : gd 는 PNG, JPEG & WBMP 그림을 만들어 냅니다. |
| 그러므로 gd 설치시에는 libpng, zlib 등을 함께 설치할 것을 권장 합니다. GIF 은 라이센스 문제가 있어 포함이 안됩니다. |
|
| make시 다음과 같은에러 발생시 |
| zlib를 다시 설치한다.( ./configure -s ) |
| /usr/local/lib/libz.a: could not read symbols: Bad value |
| collect2: ld returned 1 exit status |
| make: *** [libphp5.la] Error 1 |
| }}} |
|
| !!!freetype 2 설치 |
| {{{ |
| 글짜를 그릴 때 쓰는 라이브러리 입니다. |
|
| wget http://ftp.superuser.co.kr/pub/etc/freetype-2.2.1.tar.bz2 |
| tar xvfj freetype-2.2.1.tar.bz2 |
| cd freetype-2.2.1 |
| ./configure && make && make install |
| cd .. |
| }}} |
|
| !!!libjpeg 설치 |
| {{{ |
| jpg 포맷을 다루는 라이브러리 입니다. |
|
| wget http://ftp.superuser.co.kr/pub/etc/jpegsrc.v6b.tar.gz |
| tar xvfz jpegsrc.v6b.tar.gz |
| cd jpeg-6b |
| cp /usr/share/libtool/config.guess ./ |
| cp /usr/share/libtool/config.sub ./ |
| ./configure --enable-shared --enable-static |
| make && make test |
| mkdir /usr/local/man/man1 |
| make install |
| cd .. |
|
| 위 설치법에서 특별한 것은 중간에 /usr/local/man/man1이라는 디렉토리를 생성합니다. |
| 이유는 make install 하면 /usr/local/man/man1 디렉토리가 없다고 멘 페이지가 설치가 되지 않는다는 에러가 납니다. |
| }}} |
|
| !!!php 설치 |
| * 컴파일 설치 5.2.10 |
| {{{ |
| wget http://kr.php.net/get/php-5.2.10.tar.gz/from/this/mirror |
| tar -xvzf php-5.2.10.tar.gz |
| cd php-5.2.10 |
|
| ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs \ |
| --with-openssl --with-mcrypt --with-gd --with-ttf --with-gettext --with-zlib \ |
| --with-gdbm=/usr \ |
| --with-jpeg-dir=/usr/src \ |
| --with-png-dir=/usr/lib \ |
| --with-freetype-dir=/usr/include/freetype2 \ |
| --with-libxml-dir=/usr/local/lib \ |
| --with-exec-dir=/usr/bin \ |
| --with-config-file-path=/usr/local/php5 \ |
| --with-mysql=/usr/local/mysql \ |
| --with-mysqli=/usr/local/mysql/bin/mysql_config \ |
| --with-sqlite=shared \ |
| --enable-pdo=shared \ |
| --with-pdo-sqlite=shared \ |
| --with-pdo-mysql=shared,/usr/local/mysql \ |
| --enable-sockets --enable-sysvsem=yes --enable-sigchild \ |
| --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf \ |
| --enable-inline-optimization --enable-bcmath --enable-soap --enable-maintainer-zts \ |
| --enable-debug=no --enable-mbstring --enable-wddx --enable-mbregex --enable-exif --enable-calendar |
|
| #64bit 시스템일경우 아래옵션 추가 |
| --with-libdir=lib64 |
|
| make && make install |
| cp php.ini-dist /usr/local/php5/php.ini |
| cd .. |
| }}} |
|
| * 각종오류 관련 자료 |
| {{{ |
| /usr/lib/ld : connot find -lltdl |
| http://kldp.org/node/86203 |
|
| /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object |
| http://www.howtoforge.com/forums/archive/index.php/t-4276.html |
|
| 64bit 시스템에서 mysql라이브러리를 못찾을때 |
| http://bugs.php.net/bug.php?id=36073&edit=1 |
| }}} |
|
| !!!path 설정 |
| {{{ |
| vi /etc/profile |
| #PHP |
| PHP_HOME=/usr/local/php5 |
| PATH=$PATH:$PHP_HOME/bin |
| }}} |
|
| !!!php.ini 설정 |
| {{{ |
| #extension관련 설정 5.2.x |
| extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20060613/" |
|
| #pdo관련 설정 |
| extension=pdo.so |
| extension=pdo_mysql.so |
| }}} |
|
| !!!아파치 설정 |
| {{{ |
| vi /usr/local/apache2/conf/httpd.conf |
| <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
| #LoadModule는 자동으로 추가 될때도 있으니 주의 |
|
| PHP 4는: |
| LoadModule php4_module libexec/libphp4.so |
|
| PHP 5는: |
| LoadModule php5_module libexec/libphp5.so |
|
| #php 확장자 추가 |
| AddType application/x-httpd-php .php .phtml .html |
| #phps를 하이라이트된 PHP 소스로 보여줌 |
| AddType application/x-httpd-php-source .phps |
| >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
| }}} |
|
| !!!Zend Optimizer |
| !다운로드 |
| {{{ |
| 34 bit |
| wget http://downloads.phpchina.com/zend/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz |
| tar -xvzf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz |
| cd ZendOptimizer-3.3.3-linux-glibc23-i386 |
| ./install |
|
| 64 bit |
| wget http://downloads.phpchina.com/zend/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz |
| tar -xvzf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz |
| cd ZendOptimizer-3.3.3-linux-glibc23-x86_64 |
| ./install |
|
| 대화상자의 내용을 확인하면서 진행 하면 됨 |
| 주의 사항 : php.ini의 경로를 입력 하라고 하면 /usr/local/php5 와 같이 넣어주면 된다. |
| }}} |
|
| !아래와 같은 내용이 phpinfo(); 함수 수행시 나오면 성공 |
| {{{ |
| with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies |
| with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies |
| }}} |
|
| !!!eAccelerator 설치(캐싱) |
| {{{ |
| wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2 |
|
| tar -xvf eaccelerator-0.9.5.3.tar.bz2 |
| cd eaccelerator-0.9.5.3 |
|
|
| phpize |
| ./configure --enable-eaccelerator=shared |
| make |
| make install |
|
| [zend] 설정 위에 있어야 함 |
|
| [eaccelerator] |
| ;extension="eaccelerator.so" |
| zend_extension="/usr/local/php5/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so" |
| zend_extension_ts="/usr/local/php5/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so" |
| ; eAccelerator가 사용할 공유 메모리량. 단위 MBytes. |
| ; 0을 지정하면 OS 기본값. default = 0 |
| eaccelerator.shm_size="64" |
|
| eaccelerator.cache_dir="/var/eaccelerator" |
| eaccelerator.enable="1" |
| eaccelerator.optimizer="1" |
| eaccelerator.check_mtime="1" |
| eaccelerator.debug="0" |
|
| ; 캐싱할 php 파일을 지정한다. *.php *.html *.php3 처럼 지정할 수 있으며 "" 로 비워두면 모든 php 파일이 캐싱된다. |
| eaccelerator.filter="*.php *.html" |
|
| ; 한 유저가 최대 사용할 수 있는 메모리량 메모리 크기를 bytes단위로 표시한다. (예. 10240, 10K, 1M). 0은 제한 없음 |
| eaccelerator.shm_max="0" |
|
| ; 새 스크립트 파일을 캐싱할만한 공유 메모리가 없다면, ssh_ttl 초동안 액세스가 없는 모든 스크립트를 삭제한다. default = 0. 0은 삭제안함을 의미 |
| eaccelerator.shm_ttl="0" |
|
| ; 이 설정은 위의 shm_ttl 설정과 비슷하다. |
| ; 지정한 초보다 오래전에 만들어진 스크립트를 제거한다. |
| ; 즉, shm_ttl은 액세스시간에, shm_prune_period는 생성시간에 따라 삭제한다. |
| ; default = 0. 0은 삭제안함을 의미 |
| eaccelerator.shm_prune_period="0" |
|
| ; 컴파일된 스크립트를 디스크에 캐싱할 것인지 여부. |
| ; session data와 content 캐싱은 이설정과 무관. default = 0. |
| ; 0이면 캐싱을 위해 디스크와 메모리를 모두 사용한다. |
| eaccelerator.shm_only="0" |
|
| ;캐시된 내용 압축 여부 |
| eaccelerator.compress="1" |
|
| ;압축 레벨 지정. 9는 최대 압축 레벨 |
| eaccelerator.compress_level="9" |
|
| ;아래 path가 정확하지 않을시 control.php에서 에러가 발생 됨 |
| eaccelerator.allowed_admin_path = "/usr/local/apache2/htdoc/control.php" |
|
|
|
| mkdir /var/eaccelerator |
| chmod 0777 /var/eaccelerator |
|
|
| php -v 체크하기 |
| }}} |
|
| !!!XDebug 설치(무한루프를 막아줌/memory_limit에서도 막아줌) |
| {{{ |
| wget http://www.xdebug.org/files/xdebug-2.0.4.tgz |
|
| tar -xvf xdebug-2.0.4.tgz |
| cd xdebug-2.0.4 |
|
| phpize |
| ./configure |
| make |
| make install |
|
| php.ini에 설정 |
| extension=xdebug.so |
| }}} |
|
| !!!Pear 설치 |
| {{{ |
| php5.x /usr/local/php5/bin/pear 스크립트가 존재 |
| |
| pear list : 설치된 package 목록 |
| pear remote-list : pear.php.net 에 있는 Package List |
| pear install [package명] : 설치 |
| pear uninstall [package명] : 제거 |
| pear remote-info [package명] : pear.php.net 에 있는 Package Info |
| pear upgrade-all : 설치된 모든 패키지 업그레이드 |
| pear list-all : 설치 안된것까지 포함한 모든 사용가능 목록 출력 |
| pear install Net_Whois : 해당 패키지를 다운받아 설치. |
| pear remote-info DB : 원격서버의 DB 패키지의 정보. |
|
| ./pear install DB |
|
| }}} |