'업데이트'에 해당되는 글 41건

  1. 2009.08.03 JFFNMS 네트워크 모니터링 Tools
  2. 2009.07.03 PHP5의 MySQLi 확장 활용 예제
2009.08.03 15:14

JFFNMS 네트워크 모니터링 Tools

http://downloads.sourceforge.net/jffnms/jffnms-0.8.3.tar.gz?use_mirror=nchc
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.6.tar.gz
http://cairographics.org/releases/cairo-1.8.6.tar.gz

APM이 깔려있다는 전제 하에 기존에 php 컴파일시 jffnms설치시 필요한게 몇개 빠진거 같아서 재 컴파일 했다....아래같이

모든 필요한 파일을 yum으로 업데이트 한후 풀 옵션을 줘서 php 재컴파일 후 설치 진행함.

# yum -y install openssl openssl-devel mhash mhash-devel libtool libtool-ltdl libtool-ltdl-devel imap-devel imap zlib-devel zlib freetype-devel freetype libpng-devel libpng libjpeg-devel libjpeg libtiff-devel libtiff gd-devel gd pcre-devel pcre libxml-devel libxml libxml2-devel libxml2 gdbm-devel gdbm ncurses-devel ncurses curl-devel curl expat-devel expat bzip2-devel bzip2-libs bzip2 uw-imap-devel libc-client libc-client-devel libmcrypt libmcrypt-devel

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mod-charset --enable-safe-mode --enable-sigchild --enable-magic-quotes --with-libxml-dir --with-openssl --with-zlib --with-zlib-dir --with-bz2 --enable-calendar --with-curl --enable-dba --with-gdbm --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir  --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-imap --with-imap-ssl --with-kerberos --enable-mbstring --with-mhash --with-mcrypt --with-mysql=/usr/local/mysql --enable-sockets --with-regex=php --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zend-multibyte --with-snmp

rrdtools설치

# ./configure --prefix=/usr/local/rrdtool --enable-shared 

php.ini 다음 추가   

    register_globals = On
    register_argc_argv = On
    error_reporting  =  E_ALL & ~E_NOTICE
    allow_url_fopen = On
    include_path = .:/usr/share/pear
    short_open_tag = On

본격적인 설치(공식 메뉴얼 참조했습니다.)

# groupadd jffnms
# useradd -g jffnms -d /opt/jffnms -s /bin/false -c 'JFFNMS User' jffnms
# usermod -G jffnms apache 

You will get a directory called jffnms-0.8.x/

# mv jffnms-0.8.x /opt/jffnms

Permissions

# chown -R jffnms:jffnms /opt/jffnms
# chmod 770 /opt/jffnms
# chmod -R ug+rw /opt/jffnms 

Crontab
Install the JFFNMS crontab file

# crontab -u jffnms /opt/jffnms/docs/unix/crontab

맨위의 PATH
PHP=/usr/loca/php/bin/php

Now modify the values at the top if they don't match your system

# crontab -e -u jffnms

Allow JFFNMS to run cron jobs (AFAIK only needed in Solaris)

# echo jffnms >> /etc/cron.allow 

Create the Databases

Manually create the database "jffnms", set the permissions and then import the schema and data.
Manually create the database "jffnms", set the permissions and then import the schema and data.
Replace the 'x' with the jffnms version number.

mysql 설정

# mysql -u <mysql admin username> -p<password>
mysql> CREATE DATABASE jffnms;
mysql> GRANT ALL PRIVILEGES ON jffnms.* TO jffnms@localhost IDENTIFIED BY 'jffnms';
mysql> FLUSH PRIVILEGES;
mysql> quit

# mysql -u jffnms -pjffnms jffnms < docs/jffnms-0.8.x.mysql


출처 : http://trick.textcube.com/


Trackback 0 Comment 0
2009.07.03 18:49

PHP5의 MySQLi 확장 활용 예제

PHP5의 놀라운 기능들 중에서 특히 주목해야 할 부분을 꼽으라고 하신다면
저는 주저 없이 MySQLi (MySQL Improved Extension) 을 꼽겠습니다.
(물론 simpleXML 확장도 굉장합니다만... ^^;)


기존 함수들인 mysql_* 형태를 거의 그대로 사용하실 수 있도록 mysqli_* 함수들이 준비되어 있고, PHP5의 클래스 모델을 통해서 사용하실 수 있도록 mysqli::* 형태로도 메소드들을 제공하고 있습니다.

MySQLi 확장은 새로워진 PHP5에 대응하기 위한 MySQL 의 새로운 도전을 담고 있습니다. 물론 업그레이드된 MySQL 5 의 성능을 최대한으로 활용하기 위해서도 드라이버 재작성은 꼭 필요했을 겁니다.

기존의 mysql_* 함수들보다 작게는 2배에서 최고 40배 가까운 굉장히 놀라운 처리 속도를 보여줄 뿐더러, DB에 생성된 테이블 형태에 따라서 트랜잭션 처리를 위한 메소드들(mysqli::commit 등)을 제공하기도 해서 좀 더 고성능의 웹 애플리케이션 개발에 도움을 주고 있습니다.

뭐, 이러쿵 저러쿵 해도 백문이 불여일타, 겠지요? ^^;
아래 간단한 코드를 보시면서 대략적인 작동 흐름을 확인해 보시기 바랍니다.

<?php
header('Content-Type: text/html; charset=utf-8');
// DB에 접속을 합니다. 아래의 예제코드는 OOP 스타일로 했습니다.
// 물론, 기존의 함수 형태 (mysqli_*)로도 사용이 가능합니다. (PHP매뉴얼을 참조해 봅시다!)

$mysqli = new mysqli('localhost', 'root', 'password', 'dbname');

// 접속 실패시 처리
if(mysqli_connect_errno()) {
    // 여기에 접속 실패시 처리 코드 추가
}

// DB접속이 되었다 치고, 일단 테스트용 테이블을 dbname DB에 생성해 보겠습니다.
$mysqli->query("create table just_test ( uid int(11) not null auto_increment,".
    "var varchar(255) not null default '', primary key(uid))");

// dbname DB에 just_test 라는 테이블을 생성했으니, 이제 테스트용으로 데이터를 추가해 봅시다.
$mysqli->query("insert into just_test set uid = '', var = 'This is test code (English)'");
$mysqli->query("insert into just_test set uid = '', var = '이 것은 실험용 코드입니다. (한글)'");

// 데이터를 넣었으니, 이제 뽑아봅시다.
$getData = $mysqli->query("select * from just_test");
while($list = $getData->fetch_array()) {
    echo $list['var'] . ' ('.$list['uid'].') <br />';
}

// 데이터 연결을 해제합니다. (개발자가 명시해도 되고, 안해도 PHP가 알아서 해제해 줍니다.)
$mysqli->close();
?>

위의 코드에서는 OOP 스타일로 코딩을 해보았습니다.
그렇지만 굳이 저렇게 할 필요 없이, 예전처럼 함수 형태로 해서 코드를 작성하셔도 됩니다.
(그렇지만 이왕 PHP5로 넘어가시는 김에, OOP 형태로의 작업을 해보시는 게 좋지 않을까요? ^^;;)

기존에 사용하시던 방식을 거의 그대로 따르기 때문에 사실 이전하는 것 자체는 별도로 신경써야 할 부분은 없습니다.
단지, 기존의 애플리케이션을 다시 MySQLi 확장에 대응하도록 재작성 하는데는 많은 노력이 필요할 것으로 보여집니다. ㅠ.ㅠ;;;
(한 마디로 무궁무진한 삽질의 세계가 기다리고 있습니다.)

PHP5의 시대로 넘어가게 되면서 많은 것들이 달라졌습니다. 이번에 알파 작업중인 PHP5.3 만 하더라도 PHP6에서의 변화를 일부 반영한다고 하니 그 변화의 속도 또한 만만치 않은 것이 사실입니다.

지금의 환경에 안주해서는 안됩니다!
변화에 가속도가 붙는 지금, 진화를 시작해야 합니다.
이미 PHP4 는 4.4.9 를 끝으로 공식적인 업데이트가 마감되었습니다.

출처 : http://sirini.net/blog


Trackback 0 Comment 0