2007년 10월 30일 화요일

fckeditor 설정

1. 메뉴관리설정 :

fckeditor/fckconfig.js
2. 이미지 업로드 관련
- fckeditor/editor/dialog/fck_image.html
- fckeditor/editor/dialog/fck_image/fck_image.js
- fckeditor/editor/filemanager/upload/php/*

이 파일만 수정하면 사용하는데 지장이 없는거 같다.
사용방법은

Value = $content;
    # witdth, height
    $oFCKeditor->Width = 580;
    $oFCKeditor->Height = 400;
?>
위와 같은 설정파일을 만든후에 editor를 사용할 페이지에 include 시킨다.

html 파일에서는

$oFCKeditor->Create();

editor를 새로 생성한다. 위치는 보통 글쓰는 곳에 다가 하면 editor가 보인다.

자바스크립트에서는
var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
document.formname.content.value = oEditor.GetXHTML(true).replace(/\n/g,'');

값을 받아서 처리하는 페이지에서는

$content = stripslashes($_POST["content"]);

로 받아서 처리하면된다.

2007년 10월 9일 화요일

검색관련

mysql innodb engine을 사용하면 full-text를 사용할 수 없다. 그래서 텍스트 검색할때 많이 느린편인데 sphinx를 이용하면 빠른 검색을 할 수 있다.
search를 이용하면 전체 필드의 내용을 다 검색할 수가 있는데 searchd 데몬을 실행하고 나서 php API를 이용하면 앞의 id만 나온다. 수정이 좀 필요할거 같다.

한글 문제는 table이 utf8일때 한글 검색이 된다. 이 부분도 걸리는게 현재는 table이 euckr로 되어있다.

euckr을 utf8로 변환해서 넣는 방법은 euckr db에서 mysqldump -u -p DB table --default-character-set=euckr > dump.sql로 하고 utf8 db에다가는 mysql -u -p DB < dump.sql

참조 url : http://www.ibm.com/developerworks/kr/library/os-php-sphinxsearch/

2007년 10월 7일 일요일

mysql c program 간단한 사용법

ubuntu 에서 mysql 관련 c API를 사용할려면 libmysqlclient-dev 패캐지를 필요로 한다.
이 패키지가 없으면 /usr/include/mysql/* 관련한 header파일이 없다.
(find / -name "mysql.h" -print로 찾아보면 결과가 없다.)
libmysqlclient-dev를 설치하고 나서 간단한 프로그램을 작성해 보면
#include stdio.h 
#include stdlib.h
#include mysql/mysql.h

int main(void) {
    MYSQL *conn;
    MYSQL_RES *res;
    MYSQL_ROW row;

    char *server = host;
    char *user = user;
    char *password = password;
    char *database = database_name;

    conn = mysql_init(NULL);

    /* Connect to database */
    if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    /* send SQL query */
    if (mysql_query(conn, "show tables")) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    res = mysql_use_result(conn);

    /* output table name */
    printf("MySQL Tables in mysql database:\n");
    while ((row = mysql_fetch_row(res)) != NULL)
        printf("%s\n", row[0]);

    /* close connection */
    mysql_free_result(res);
    mysql_close(conn);
}

compile 방법은 gcc -lmysqlclient -o ex ex.c 로 컴파일 해서 실행하면 된다.
이때 mysql library 관련해서는

$ mysql_config --libs 

$ mysql_config --cflags
로 확인해 볼수 있다.

참조 url : http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html
http://dev.mysql.com/doc/refman/5.0/en/c.html
http://www.mysqlkorea.co.kr/

2007년 10월 1일 월요일

간단한 firewall

iptables 관련해서 script 파일을 만든다.
#!/bin/bash
# flush all chains
iptables -F
# set the default policy for each of the pre-defined chains
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptabels -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# drop everything else
iptables -A INPUT -i eth+ -p udp -j DROP
iptables -A INPUT -i eth+ -p tcp -m tcp --syn -j DROP
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT

이 파일을 서버가 시작될때 자동으로 등록 할려면
#!/bin/bash
if [[ $1 == start ]] ; then
    sudo /home/firewall/firewall.script
else
    sudo iptables -F
fi

파일을 /etc/init.d/firewall로 만든후에
update-rc.d firewall start 20 2 3 4 5 . stop 99 0 1 6 .

로 등록하면 서버가 부팅될때 자동으로 firewall이 실행된다.

삭제는
update-rc.d firewall remove

로 삭제 하면된다.