'인터넷서버 운영'에 해당되는 글 21건

  1. 2011/07/25 리눅스 CentOS 에 형상관리 서버 Subversion 운영하기 (1)
  2. 2009/08/21 문서 지향 데이타베이스인 MongoDB를 PHP로 다뤄보자
  3. 2009/08/15 단조롭지만 빠르고 쉽게 확장할 수 있는 데이타베이스 MongoDB
  4. 2009/01/10 제로보드XE에서 오동작이 생기는 경우 메모
  5. 2008/12/14 MySQL 프로시져(PROCEDURE) 활용 샘플 소스 코드
  6. 2008/12/13 [CentOS] Apache,PHP,MySQL,Zend,OpenSSL,PEAR 설치 메모
  7. 2008/11/13 Apache,PHP,MySQL,Zend,OpenSSL 설치 동영상 (1)
  8. 2008/10/26 리눅스 서버 CentOS5 설치 화면 캡쳐 동영상
  9. 2008/09/17 웹프로그래머의 웹사이트 순위 이야기
  10. 2008/05/02 웹 솔루션 개발시 고려해야 할 것.
  11. 2008/04/24 중대형 웹사이트를 운영하기 위한 서버구축 시스템 구성도. (2)
  12. 2007/09/15 블로그 접속이 안되서 원인을 분석을 했더니 ... (1)
  13. 2007/09/08 리눅스를 애용한지 10년이 넘었습니다. (8)
  14. 2007/08/25 오늘 공개 보드로 플래시 커뮤니티를 만들었습니다. (2)
  15. 2007/08/10 리눅스 또는 유닉스 주요 명령어와 프로그램
  16. 2007/08/08 서버를 운영하다 발생하는 난감한 사고들. (6)
  17. 2007/06/04 스타크래프트 배틀넷 서버 설치 동영상 (9)
  18. 2007/06/02 빠른 블로그 운영을 위해 새 서버를 샀다.^^ (4)
  19. 2007/05/29 리눅스(LINUX) 명령어 및 시연 동영상 #1 (4)
  20. 2007/05/16 쌍둥이 블로그 만들기, 블로그 해부하는 재미... (1)
  21. 2007/05/04 IDC센타에 있는 내 개인 리눅스 서버 운영 history (7)

형상관리 서버를 운영하고 싶다면 윈도우즈에서 Visual SVN Server 를 설치해서 손쉽게 운영할 수 있으나 리눅스에 설치해야할 경우도 있습니다.
CentOS 리눅스 환경에서 Subversion 서버를 설치해보려면 아래 내용을 참고하세요.

# adduser svn

# yum install subversion

# chkconfig --add svnserve
# chkconfig svnserve on

# vi /etc/sysconfig/svnserve
OPTIONS="-d -r /home/svn"

# service svnserve start

# svnadmin create --fs-type fsfs /home/svn/test
# svnadmin create /home/svn/project

# cd /home/svn/test/conf

# vi svnserve.conf
anon-access = none
auth-access = write
password-db = passwd

# vi passwd
[users]
lion=lion_password
tiger=tiger_password

# chown -Rv svn.svn /home/svn

# service svnserve restart

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
또는
# iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
# service iptables save

# service iptables restart

# ps -aux | grep svnserv
# netstat -ant | grep 3690

# chmod -R g+w,g+r /home/svn
# usermod -a -G svn lion



2011/07/25 17:37 2011/07/25 17:37

댓글을 달아 주세요

  1. 中古トラック 2012/06/01 17:32  댓글주소  수정/삭제  댓글쓰기

    CentOS를 사용하고 있습니다. 많은 참고가되었습니다.

문서 지향 데이타베이스(Document Oriented Database) 몽고디비(MongoDB)를 테스트 하기 위한 PHP 소스 코드를 준비했습니다. 아래 소스 코드를 살펴보시면 PHP로 몽고디비에 접근하는 방법을 파악할 수 있습니다. 이에 대해 좀더 알아보고 싶다면 PHP 튜토리얼PHP 메뉴얼을 체크해보세요. 그리고 직접 테스트 해보려면 PHP 드라이버 설치를 해야 합니다. 드라이버도 설치하고 문서도 숙지해서 개발 환경을 갖추었다면 몽고디비를 실전에 응용해보는 것은 어떨까요? 거대한 자료 묶음을 빠르게 제어한다는 이 데이타베이스의 장점을 살려 위키(Wiki)나 블로그 또는 트위터 같은 소셜 네트워크 사이트를 만들어 봐도 좋은 것 같네요.

[MongoDB 테스트를 위한 소스 코드]
<?
include "Mongo/Auth.php";

$auth = new MongoAuth("192.168.10.123:27017");
$auth->login("desk", "tiger", "ti_password");
if (!$auth->loggedIn) {
      echo $auth->error;
      exit;
}

$coll = $auth->db->selectCollection("person.data");
$coll->drop();

if (!$coll->count()) {
      $obj = array( "name" => "kim", "age" => 21 );
      $coll->insert($obj);

      $obj = array( "name" => "song", "age" => 18 );
      $coll->insert($obj);

      $obj = array( "name" => "lee", "age" => 23 );
      $coll->insert($obj);

      $obj = array( "name" => "han", "age" => 18 );
      $coll->insert($obj);

      $obj = array( "name" => "choi", "age" => 19 );
      $coll->insert($obj);

      $coll->ensureIndex(array('name' => 1), true);
      $coll->ensureIndex(array('age' => 1), false);

      $coll->deleteIndex("age");
}

$obj = array( '$set' => array("age"=>29 ) );
$coll->update(array("name"=>"choi"),$obj);

$obj = array( '$set' => array("age"=>21, "sex"=>"f", "tags"=>array()) );
$coll->update(array("name"=>"choi"),$obj);

$obj = array( '$push' => array("tags" => "game"));
$coll->update(array("name"=>"choi"),$obj);

$obj = array( '$push' => array("tags" => "movie"));
$coll->update(array("name"=>"choi"),$obj);

$obj = array( '$pushAll' => array("tags" => array("music","sports")));
$coll->update(array("name"=>"choi"),$obj);

$obj = array( '$pullAll' => array("tags" => array("music","love")));
$coll->update(array("name"=>"choi"),$obj);

$query = array('age'=>array('$gt'=>18));
$cursor = $coll->find($query)->sort(array("age"=>-1));

displayCursor($cursor);

$auth->logout();

exit;

function displayCursor($cursor){
      while ($cursor->hasNext()) {
            $obj = $cursor->getNext();
            echo displayObject($obj);
            echo "<br>\n";
      }
}

function displayObject($obj){
      $str = json_encode($obj);
      $str = preg_replace('/"([a-z_][a-z0-9_]*)":/','<FONT color=#888888>\1</FONT>:', $str);
      $str = preg_replace('/"([a-z_][a-z0-9_]*)"/','<FONT color=#cc3333>"\1"</FONT>', $str);
      $str = str_replace(Array(',',':','{','}'), Array(', &nbsp; ',' : ','{ ',' }'), $str);
      return $str;
}
?>

[MongoDB 테스트 실행 결과]
{ _id : { },   name : "lee",   age : 23 }
{ _id : { },   name : "kim",   age : 21 }
{ _id : { },   name : "choi",   age : 21,   sex : "f",   tags : ["game",   "movie",   "sports"] }

웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/587

2009/08/21 00:19 2009/08/21 00:19

댓글을 달아 주세요

경제적인 시스템 구축 비용으로 거대한 데이타 묶음을 빠르게 조작 및 검색할 수 있는 데이타베이스, 비교적 손쉽고 유연하게 확장할 수 있는 크라우드 컴퓨팅 환경에 적합한 데이터베이스로 key-value 데이타베이스가 근래에 언급되고 있습니다. 때로는 이것을 문서지향 데이타베이스(document-oriented database) 라고도 소개되며 지금 실험할 몽고디비(MongoDB) 역시 이러한 형태의 데이타베이스라고 볼 수 있습니다.
몽고디비는 JSON 문서 객체를 BSON 바이너리 형태로 저장하기 때문에 저장 공간과 처리 시간이라는 측면에서 효율이 높은 편이며 JSON 문서 객체를 사용하고 있으므로 제약 없이 가변 구조를 가진 데이터 객체를 교환할 수 있으므로 개발 언어와 플랫폼에 독립적으로 운용될 수 있습니다. 몽고디비는 문서지향 데이터베이스가 가지는 장점을 실현할 수 있는 여러가지 시스템 중에 하나이며 비교적 처리 속도가 빠르고 확장하기 편하며 거대한 데이터 컬렉션을 안정적이면서 효과적으로 다루게 해줄것입니다. 그러나 이러한 장점이 있는 반면 일반적으로 널리 사용되고 있는 관계형 데이타베이스(RDBMS)의 장점을 포기해야 하므로 구현하고자 하는 시스템에 맞추어 적절하게 활용하면 되겠습니다.
아래 동영상은 몽고디비를 실험하는 과정을 캡쳐한 것입니다. 몽고디비를 설치하고 사용자를 추가하고 디비 접근 권한을 획득하며 데이터 컬렉션을 조작하고 검색하고 인덱싱하는 과정 등을 담았습니다. 이 과정을 따라해 보시면 어느 정도의 몽고디비 사용법을 익힐 수 있습니다.



문서지향 데이타베이스의 역사는 그리 길지 않다. 몽고디비 또한 현재 베타버전으로 배포되고 있으므로 사용하려면 선택하기 전에 충분한 테스트를 해야만 할 것입니다. 만약 맘에 차지 않는다면 Couchdb, mongoDB, Redis, TokyoCabinet 등과 같은 또 다른 데이타베이스들을 체크해 볼 수도 있겠습니다. 참고로 다음 포스팅에는 PHP로 몽고디비를 접근하고 제어하는 내용으로 써보려고 합니다.

cd /usr/local/
wget http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz
tar xvzf mongodb-linux-i686-latest.tgz
mv mongodb-linux-i686-2009-08-13 mongo
vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mongo/bin
source ~/.bash_profile
mkdir -p /data/db

mongod run 1>/dev/null &

mongo

use admin
db.addUser("dba", "dba_password")
db.system.users.find()

use desk
show dbs
show collections
db.addUser("tiger", "ti_password")
show dbs
show collections
db.addUser("lion", "li_password")
db.system.users.find()

use admin
db.shutdownServer()

exit

mongod --auth 1>/dev/null &

mongo

use admin
db.auth("dba", "dba_password")
db.system.users.find()

use desk
db.system.users.remove( { user: "lion" } )
db.system.users.find()

exit

mongo desk

db.auth("tiger", "ti_password")
show collections
db.addUser("puma", "pu_password")
db.addUser("fox", "fo_password")
db.system.users.find()
db.system.users.find( { user: "puma" } )
show users
db.getCollectionNames()

db.person.data.save( { name : "tiger", age : 21 } )
show collections
db.person.data.save( { name : "lion", age : 25, sex : "f" } )
db.person.data.save( { name : "eagle", age : 23 } )
db.person.data.save( { name : "puma", age : 22, sex : "m" } )
db.person.data.save( { name : "fox", age : 23 } )
db.person.data.find()
db.person.data.find().sort( { age : -1 } ).limit(3)
db.person.data.find( { name : "puma" } )
db.person.data.find( { age : { $gt : 22 } } )
db.person.data.find( { age : { $ne : 23 } } )
db.person.data.find( { age : { $in : [21,25] } } )
db.person.data.group( { key: { age:true }, cond: { }, reduce: function(obj,prev) { prev.total++; }, initial: { total: 0 } });

db.system.indexes.find()
db.person.data.ensureIndex( { "age" : 1 } )
db.system.indexes.find()
db.person.data.find().sort( { age : -1 } ).explain()
db.person.data.dropIndex( { "age" : 1 } );
db.system.indexes.find()
db.person.data.ensureIndex( { "age" : 1 } )
db.person.data.ensureIndex( { "age" : 1, "name" : -1 } )
db.system.indexes.find()
db.person.data.dropIndexes();
db.system.indexes.find()
db.person.data.drop()
show collections
db.dropDatabase()
show collections

use admin
db.auth("dba", "dba_password")
show dbs
db.shutdownServer()
exit



웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/586
2009/08/15 00:00 2009/08/15 00:00

댓글을 달아 주세요