source src1 { type = mysql sql_host = localhost sql_user = user sql_pass = password sql_db = database sql_port = 3306 sql_sock = /var/run/mysqld/mysqld.sock sql_query_pre = SET NAMES utf8 sql_query_range = SELECT MIN(idx),MAX(idx) FROM test sql_range_step = 1024 sql_query = \ SELECT idx, type, search \ FROM test \ WHERE idx >= $start AND idx <= $end sql_attr_uint = type sql_ranged_throttle = 0 } source src1throttled : src1 { sql_ranged_throttle = 100 } index test1 { source = src1 path = /usr/local/sphinx/var/data/test1 docinfo = extern mlock = 0 morphology = none min_word_len = 1 charset_type = utf-8 charset_table = min_prefix_len = 0 min_infix_len = 2 enable_star = 1 ngram_len = 1 html_strip = 0 } index test1stemmed : test1 { path = /usr/local/sphinx/var/data/test1stemmed morphology = stem_en } index dist1 { type = distributed local = test1 local = test1stemmed agent = localhost:3313:remote1 agent = localhost:3314:remote2,remote3 agent_connect_timeout = 1000 agent_query_timeout = 3000 } indexer { mem_limit = 256M } searchd { address = 127.0.0.1 port = 3312 log = /usr/local/sphinx/var/log/searchd.log query_log = /usr/local/sphinx/var/log/query.log read_timeout = 5 max_children = 2048 pid_file = /usr/local/sphinx/var/log/searchd.pid max_matches = 10000 seamless_rotate = 1 preopen_indexes = 0 unlink_old = 1 }
2007년 12월 30일 일요일
sphinx test
sphinx.conf 파일(한글도 물론 잘된다!)
2007년 12월 23일 일요일
sphinxSE install
오늘 드디어 미뤄 왔던 mysql에 sphinx-engine을 패치해서 소스 컴파일을 하는 작업을 했다.(이놈의 귀차니즘...)
우선 sphinx를 압축해제 후에 mysqlse/sphinx-version.diff 에 맞는 파일을 mysql 소스 디렉토리에 복사한다.
우선 sphinx를 압축해제 후에 mysqlse/sphinx-version.diff 에 맞는 파일을 mysql 소스 디렉토리에 복사한다.
# patch -p1 < sphinx-version.diff # BUILD/autorun.sh # mkdir sql/sphinxsphinx 소스파일을 sql/sphinx로 복사
# CC=gcc # CFLAGS="-O3 -march=i686 -fomit-frame-pointer -pipe -felide-constructors -fno-exceptions -fno-rtti" # CXXFLAGS="-O3 -march=i686 -felide -constructors -fno-execptions -fno-rtti" # CXXLDFLAGS="" # ./configure --prefix=/usr/local/mysql \ --enable-assembler \ --with-extra-charsets=complex \ --enable-thread-safe-client \ --with-big-tables \ --enable-local-infile \ --with-sphinx-storage-engine \ --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \ --localstatedir=/usr/local/mysql/data \ --with-user=mysql \ --with-charset=utf8 \ --with-extra-charsets=complex \ --with-mysqld-ldflags=-all-static \ --with-client-ldflags=-all-static (--with-plugins=sphinx in 5.1) # make; make install aclocal: configure.in: 486: macro `AM_PROG_AS' not found in library Can't execute aclocal위와같이 build시 에러가 난다면 automake를 1.9이상으로 업데이트하고 (apt-get install automake1.9) 아래와 같이 automake를 변경한다.
update-alternatives --set automake /usr/bin/automake-1.9yacc.sql 관련 에러가 나면 bison package를 설치하면된다. 이 package는 A parser generator that is compatible with Y 요거란다. :) sphinx/ha_sphinx.cc:273: error: extra qualification ‘CSphSEFilter::’ on member ‘CSphSEFilter’ 이 에러는 확인해본결과 0.9.7 버전에 있는 sphinx 64bit 관련된 버그란다. o.9.7 이상을 사용하던가 아니면 patch를 하면된다. (패치는 못찾았다. --; 아니 귀찮아서 안찾았다.) 이제 문제는 현재 서버에는 ubuntu package로 mysql-server가 설치되어있다. 이미 설치되어있는걸 지우지 않고 mysql server를 하나 더 사용할려고 한다. 대충 찾아본 결과 my.cnf만 실행할때 설정해주면 된다고 한다. 우선 기본적으로 행할 것은
# groupadd mysql # useradd -g mysql -d /dev/null -s /usr/sbin/nologin mysql # /usr/local/mysql/bin/mysql_install_db 로 databases를 생성한다. # mkdir /var/run/mysql # mkdir /data/mysql # mkdir /var/log/mysql # chgrp mysql /var/run/mysql # chmod g+rw /var/run/mysql # chgrp mysql /var/log/mysql # chmod g+rw /var/log/mysql # chown -R root . # chown -R mysql /data/mysql # chgrp -R mysql . # chgrp -R mysql /data/mysql # chown -R root /usr/local/mysql # chown -R mysql /usr/local/mysql/data # chgrp -R mysql /usr/local/mysql이번에 sock 디렉토리를 /usr/local/mysql/tmp로 설정했다.
# mkdir /usr/local/mysql/tmp # chown -R mysql.mysql /usr/local/mysql/tmpmy.cnf파일은 /usr/local/mysql/share/mysql/my-large.cnf 를 my.cnf로 복사해서 사용했다. my.cnf에 추가한 사항은
[client] port = 3307 socket = /usr/local/mysql/tmp/mysql.sock [mysqld] user = mysql port = 3307 pid-file = /usr/local/mysql/tmp/mysql.pid socket = /usr/local/mysql/tmp/mysql.sock default-character-set = utf8스크립트 등록
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql라이브러리 등록
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf && ldconfig정도 추가했다. 기타 에러가 발생할경우 /usr/local/mysql/data/hostname.err파일을 살펴보면 된다. 실행방법은 mysql -hlocalhost -u사용자 -p -P(설정한포트)로 실행 하면된다. 현재 에러 없이 가장 잘되는 버전은 mysql-5.0.22.tar.gz와 sphinx-0.9.8-svn-r985.tar.gz 이버전 두개를 사용했을때 설치가 잘되었다. mysql-5.1 버전을 사용했을때는 innodb engine이 설치가 되지 않았었다. configure할때 옵션을 추가해야 가능하다.
mysql> show engines; +------------+---------+----------------------------------------------------------------+ Engine Support Comment +------------+---------+----------------------------------------------------------------+ MyISAM DEFAULT Default engine as of MySQL 3.23 with great performance MEMORY YES Hash based, stored in memory, useful for temporary tables InnoDB YES Supports transactions, row-level locking, and foreign keys BerkeleyDB NO Supports transactions and page-level locking BLACKHOLE NO /dev/null storage engine (anything you write to it disappears) EXAMPLE NO Example storage engine ARCHIVE NO Archive storage engine CSV NO CSV storage engine SPHINX YES Sphinx storage engine 0.9.8 ndbcluster NO Clustered, fault-tolerant, memory-based tables FEDERATED NO Federated MySQL storage engine MRG_MYISAM YES Collection of identical MyISAM tables ISAM NO Obsolete storage engine +------------+---------+----------------------------------------------------------------+
2007년 10월 30일 화요일
fckeditor 설정
1. 메뉴관리설정 :
이 파일만 수정하면 사용하는데 지장이 없는거 같다.
사용방법은
html 파일에서는
editor를 새로 생성한다. 위치는 보통 글쓰는 곳에 다가 하면 editor가 보인다.
자바스크립트에서는
값을 받아서 처리하는 페이지에서는
로 받아서 처리하면된다.
fckeditor/fckconfig.js2. 이미지 업로드 관련
- 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/
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를 설치하고 나서 간단한 프로그램을 작성해 보면
compile 방법은 gcc -lmysqlclient -o ex ex.c 로 컴파일 해서 실행하면 된다.
이때 mysql library 관련해서는
참조 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/
이 패키지가 없으면 /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 파일을 만든다.
이 파일을 서버가 시작될때 자동으로 등록 할려면
파일을 /etc/init.d/firewall로 만든후에
로 등록하면 서버가 부팅될때 자동으로 firewall이 실행된다.
삭제는
로 삭제 하면된다.
#!/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
로 삭제 하면된다.
2007년 9월 5일 수요일
lucene
http://lucene.apache.org/java/docs/demo2.html
설치 방법은
0) 우선 JDK 1.4 version 이상, Ant 1.6.2 version이상 설치한다
1) http://www.apache.org/dyn/closer.cgi/lucene/java/ zip, tar.gz 둘중 한개 파일을 받는다.
2) build.xml 파일 설정을 한다.
3) shell 상에서 'ant' 명령 실행(rebuild시에는 ant javacc)
4) CLASSPATH에 lucene-core-*.jar과 lucene-demos-*.jar를 등록한다.
이 부분에 대해서는 압축해제한 디렉토리에서 BUILD.txt 파일에 보면 자세히 설명이 되어있다.
테스트로 홈디렉토리에 있는 계정하나를 테스트 해봤는데 잘나오더라.
관련 : url
Lucene Home http://jakarta.apache.org/lucene/
Lucene FAQ http://lucene.sourceforge.net/cgi-bin/faq/faqmanager.cgi
Lucene Getting Started http://jakarta.apache.org/lucene/docs/gettingstarted.html
고수로 가는 지름길 Jakarta Project 가메출판사 최범균 저
QueryParser Rules http://today.java.net/pub/a/today/2003/11/07/QueryParserRules.html Give your Web site its own search engine using Lucene http://builder.com.com/5100-6389-5054799.html
Lucene Intro http://today.java.net/pub/a/today/2003/07/30/LuceneIntro.html
Parsing, indexing, and searching XML with Digester and Lucene http://www-106.ibm.com/developerworks/library/j-lucene/
Advanced Text Indexing with Lucene http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html
Introduction to Text Indexing with Apache Jakarta Lucene http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html
The Lucene search engine Powerful flexible and free http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-lucene.html
설치 방법은
0) 우선 JDK 1.4 version 이상, Ant 1.6.2 version이상 설치한다
1) http://www.apache.org/dyn/closer.cgi/lucene/java/ zip, tar.gz 둘중 한개 파일을 받는다.
2) build.xml 파일 설정을 한다.
3) shell 상에서 'ant' 명령 실행(rebuild시에는 ant javacc)
4) CLASSPATH에 lucene-core-*.jar과 lucene-demos-*.jar를 등록한다.
이 부분에 대해서는 압축해제한 디렉토리에서 BUILD.txt 파일에 보면 자세히 설명이 되어있다.
테스트로 홈디렉토리에 있는 계정하나를 테스트 해봤는데 잘나오더라.
관련 : url
Lucene Home http://jakarta.apache.org/lucene/
Lucene FAQ http://lucene.sourceforge.net/cgi-bin/faq/faqmanager.cgi
Lucene Getting Started http://jakarta.apache.org/lucene/docs/gettingstarted.html
고수로 가는 지름길 Jakarta Project 가메출판사 최범균 저
QueryParser Rules http://today.java.net/pub/a/today/2003/11/07/QueryParserRules.html Give your Web site its own search engine using Lucene http://builder.com.com/5100-6389-5054799.html
Lucene Intro http://today.java.net/pub/a/today/2003/07/30/LuceneIntro.html
Parsing, indexing, and searching XML with Digester and Lucene http://www-106.ibm.com/developerworks/library/j-lucene/
Advanced Text Indexing with Lucene http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html
Introduction to Text Indexing with Apache Jakarta Lucene http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html
The Lucene search engine Powerful flexible and free http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-lucene.html
2007년 9월 2일 일요일
ubuntu java eclipse
자바는 sun-java6-* 관련한 패키지를 설치하면 된다. 현재 사용되고 있는 자바를 보려면
로 확인한다.
명령어를 내린다.
명령으로 기본적인 설정을할 수 있다.
eclipse, eclipse-jdt를 설치하고 /etc/eclipse/java_home 파일에 /usr/lib/jvm/java-6-sun을 추가하고 사용하면 된다. ;-)
update-java-alternatives -l
로 확인한다.
sudo update-alternatives -s java-6-sun
명령어를 내린다.
sudo update-alternatives --config java sudo update-alternatives --config jar
명령으로 기본적인 설정을할 수 있다.
eclipse, eclipse-jdt를 설치하고 /etc/eclipse/java_home 파일에 /usr/lib/jvm/java-6-sun을 추가하고 사용하면 된다. ;-)
2007년 7월 3일 화요일
oracle
oracle 10g pro*c, proc*c++ 관련 자료
참조 url : http://docs.huihoo.com/oracle/docs/B19306_01/appdev.102/b14407/toc.htm
참조 url : http://docs.huihoo.com/oracle/docs/B19306_01/appdev.102/b14407/toc.htm
2007년 7월 1일 일요일
pyserial
python으로 시리얼 프로그램을 할려고 한다.
검색을 해보니 pyserial을 설치하면 쉽게(?) 프로그램이 가능한거 같다.
우선 pyserial을 설치한 후
이런 에러가 나온다.(한번에 되는게 없네.)
검색을 해보니 Python Extensions for Windows 인가 관련된게 설치가 안되서 그런거 같다.
http://starship.python.net/crew/mhammond/win32/Downloads.html 검색을 해보니 이 페이지에서 python win32api관련된걸 다운받아 설치를 할 수있다.
설치를 하고 나니 에러 없이 잘된다.
관련 url :
http://pyserial.sourceforge.net/ 현재 이페이지에 있는 example 페이지가 열리지 않는다. :-(
검색을 해보니 pyserial을 설치하면 쉽게(?) 프로그램이 가능한거 같다.
우선 pyserial을 설치한 후
>>> import serial ImportError: No module named win32file
이런 에러가 나온다.(한번에 되는게 없네.)
검색을 해보니 Python Extensions for Windows 인가 관련된게 설치가 안되서 그런거 같다.
http://starship.python.net/crew/mhammond/win32/Downloads.html 검색을 해보니 이 페이지에서 python win32api관련된걸 다운받아 설치를 할 수있다.
설치를 하고 나니 에러 없이 잘된다.
관련 url :
http://pyserial.sourceforge.net/ 현재 이페이지에 있는 example 페이지가 열리지 않는다. :-(
2007년 6월 20일 수요일
apache ssl 관련
ssl은 신용카드 정보, 의료 기록, 법률 문서와 전자 상거래 애플리케이션과 같은 가장 기밀을 다루는 트랜잭션(transaction)들의 전송에 이용되는 것을 허용할 수 있도록 하는 요건을 실현하기 위한 것이다. 라고 http://kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-2.html 여기에 나온다.
우선 비밀키를 사용하려면 openssl를 설치해야한다.
간단한 명령
생성된 파일들을 apache ssl관련 디렉토리에 이동 시킨다.
apache config 파일을 설정해야 하는데 ssl 443번을 이용하기에 가상호스트로 설정을 한다.
가상 호스트 설정에서
이 상위에 나오고 그 다음에 필요한 사항들을 설정해주면 된다.
특정 디렉토리만 ssl을 사용하게 되면 편하게 사용할 수 있을 것이다.
StdEnvVars에 대해서는 When this option is enabled, the standard set of SSL related CGI/SSI environment variables are created. This per default is disabled for performance reasons, because the information extraction step is a rather expensive operation. So one usually enables this option for CGI and SSI requests only. 이렇다는데...
마무리로 인증서를 설정하고 나서 apache를 실행이나 재시작 하는경우 ssl관련 패스워드를 물어본다. 이 부분을 없앨려면 openssl rsa -in filename.key-out new_filename.key으로 key파일을 변경해서 사용하면 된다.
관련 url :
http://kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-2.html
우선 비밀키를 사용하려면 openssl를 설치해야한다.
간단한 명령
# openssl genrsa -des3 -out server.key 1024 # openssl rsa -in server.key -out server.key.insecure # openssl req -new -key server.key -out server.csr # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
생성된 파일들을 apache ssl관련 디렉토리에 이동 시킨다.
apache config 파일을 설정해야 하는데 ssl 443번을 이용하기에 가상호스트로 설정을 한다.
가상 호스트 설정에서
SSLEngine ON SSLCertificateFile crt 파일 절대 경로명 SSLCertificateKeyFile key파일 절대 경로명
이 상위에 나오고 그 다음에 필요한 사항들을 설정해주면 된다.
특정 디렉토리만 ssl을 사용하게 되면 편하게 사용할 수 있을 것이다.
(Directory "~/~/~/ssl") SSLRequireSSL (/Directory) (Directory "~/~/~/cgi-bin) SSLOptions +StdEnvVars (/Directory)
StdEnvVars에 대해서는 When this option is enabled, the standard set of SSL related CGI/SSI environment variables are created. This per default is disabled for performance reasons, because the information extraction step is a rather expensive operation. So one usually enables this option for CGI and SSI requests only. 이렇다는데...
마무리로 인증서를 설정하고 나서 apache를 실행이나 재시작 하는경우 ssl관련 패스워드를 물어본다. 이 부분을 없앨려면 openssl rsa -in filename.key-out new_filename.key으로 key파일을 변경해서 사용하면 된다.
관련 url :
http://kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-2.html
2007년 5월 31일 목요일
ubuntu oracle-xe php
oracle과 php연동을 위해서 oci8관련된걸 설치해야 한다.
우선 oracle이 정상적으로 설치되었다는 가정하에 /opt/oracle/instantclient 디렉토리를 만든후에 여기에서 client관련된 파일을 다운로드(basic과 sdk) 한다.
다운로드 받은 파일을 /opt/oracle/instnatclient 에 압축을 푼다음에
심볼릭 링크를 건다.
그후 apt-get install 로 php-pear패키지와 php5-dev패키지를 설치한다.
oci8을 install하는데 sudo pecl install oci8을 실행시키면 경로를 입력하라고 나오는데 이때 $oracle_home을 입력한다.
/etc/php5/apache2/php.ini에 extention=oci8.so 추가후에 phpinfo(); 로 oci8관련된 항목이 있는지 확인한다.
그 후에 테스트 코드를 만들어서 확인하면 되는데 OCIEnvNlsCreate() failed 이와 같은 에러가 난다면 아파치 실행시킬때 oracle 계정과 관련된 환경변수들을 제대로 인식 못한 것이기 때문에 오라클 환경변수를 아파치 실행할때 export시켜서 실행시키면 해결할 수 있다. /usr/sbin/apache2ctl 파일에 오라클 환경변수를 추가한다.
관련 url :
http://samgerstenzang.com/blog/archives/2006/09/howto-installing-oracle-xe-on-ubuntu-with-php
우선 oracle이 정상적으로 설치되었다는 가정하에 /opt/oracle/instantclient 디렉토리를 만든후에 여기에서 client관련된 파일을 다운로드(basic과 sdk) 한다.
다운로드 받은 파일을 /opt/oracle/instnatclient 에 압축을 푼다음에
ln -s libclntsh.so.10.1 libclntsh.so ln -s libocci.so.10.1 libocci.so
심볼릭 링크를 건다.
그후 apt-get install 로 php-pear패키지와 php5-dev패키지를 설치한다.
oci8을 install하는데 sudo pecl install oci8을 실행시키면 경로를 입력하라고 나오는데 이때 $oracle_home을 입력한다.
/etc/php5/apache2/php.ini에 extention=oci8.so 추가후에 phpinfo(); 로 oci8관련된 항목이 있는지 확인한다.
그 후에 테스트 코드를 만들어서 확인하면 되는데 OCIEnvNlsCreate() failed 이와 같은 에러가 난다면 아파치 실행시킬때 oracle 계정과 관련된 환경변수들을 제대로 인식 못한 것이기 때문에 오라클 환경변수를 아파치 실행할때 export시켜서 실행시키면 해결할 수 있다. /usr/sbin/apache2ctl 파일에 오라클 환경변수를 추가한다.
관련 url :
http://samgerstenzang.com/blog/archives/2006/09/howto-installing-oracle-xe-on-ubuntu-with-php
oracle database xe install
http://www.oracle.com/global/kr/download/seminar/2005/dbxe/dbxe_faq_kor.pdf
이 파일을 읽어보면 중소기업이나 개인등이 무료로 이용할 수 있는 라이센스이다.
ubuntu에서 설치를 해봤는데 별 이상없이 바로 설치 되었다.
접속은 sqldeveloper로 해봤는데 접속은 바로 성공.
sources.list 에 deb http://oss.oracle.com/debian unstable main non-free 추가후에 apt-get update; apt-get install oracle-xe로 설치한다.(아주 쉽다.) 이때 에러가 난다면 wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -를 실행한다.
스왑 파티션 용량이 작으면 늘려주고 /etc/init.d/oracle-xe configure로 설정을 한다.
문제는 shell에서 sqlplus /as sysdba로 했을때 ora-12705 관련 에러가 났다.
nls_lang 문제 인거 같아 찾아 보는데 $ORACLE_HOME/bin/nls_lang.sh 파일이 있는데 이 파일은 $ORACLE_HOME/bin/oracle_evn.sh 파일이 nls_lang.sh를 실행시킨다. 이때 무슨 문제인지는 모르나 env로 확인해봤을때 NLS_LANG 값이 제대로 입력되지 않았다. 그래서 sqldeveloper로 오라클 서버로 연결한 다음에
sql문을 실행시킨다음에 결과값을 NLS_LANG 값을 입력 시켰더니 해결되었다.
한글 관련해서는 ~/.bashrc 에 export NLS_LANG='KOREAN_KOREA.AL32UTF8'을 추가한 다음에 nls_lang.sh 파일에 있는 nls_lang=${nlslang}.${charset}를 .bashrc 파일에 있는것과 동일하게 맞춰주면 된다.
관련 url : http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html
이 파일을 읽어보면 중소기업이나 개인등이 무료로 이용할 수 있는 라이센스이다.
ubuntu에서 설치를 해봤는데 별 이상없이 바로 설치 되었다.
접속은 sqldeveloper로 해봤는데 접속은 바로 성공.
sources.list 에 deb http://oss.oracle.com/debian unstable main non-free 추가후에 apt-get update; apt-get install oracle-xe로 설치한다.(아주 쉽다.) 이때 에러가 난다면 wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -를 실행한다.
스왑 파티션 용량이 작으면 늘려주고 /etc/init.d/oracle-xe configure로 설정을 한다.
문제는 shell에서 sqlplus /as sysdba로 했을때 ora-12705 관련 에러가 났다.
nls_lang 문제 인거 같아 찾아 보는데 $ORACLE_HOME/bin/nls_lang.sh 파일이 있는데 이 파일은 $ORACLE_HOME/bin/oracle_evn.sh 파일이 nls_lang.sh를 실행시킨다. 이때 무슨 문제인지는 모르나 env로 확인해봤을때 NLS_LANG 값이 제대로 입력되지 않았다. 그래서 sqldeveloper로 오라클 서버로 연결한 다음에
select USERENV('LANGUAGE') FROM DUAL;
sql문을 실행시킨다음에 결과값을 NLS_LANG 값을 입력 시켰더니 해결되었다.
한글 관련해서는 ~/.bashrc 에 export NLS_LANG='KOREAN_KOREA.AL32UTF8'을 추가한 다음에 nls_lang.sh 파일에 있는 nls_lang=${nlslang}.${charset}를 .bashrc 파일에 있는것과 동일하게 맞춰주면 된다.
관련 url : http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html
피드 구독하기:
글 (Atom)