2011년 11월 28일 월요일

APM 설치법.

APM 설치법.

알림. 아래  방법대로 설치시 PHP 5.1.6으로 설치 된다. 이러저러한 이유로 상위 버전으로 설치하고 싶다면 이 글의 제일 아래부분을 확인 하자.
apacahe, mysql, php순으로 APM 설치
# yum -y install httpd
# yum -y install mysql
# yum -y install php
보통 알아서 빠른 미러를 찾아 의존성까지 확인해서 연계된 필수 패키지까지 알아서 설치 해준다.

관련 라이브러리 설치
# yum -y install gd gd-devel
# yum -y install libpng libpng-devel
cd ..# yum -y install libjpeg libjpeg-devel
# yum -y install freetype freetype-devel
# yum -y install fontconfig  fontconfig-devel
# yum -y install libxml2 libxml2-devel
# yum -y install openssl openssl-devel
# yum -y install gmp gmp-devel
# yum -y install mhash mhash-devel
# yum -y install libmcrypt libmcrypt-devel
# yum -y install mysql-server
# yum -y install php-mysql
# yum -y install php-devel
# yum -y install php-mbstring
# yum -y install php-mhash
이 밖에도 pear나 pear-MDB2등 원하는 패키지를 설치 할 수도 있다.
* 제일 처음에 나오는 gd를 설치하면 뒤에 나오는 libjpeg, libpng, freetype, fontconfig과 같이 자동으로 설치되지만 혹시나 하는 분들은 확인겸 설치 해보기 바란다.

MYSQL 설정
이제 설정을 하자... 안하고 패스 해도 됨
mysql에서 사용할 환경 설정파일을 복사해야 하는데 시스템에 따라서 좀 다르다. 아래를 참조하자
my-huge.cnf       1GB 이상 메모리
my-large.cnf       512MB ~ 1GBSTART
my-medium.cnf  128MB ~ 256MB
my-small.cnf      64MB 이하
# cp /usr/share/mysql/my-large.cnf /etc/my.cnf
본인은 Virtual Box로 설치해봤는데 512여서 large를 사용했다.

기본관리 db를 설정하고, 권한지정도 해주자
# /usr/bin/mysql_install_db --user=mysql
# chown -R root /usr/bin/
# chgrp -R mysql /usr/bin/
# chown -R mysql /var/lib/mysql/

이제 콘솔에서도 mysql 명령들을 사용 할 수 있도록 등록해보자.
# vi ~/.bash_profile
PATH부분에 다음과 같이 추가 한다
PATH=$PATH:$HOME/bin:/usr/bin

지루한 mysql 설정은 이제 다 끝났다 다만 재부팅 후 자동으로 실행 할 수 있도록 등록만 해주면 된다. 일단 확인 해보자.
# chkconfig  --list | grep mysqld
mysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off
위와 같이 나오지 않는다면?
# chkconfig --level 2345 mysqld on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 mysql를 시작하고 루트 비밀번호를 설정하고 동작 하는지 확인한 후 mysql은 끝내자.
# /etc/rc.d/init.d/mysqld start
# /usr/bin/mysqladmin -uroot password 비번

동작은 하나?
# netstat -lntp
위와 같은 명령에서 보이는 결과중 "mysqld"  ":::3306" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

PHP설정
# vi /etc/httpd/conf.d/php.conf
아래 두줄을 찾아 아래처럼 고친다.

AddHandler php5-script .php .htm .html
AddType application/x-httpd-php-source .phps .php .html .html

수정이 끝났으면 저장 하고  같은 방법으로 httpd.conf 파일을 아래와 같은 부분들을 찾아 수정/추가한다.
# vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80 (자신의 서버이름이니 알아서 적당히)
  => ServerName localhost:80

Options Indexes FollowSymLinks
 => Options -Indexes

AllowOverride None
 => AllowOverride All

DirectoryIndex index.html index.html.var
=> DirectoryIndex index.html index.htm index.php

AddType application/x-gzip .gz .tgz 을 찾아 그 다음줄에 아래 두줄  내용 추가
AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc
AddType application/x-httpd-php-source .phps

#AddHandler cgi-script .cgi 주석 삭제
 => AddHandler cgi-script .cgi


*  사실 vi vim 리눅스의 에디터는 윈도우즈에 익숙한 사람에게는 없이 당황하게 만드는 소프트웨어중 하나인데(적응만 한다면 없는 최고의 에디터라지만 적응은 요원하기만 하다!) 쉽게 사용을 원한다면 "#yum -y install mc" 해서 mc 사용해 보라 조금은 편하게 사용 있을것이다.
사실 제일 편한건 콘솔에서 직접 하는 것보다 뿌띠로 열어서  하는것과 FTP 수정 하는것이다.. 위에서 FTP로는 에디트플러스 같은걸로 바로 수정하면 되니까..

여기서 수정하고 추가 할것이 많기는 많다. 엄청.. 인터넷을 뒤져 보면 이부분에 대한 많은 분서를 접할 있을 거라고 생각 되는데   문서가 부족하다고 느끼는 사람이 있거나 입맛에 맞는 설정을 원하는 사람은 맛보기로 설치 해보고 제대로 공부 해보자. 친절히 설명된 많은 문서를 있을것이다(검색의 수고로움이 더해져야 하지만.. 대부분 자기는 안다고 휘리릭 넘어가는 경우가 많다....)

마지막으로 apache!
설정 것은 일단 하나뿐이고 어렵 않으니 후딱하도록 하자!

특별히 다른 것은 없고 부팅 자동 실행이 되도록 되어 있나 확인만 해보자
# chkconfig  --list | grep httpd
httpd  0:off 1:off 2:on 3:on 4:on 5:on 6:off
역시나 위처럼 나오지 않는다면 아래와 같이 설정한다.
# chkconfig --level 2345 httpd on
다시 확인해 보면 원하는 대로 되어 있을 것이다.

이제 apache를 시작해보고 동작이 되는지 확인한다
# /usr/sbin/apachectl start
# netstat -lntp
위와 같은 명령에서 보이는 결과중 "httpd"  ":::80" 뭐 이런 글귀가 보이면 정상적으로 동작한다고 생각해도 된다.

끝으로 시스템을 전체적으로 업데이트 해보자
# yum update
주루룩 뭔가 많이 지나가고 업데이트 된다. 끝났다면
# reboot
으로 시스템을 재시작 함으로서 모든 설치 과정은 끝난다.

SVN 저장소의 디렉토리 배치

SVN 저장소의 디렉토리 배치

출처는 짬뽕이라 원작자분이 요청하시면 바로 출처올리겠습니다.
Versioning
In this article I have followed Major.Minor.Build.Revision versioning practice which is very standard, details of it are as under:
In this version number is physically represented as a four-part string with the following format:
<major>.<minor>.<build>.<revision>
For example, version 1.5.60204.0 indicates 1 as the major version, 5 as the minor version, 60204 as the build number, and 0 as the revision number.
  • Major: Major releases introduce major new technologies and changes that render previous production releases obsolete.
  • Minor: Minor releases depict feature level enhancements. Addition of features between releases result in incremented minor release.
  • Build: This is auto-generated number, assigned for each build on a day basis. It has YMMDD format, So Feb 04th 2006 shall be 60204.
  • Note: Build number for revisions (read bug-fixes to production releases) shall remain same as originally released in production.
  • Revision: This is reset to zero, for each new major/minor version released. For all later bug-fixes, patches to releases that reach production, this number shall sequentially increment.



SVN 사용중 branche 나 tag 가 필요해서 정리하다가, Subversion-HOWTO 에서 해당 내용만 발췌합니다.

저장소에 바로 소스를 넣어 프로젝트를 진행 할 수 있습니다. 그렇지만 버전 관리 시스템에서 권장하는 디렉토리 배치 방법이 있습니다.
-- http://svn.samplerepository.org/svn/sample
+--+---+- branches
   |   +--+- dav-mirror
   |   |  |--- src
   |   |  |--- doc
   |   |  +--- Makefile
   |   |
   |   +--- svn-push
   |   +--- svnserve-thread-pools
   |
   +---+- tags
   |   +--- 0.10
   |   +--+- 0.10.1
   |   |  |--- src
   |   |  |--- doc
   |   |  +--- Makefile
   |   |
   |   +--- 0.20
   |   +--- 0.30
   |   +--- 0.50
   |   +--- 1.01
   |
   +---+- trunk
       |--- src
       |--- doc
       +--- Makefile


위 에 보이는 구조는 보통 자주 사용되는 디렉토리 구조입니다. 저장소 디렉토리 아래 branches, tags, trunk 라는 3개의 디렉토리가 있습니다. 이 디렉토리들은 각각의 용도가 있습니다. CVS는 branch와 tag를 위한 명령이 따로 존재 하지만. Subversion의 경우 명령이 있긴 하지만 단순한 디렉토리 복사와 같은 효과를 냅니다.

trunk : 단어 자체의 뜻은 본체 부분, 나무줄기, 몸통 등 입니다. 프로젝트에서 가장 중심이 되는 디렉토리입니다. 모든 프로그램 개발 작업은 trunk 디렉토리에서 이루어집니다. 그래서 위의 구조에서 trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어가게 됩니다.

branches : 나무줄기(trunk)에서 뻗어져 나온 나무 가지를 뜻합니다. trunk 디렉토리에서 프로그램을 개발하다 보면 큰 프로젝트에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 생깁니다. 프로젝트안의 작은 프로젝트라고 생각하면 됩니다. branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.

tags : tag는 꼬리표라는 뜻을 가지고 있습니다. 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈를 할 때 0.1, 0.2, 1.0 하는 식으로 버전을 붙여 발표하게 되는데 그때그때 발표한 소스를 따로 저장하는 공간입니다. 위에서 보면 tags 디렉토리 아래에는 버전명으로 디렉토리가 만들어져 있습니다.

팔로어