[Subversion] svnsync on windows

[Manual/server]

세 개의 trac + svn 프로젝트 관리 서버를 다루고 있다.
그리고 현재 백업 자동화를 시도하는 중이다.
때문에 svnsync 기능을 사용하게 되었는데,
svnsync init ... 명령어를 사용하면서 아래와 같은 에러 메세지를 마주하게 되었다.

svnsync: Revprop change blocked by pre-revprop-change hook (exit code 1) with no output.

윈도우 프로젝트 필수 유틸리티와 서브버전에 대한 몇 가지 책들, 그리고 인터넷 문서들을 참고 했지만,
문제는 해결되지 않았다.

고심한 끝에 나는 해결책을 찾을 수 있었다.
그것은 (저장소)\hooks\pre-revprop-change.bat 파일에 다음의 코드를 삽입하는 것이다.

exit 0

이렇게 나는 문제를 해결했다.

이제 초기화를 끝냈으면, svnsync sync ... 명령을 사용해야 하는데,
다시 다음과 같은 에러 메세지를 마주하게 되었다.

svnsync: Commit blocked by start-commit hook (exit code 1) with no output.

이에 대한 해결책도 위와 유사하다.
(저장소)\hooks\start-commit.bat 파일에 다음의 코드를 삽입한다.

exit 0

이것으로 로컬 PC의 svn 저장소에 원격지 서버의 svn 데이터를 백업받을 수 있게 되었다.

하지만, 아직도 왜 책과 인터넷 문서에서는 단순히 비어있는 *.bat 파일 만으로도 동작하고
내 서버에서는 그렇지 않았는지는 알 수 없다.

2008/12/20 01:33 2008/12/20 01:33

APM on Windows : 03 PHP 설치

[Manual/server]

03.1 PHP?

PHP는 무료로 제공되는 공개 소프트웨어로 Server Side Script의 일종이다. Server Side Script는 HTML이나 CSS, XML 등과 달리 서버에서 스크립트를 선 처리하고 그 결과를 클라이언트에게 전송함으로써 사용자에게 작업 내용을 숨기고 동적인 페이지를 생성하는데 유용하다. 이 외에도 JSP, ASP, Ruby, Python 등도 애용되나 소규모 홈페이지 및 블로그 등을 위한 오픈 소스 프리 소프트웨어들은 PHP를 많이 사용하고 있다. PHP에 대한 더 자세한 사항은 따로 공부하길 바라며, PHP의 공식 홈페이지는 이곳이다.


03.2 최신 설치파일 얻기

아래 그림은 PHP의 공식 홈페이지 이다. 좌측 상단에 표시된 Downloads 메뉴를 선택한다.

사용자 삽입 이미지

메뉴를 통해 다음과 같은 페이지로 들어오면, Windows Binaries 항목의 PHP 5.16 zip package 항목을 다운로드 한다.

사용자 삽입 이미지


03.3 설치하기

아래와 같이 적당한 위치에 다운로드 한 zip 파일의 압축을 풀어준다.

사용자 삽입 이미지

위와 같이 압축을 푼 상태에서 php.ini-dist 파일을 찾아 php.ini 라는 이름으로 복사한다. 복사한 php.ini 파일을 메모장으로 열어 아래 그림과 같이 extension_dir 항목을 ./ext 로 설정해 준다.

사용자 삽입 이미지
 
; Directory in which the loadable extensions (modules) reside.
extension_dir = "./ext"

아래 그림과 같이 사용하고자 하는 적절한 확장 기능에 대한 모듈들의 주석을 제거해 준다. 각 확장 모듈의 기능은 PHP 홈페이지나 인터넷을 통해 확인하기 바란다.

사용자 삽입 이미지

편집한 php.ini 파일을 저장한 후 아래와 같이 ‘내컴퓨터 속성 -> 고급 -> 환경변수 -> 시스템 변수 -> Path’의 항목에 PHP의 경로를 등록한다.

사용자 삽입 이미지


03.4 Apache 연동하기


PHP에 대한 작업이 다 끝났으면, 아파치 서버가 PHP 스크립트를 인식하고 처리하기 위한 작업을 해줘야 한다. 아파치가 설치된 폴더에서 conf라는 폴더를 열면 안에  httpd.conf 라는 파일이 있다. 메모장으로 연 후 아래 그림과 같이 표시 된 한 줄을 추가한다.

사용자 삽입 이미지

LoadModule php5_module "C:/Server/APM/PHP/php5apache2_2.dll"

아래 그림과 같이 PHP 스크립트를 인식시킬 파일의 확장자 및 기타 설정을 등록한다. 아래의 스크립트는 훨씬 간단하게 축약하여 기술할 수도 있지만, 개인적으로는 보기 깔끔하게 아래와 같이 적는다.

사용자 삽입 이미지

    PHPIniDir "C:/Server/APM/PHP/"
    ScriptAlias /php/ "C:/Server/APM/PHP/"
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .html
    AddType application/x-httpd-php .htm
    AddType application/x-httpd-php .inc
    Action application/x-httpd-php "/php/php.exe"

설정을 모두 끝냈다면 httpd.conf 파일을 저장하고 아파치를 다시 시작한다.


03.5 설치 확인하기


아파치의 메인 페이지가 있는 폴더에 다음과 같은 PHP 스크립트 파일을 만든다.

사용자 삽입 이미지

http://localhost/text.php 또는 http://[서버주소]/test.php 를 브라우저에 치면 아래와 같은 페이지가 보일 것이다. 아래와 같은 페이지가 나타나지 않는다면 제대로 설치 또는 연동이 되지 않은 것이다.

사용자 삽입 이미지

이것으로 Windows 시스템에서 Apache + PHP + MySQL을 설치하는 모든 작업이 완료 되었다.
2008/08/09 21:44 2008/08/09 21:44
TAG. ,

요즘 멤버십에서...

[김준형/일상]
2008년도 하반기 네트워크 부장을 맡음과 동시에
프로젝트 형상 관리 시스템을 새로이 구축하는 작업을 진행하였습니다.

Trac, Subversion, Windows PowerShell 재미있군요.
새롭게 한 일들이 너무 많은데 포스팅 할 시간이 없어 서글픕니다.
ㅠ,.ㅠ

나에게 자유를~
2008/08/08 07:08 2008/08/08 07:08

Google Code Jam 2008 - Qualification Round 통과

[김준형/Geek]

한국 시간으로 지난 2008년 7월 17일(목) 오전 8:00부터 24시간 동안
Google Code Jam 2008의 Qualification Round가 열렸다.

개인적으로 금요일에 삼성전자 임원 면접이 있었기 때문에
GCJ2008에 대해 까맣게 잊고 있다가
면접 준비를 하던 새벽 5시에 우연히 대회 링크를 열게 되었다.

일정상 금요일 아침 면접에 7:30까지 대기실 집합이었고
그런 이유로 GCJ2008 당일 함께 면접 보는 멤버십 회원들과 서울에 올라가야 했기 때문에
24시간이라는 총 대회 시간을 활용하지 못하는게 아쉬웠으나 운명이려니 하고 대충 손대 보았다.
(사실 면접 준비 안하고 이거 잡고 끙끙 댄게 미친짓이 아니었을지...)
결과는 뜻 밖의 통과... 1라운드 진출...

그러나 운도 지지리 없지...
1라운드 날짜가 내 일본 여행의 한복판에 걸려있다.
제길슨~ -_-;;

역시 GCJ2008은 나와 인연이 없는 것인가...
진행시간 약 2시간이라 함으로 기회가 된다면
1라운드 당일 내 컴퓨터에 원격 접속을 통해 작업을 하고 싶으나... 가능하려나?
아마 동경 디즈니랜드에서 겁나게 놀고 있을 듯... ㄷㄷㄷ

내년 이맘때면 삼성전자 입사로 연수원에 쳐박혀 있을 듯 한데...
난 왜 항상 정보가 느린건지... ㅎㅎ

1라운드 진출 기념으로 메일 캡쳐한 그림이나 올려놔야지...

사용자 삽입 이미지사용자 삽입 이미지

2008/07/24 04:56 2008/07/24 04:56

APM on Windows : 02 MySQL 설치

[Manual/server]

02.1 MySQL ?

MySQL은 무료 데이터베이스에서 시작하여 현재 유료/무료 두 가지 정책으로 배포되고 있는 가장 대표적인 무료 데이터베이스 프로그램이다. 국내에서 가장 많이 쓰이는 설치형 웹서비스들인 제로보드, 그누보드, 텍스트큐브(구 테터툴즈) 등이 MySQL을 이용하도록 되어 있다. 자세한 사항은 구글링 해보길 바란다. MySQL의 공식 홈페이지는 이곳이다.

02.2 최신 설치파일 얻기

아래 그림은 MySQL 공식 홈페이지 이다. 아래 그림에 표시된 바와 같이 좌측 상단의 Downloads를 선택한다.

사용자 삽입 이미지


아래 그림과 같이 MySQL Community Server를 선택한다. Enterprise는 돈 내고 써야한다. -_-

사용자 삽입 이미지

스크롤을 내리면 적당한 형태의 패키지 목록이 나열된 테이블이 나타난다. Windows Essential에 해당하는 곳의 Pick a mirror 링크를 클릭한다.

사용자 삽입 이미지

마지막으로 아래와 같은 등록 페이지가 나타난다. 영어로 등록해야 한다고 해서 쫄지말자. 자세히 보면 아래에
'No, thanks ~ '라는 문구가 있다. 이 곳을 클릭하면 등록하지 않아도 된다. 개인적으로는 등록을 해 놓았지만, 등록이 필요없는 사람은 등록하지 않아도 된다.

사용자 삽입 이미지

이제 정말 다운로드 받을 수 있는 페이지가 나타났다. HTTP/FTP 어느 쪽을 선택해도 받는데는 문제 없다.

사용자 삽입 이미지


02.3 설치하기

다음은 설치 시작 화면이다. Next를 눌러준다.

사용자 삽입 이미지


다음은 설치 옵션을 묻는 화면이다. Custom을 선택해야만 설치 경로를 수정할 수 있다. Custom을 선택 한 후 Apache와 같은 폴더에 설치한다.

사용자 삽입 이미지

설치 파일은 MySQL을 이용해 개발하는 것이 목적이 아니라면, 기본 옵션을 그대로 놔둔다. 설치 위치는 Apache와 같은 곳으로 한다.

사용자 삽입 이미지

사용자 삽입 이미지

Install을 누르면 설치가 시작 된다.

사용자 삽입 이미지

사용자 삽입 이미지

다음과 같이 설치 종료 화면이 나타나면, 'Configure the MySQL Server now'라는 곳에 체크가 되어 있다. 그대로 놔두고 'Finish'를 누른다.

사용자 삽입 이미지

02.4 설정하기

아래는 설정 화면의 시작이다.

사용자 삽입 이미지

다음은 기본 설정으로 사용할지 세부설정으로 사용할지를 묻는다. 기본 설정으로 해도 큰 문제는 없다. 개인적으로는 세부설정을 모두 맞춰준다.

사용자 삽입 이미지


[Detailed Configuration] 자세히 보기

다음은 윈도우 시스템 등록에 관한 화면이다. 'Include Bin Directory in Windows PATH'라는 항목에 기본적으로 체크가 풀려있다. PATH에 등록해 놓ㅇ면 여러모로 좋으므로 체크 해 준 후 넘어가도록 한다.

사용자 삽입 이미지

다음 화면은 사용자 계정 설정 화면이다. root의 패스워드를 설정한다. 'Create An Anonymous Account'에는 체크하지 않는다.

사용자 삽입 이미지

다음은 설정의 마지막 화면이다. Execute를 누르면 설정을 저장하고 MySQL을 실행한다. 정상적으로 실행된다면, 네 개의 원에 모두 파란 체크표시가 나타난다.

사용자 삽입 이미지사용자 삽입 이미지

다음은 작업 관리자 창이다. mysqld-nt.exe 프로세스가 돌고 있는 것을 확인할 수 있다.

사용자 삽입 이미지

2008/07/15 16:23 2008/07/15 16:23
TAG. ,

ActiveX 설치 확인하기

[Web Programming/JavaScript]

ActiveX를 사용하다 보면 설치되지 않았을 때,
페이지 위에 노란 줄이 보이면서 ActiveX 자리에 보기 흉하게 엑박이 뜨는 것을 볼 수 있다.

좀 더 미려한 처리를 위해
설치 되지 않았을 때 예정된 페이지로 리다이렉트 하거나
적절한 문구의 팝업을 띄워주면 어떨까?

이릉 위해서는 먼저 ActiveX가 설치 되었는지를 확인해야 한다.
다음은 이를 확인하는 스크립트이다.

<script>
var isInstalled = true;
try
{
 var myobj = new ActiveXObject("serverName.typeName.1");
 isInstalled = (myobj != null);
}
catch (e)
{
 isInstalled = false;
}
if (!isInstalled)
 alert('설치되지 않았습니다.');
</script>

실질적으로는 null 검사 전에 new에서 exception이 발생하여 catch에서 걸리게 된다.
전에 코드 정리 중 try/catch를 제거한 뒤 동작이 안한다고 고민하며 고생한 적이 있다.
주의하기 바란다.

2008/06/30 09:47 2008/06/30 09:47

[인생] 배려 : 마음을 움직이는 힘

[추천도서/자기개발]
제목 : 배려 : 마음을 움직이는 힘
출판사 : 위즈덤하우스
저자 : 한상복

간결하고 읽기 쉽고 따뜻하고?
언제나와 같이 동류의 많은 이야기들과 똑같은 이야기...

생각하게 된다.
'누가 내 치즈를 옮겼을까?', '선물', '긍정의 힘' 들과 같은 책들...
읽고나면 너무나도 당연한 이야기들...

과거에 이러한 책들이 없었던 것은 아니지만,
근래에 이러한 책들의 종류도 많아지고
베스트셀러에 진입하는 비율도 압도적으로 늘었다.

우리는 인간으로써 당연했던 것들이 당연하지 않게 된 세상에 도달한 것일까?
이러한 책들이 베스트셀러가 되었다는 것은 그만큼 읽은 사람이 많다는 것일텐데,
세상은 왜 더더욱 각박해져 가는지...

당신의 마음에 배려와 긍정이 남아있다면 조그마한 만족감을 느낄 것이고,
각박한 세상에 진저리나고 악에 바친 사람이라면,
불쾌하고 코웃음이 나오는 책...
2008/06/30 06:34 2008/06/30 06:34

APM on Windows : 01 Apache 설치

[Manual/server]

01.1 Apache ?

Apache(이하 아파치)는 아파치 재단에서 진행하고 있는 오픈 소스 웹 서버로써 MS의 IIS와 함께 가장 널리 쓰이는 웹서버 중 하나이다. 아파치에 대한 자세한 정보는 인터넷에 질리도록 많기 때문에 자세한 언급은 생략하도록 하겠다. 아파치의 공식 홈페이지는 이곳이다.


01.2 최신 설치파일 얻기

아래 그림은 아파치 공식 홈페이지 이다. 표시된 바와 같이 우측 상단의 HTTP Sever를 선택한다.

사용자 삽입 이미지

아래 그림에서 표시된 바와 같이 'Apache 2.2.9 Release' 탭의 Download 링크를 클릭하다.

사용자 삽입 이미지

우리는 Windows에 설치할 예정이기 때문에 윈도우 설치 파일을 받아야 한다.
그림에 표시된 'Win32 Binary including OpenSSL 0.9.8h' 링크를 선택하여 설치 파일을 받는다.

사용자 삽입 이미지


01.3 설치하기

다음은 설치 시작화면이다. Next를 눌러준다.

사용자 삽입 이미지

다음은 설치 동의를 묻는 화면이다. 설치하고 싶다면 당연히 accept를 선택 하도록 한다.

사용자 삽입 이미지

다음은 서버의 도메인 설정을 위한 화면이다. 이곳의 내용은 설정 파일에 저장되며, 후에 수정 가능하다.
아래의 도메인 이름은 아무 의미도 없다. 단지, 대전멤버십에서 테스트서버를 셋팅 중이기에 아래와 같이 적어 보았다.

사용자 삽입 이미지

아래는 설치 옵션을 지정하는 화면이다. Typical을 지정하도록 한다.

사용자 삽입 이미지

아래는 설치 경로를 묻는 화면이다. 개인적으로 서버 관련 프로그램들은 'Program Files' 폴더가 아닌 별도의 폴더에 모아 놓는 것을 선호한다. 아래와 같이 경로를 별도로 지정하였다.

사용자 삽입 이미지

사용자 삽입 이미지

이제 아래 화면에서 Install 버튼을 누르면 설치가 시작된다.

사용자 삽입 이미지

설치가 성공적으로 끝나면 다음과 같은 화면이 나온다. Finish를 눌러 설치를 끝마치면 된다.

사용자 삽입 이미지

아래는 설치가 끝난 후 시스템 트레이에 나타나는 제어 아이콘이다. 마우스 왼쪽 버튼을 통해 아파치의 시동과 정지, 재시동을 제어할 수 있다. 좌측은 구동 상태, 우측은 정이 상태의 아이콘을 나타낸다.

사용자 삽입 이미지사용자 삽입 이미지

또는 아래와 같이 시작의 프로그램 메뉴를 통해서도 제어가 가능하다.

사용자 삽입 이미지

아파치가 구동되면 아래 화면과 같이 작업관리자에 httpd.exe가 나타난다. http는 'HTTP DAEMON' 이라는 의미이다.

사용자 삽입 이미지

'http://loaclhost' 또는 'http://IP주소'를 브라우저에 입력하면 'It Works!'라는 메세지를 볼 수 있다.

2008/06/25 10:14 2008/06/25 10:14
TAG. ,

APM on Windows : 00 Intro

[Manual/server]

APM은 Apache, PHP, MySQL의 머리 글자를 차례로 나열한 단어이다.
모두 freeware 이면서 open-source 이기도 하다.
APM은 Linux 환경에서 가장 많이 쓰이는 서버 구성이지만,
윈도우에서도 그 성능 및 편리성은 탁월하다.

APM을 윈도우 환경에서 설치하려는 시도를 시작한 이유는
개인적으로 리눅스에 능숙하지 못했고
동아리 서버 관리를 물려주기에 후배들에게 리눅스는 너무 어려웠으며
보안 및 업데이트 문제를 지속적으로 관리하기에는 본인에게나 후배들에게 내공이 없었기 때문이다.

이 글은 그누보드4를 이용한 동아리 홈페이지 제작에서부터 시작되었다.
이후 제로보드XE로의 마이그레이션과 텍스트큐브의 설치,
그리고 Trac 및 서브버전을 이용한 소프트웨어 형상관리 시스템 구축을 위해 업데이트 되었다.

이 글의 내용은 Windows XP와 Windows Server 2003에서 지속적으로 테스트 되어 왔으며,
마지막 업데이트는 Windows XP를 바탕으로 이루어졌다.
Trac + Subversion 설치에 대한 최종 확인 작업이 끝나는대로
Windows Server 2003에도 적용해 볼 예정이다.

[설치 환경]
Windows XP SP2 + .NET Framework 2.0

Apache 2.2.9
PHP 5.2.6
MySQL 5.0.51b

PHP의 일부 확장 기능은 .NET Framework 2.0이 없을 경우 정상 동작하지 않는다.

2008/06/25 10:04 2008/06/25 10:04

CD-ROM 마운트 하기

[System/Linux]

리눅스에서 디바이스는 윈도우와 달리 마운트라는 형태를 통해 하게 된다.
이에 대해 리눅스 입문 가이드에서는 절대 빠질 수 없는 내용이다.
그러나 처음 CD-ROM을 마운트 할 때는 실제로는 가이드와는 조금 다른 것을 경험했다.
버전의 문제인지는 현재로 조사한바가 없지만, 많은 경우에 경험 할 수 있기에 여기에 적는다.

아래와 같이 '/mnt'를  조사 했을 때, 리스트에 cdrom이 없는 경우가 있다.

# ls /mnt

이런 경우에는 아래와 같이 '/dev'에 cdrom이 있는지 확인한다.

# ls /dev

'/dev'에 cdrom이 있다면,
아래와 같이 '/mnt'에 cdrom을 만든 후 '/dev/cdrom'과 '/mnt/cdrom'을 마운트 한다.

[root@tjssm mnt]# mkdir cdrom
[root@tjssm mnt]# mount /dev/cdrom /mnt/cdrom
[root@tjssm mnt]# ls /mnt/cdrom/

위의 마지막 커맨드와 같이 마운트 후 '/mnt/cdrom'을 조사하면 cdrom의 내용을 읽을 수 있다.

2008/06/13 05:43 2008/06/13 05:43
TAG. , ,