반응형


구성요소

설명

IDLE(Python GUI)

파이썬 표준의 GUI 대화식 인터프리터이다. GUI 부분은 Tcl/tk의 tk를 이용하여 만들어졌다.

Module Docs

파이썬 2.1 이상에서 지원한다. 원하는 모듈을 쉽게 찾을 수 있는 도구이다. 실행하면 작은 창이 나타나는데, 여기에 원하는 검색 단어를 입력하면 관련 모듈을 찾아준다.

Python(Command Line)

도스 창에서 수행되는 파이썬 대화식 인터프리터이다.

Python Manuals

HTML 파일 형식의 파이썬 온라인 문서 모음이다. 여러 가지 문서가 있으나 ‘라이브러리 레퍼런스(Library Reference)’를 주로 참조하게 된다.

Uninstall Python

파이썬을 제거할 때 사용한다.


반응형
반응형

Python 2와 3의 차이

파이썬 버전 2와 3의 차이

* 파이썬 3에서는 모든 변수가 객체(object)로 처리됨

* 이외에 여러가지 내부적 변화가 있지만, 다음 4가지 정도를 알아두면 된다.


1. print문 괄호 필수

Python 2

print( 'hello' )
# hello
print 'hello'
# hello

Python 3

print( 'hello' )
# hello
print 'hello'
# Error! invalid syntax

2. str과 unicode 통일

Python 2

print( type('hello') )
print( type(u'hello') )
# <type 'str'>
# <type 'unicode'>

Python 3

print( type('hello') )
print( type(u'hello') )
# <class 'str'>
# <class 'str'>

→ 모든 문자열은 유니코드인 str



3. int 나누기 결과가 float

Python 2

print( 1/2 )
print( type(1/2) )
# 0
# <type 'int'>

Python 3

print( 1/2 )
print( type(1/2) )
# 0.5
# <class 'float'>

4. long → int로 통일

Python 2

print( 2**30 )
print( type(2**30) )
print( 2**100 )
print( type(2**100) )
# 1073741824
# <type 'int'>
# 1267650600228229401496703205376
# <type 'long'>

Python 3

print( 2**30 )
print( type(2**30) )
print( 2**100 )
print( type(2**100) )
# 1073741824
# <class 'int'>
# 1267650600228229401496703205376
# <class 'int'>


<제타위키 참조>

반응형
반응형

파이썬 설치 환경

윈도우 : windows 7

리눅스 : backtrack5 R3 (debian)

가상화(vmware)에서 진행


1. 윈도우에서 설치

최신 버전을 얻기 위해 파이썬 공식 홈페이지(http://www.python.org) 들어가서 Downloads 탭을 클릭



파이썬 최신버전을 다운로드 한다(글 작성 현재 기준 3.6.2 버전과 2.7.13버전이 최신버전)

설치는 2버전으로 진행을 할 것이며 2버전과 3버전의 차이점은 다음 포스팅에서 참조




설치파일을 다운로드 후 실행을 하면 다음과 같은 설치화면이 보일 것이다.

Install for all users (모든 사용자를 위해 설치)

Install just for me(본인을 위해 설치)

둘 중 어떤 것을 선택해도 상관없으며 선택을 완료하면 Next를 누른다.



설치 디렉토리 경로를 선택하는 화면이며 기본 설치 경로는 C:\Python27\ 이다.



설치 구성 요소를 선택하는 화면이며 기본 선택되어있는 것을 사용하면 된다.



구성 요소 선택이 완료되고 Next를 누르면 다음과 같이 설치가 진행된다.



설치가 완료되면 파이썬이 설치가 된 디렉토리로 들어가서 파이썬을 선택하면 된다.



2. 리눅스에 설치

리눅스 같은 경우 설치를 할때 대부분 python 이 설치가 되어있을 것이다.


터미널 창을 열어 python이 설치가 되어있을 경우 python 명령어를 치면 화면으로 들어가지며 python --version이라고 입력시 설치되어있는 python의 버전을 확인가능하다.



만약 설치가 되어있지 않다면?

debian , ubuntu 계열 : apt-get install python*

Redhat, CentOS 계열 : yum install python*

명령어를 입력하면 쉽게 설치가 가능할 것이다.


반응형
반응형

파이썬(python)은 어떤 언어인가?


- 대화 기능의 인터프리터 언어

파이썬은 객체지향 기능을 강력히 지원하는 대화형 인터프리터 언어다.

인터프리터 언어는 사용하기 쉬우며 컴파일하고, 실행해 보고, 에러를 고치는 기존의 절차에서 벗어나 작성한 다음 바로 테스트하는 간단한 언어다.


- 동적인 데이터 타입 결정 지원

파이썬은 동적으로 데이터 타입을 결정하므로 데이터 타입에 관계없는 일반화된 코드를 작성할 수 있다.


- 플랫폼 독립적 언어

파이썬은 리눅스, 유닉스, 윈도우 95/98/NT/2000, 도스, 등등 대부분의 운영 체제에서 동작한다. 플랫폼에 독립적이며 컴파일하지 않고도(내부적으로 자동 수행됨) 동작하기 때문에 사용하기도 쉽다. 자바와 같이 파이썬 바이트 코드를 생성하므로 소스 코드 없이도 다른 컴퓨터에서 즉시 수행된다.


- 개발 기간 단축에 초점을 둔 언어

파이썬은 실행의 효율성보다는 개발 기간 단축에 초점을 둔 언어다. 실행 속도로 말하자면 어셈블리 언어를 제외하고는 C에 견줄 만한 프로그래밍 언어는 없다. C는 효율적인 코드 생성에 큰 의미를 둔 언어이기 때문이다. 반면 파이썬은 개발의 효율성에 무게 중심을 두고 있다.


- 간단하고 쉬운 문법

파이썬의 간단한 문법과 깨끗하고 깔끔한 구문은 프로그래머는 물론, 프로그래머가 아닌 사람도 배우기 쉽고, 사용하기 쉽다.

일반적인 수학 기호나 다른 프로그래밍 언어에 약간의 경험이 있으면 쉽게 배울 수 있다.

객체지향 언어로서 파이썬은 재사용 가능한 코드를 쉽게 만들 수 있다.


- 고수준의 내장 객체 자료형 제공

파이썬은 일반적으로 사용되는 리스트(List), 사전(Dictionary) 및 문자열(String), 튜플(Tuple) 등의 자료 구조를 제공한다. 이러한 자료형들을 상당히 유연하게 그리고 쉽게 상요할 수 있다.


- 메모리 자동 관리

파이썬은 쓰레기 수집(Garbage Collection) 기능을 사용하여 필요할 때 메모리를 자동 할당하고 사용이 끝났을 때 자동으로 해제한다.


- 팀워크에 유용

파이썬은 모듈 단위의 코드를 쉽게 작성하고 결합할 수 있게 되어 있다. 각 모듈은 메인 프로그램이기도 하면서 다른 모듈의 라이브러리로 사용된다. 독립적으로 테스트된 모듈을 모으면 큰 프로그램이 된다.


- 쉬운 유지 보수

프로그램이란 한 사람에 의해서 완성되는 것이 아니라 여러 사람들에 의하여 유지되고 보수된다. 파이썬의 깔끔함 코드는 이해하기 쉬워서 코드의 유지 보수가 용이하다.


- 많은 수의 라이브러리 제공

파이썬은 이미 만들어진 많은 수의 라이브러리를 제공한다. 정규식 매칭부터 네트워킹까지 프로그래머들이 원하는 웬만한 기능은 라이브러리에서 찾을 수 있다. 또한 서드파티에서 제공하는 수많은 외부 모듈이 있다.


- 짧아지는 코드

파이썬은 일급함수(First Class Function : 1. 함수 객체를 변수에 저장 가능하고, 2. 함수에서 리턴 값으로 사용 가능하며, 3. 함수에 인수로 전달 가능한 함수)를 지원하며, 다중 상속과 지연 바인딩 기능을 지원하는 객체지향 언어다.

예외 처리를 하는 try..except.. 명령어를 제공하며 함수의 인수 전달 방식으로 선택적 인수, 키워드 인수 혹은 임의의 개수의 인수를 지원한다.


- 높은 확장성

파이썬은 일명 접착제 언어(Glue Language)라고도 한다. 다른 언어나 라이브러리에 쉽게 접근해 그들을 사용할 수 있기 때문이다. 가장 보편적인 언어인 C와는 아주 잘 결합된다.

기존의 C 프로그램을 파이썬과 결합시킬 수 있으며 소스 없는 라이브러리도 랩퍼(Wrapper) 함수(라이브러리의 함수를 중간에서 호출해주는 간단한 인터페이스 함수)만 써 주면 파이썬에서 사용할 수 있다.


- 확장(Extending) 및 내장(Embedding) 기능

파이썬은 매우 단순한 응용 프로그램 인터페이스(API)처럼 볼 수 있다. C 등 다른 언어에서 파이썬을 호출 할 수 있고, 그 응용 프로그램에서 내장시켜 사용할 수 있다. 파이썬에서 C 모듈을 호출하는 것도 물론 가능하다.


- 무료

파이썬은 저작권 등록이 되어 있지만 자유롭게 사용하고 배포할 수 있다. 상용으로 사용할 경우에도 마찬가지이다. 물론 소스도 공개되어 있다. 파이썬은 C로 만들어진 언어이다.  



반응형
반응형

1. 크론(cron)이란 무엇인가?

2. crontab 사용법(명령어)

3. crontab 필드의 의미

4. cron 시작/종료


1. 크론(cron)이란 무엇인가?


cron이란 특정날짜, 시간에 맞춰 자동으로 실행시켜주는 자동화를 의미

crontab은 이런 cron을 실행시켜주는 명령어


2. crontab 명령어(옵션)

usage:    crontab [-u user] file

   crontab [-u user] [ -e | -l | -r ]

   (default operation is replace, per 1003.2)

   -e    (edit user's crontab)

   -l    (list user's crontab)

   -r    (delete user's crontab)

   -i    (prompt before deleting user's crontab)

   -s    (selinux context)


crontab -u 유저 -e | -l | -r

해당 유저의 crontab 설정을 할 수 있다.

-e 옵션으로 편집, -l 옵션으로 조회, -r 옵션으로 삭제가 가능하다.


[root@kangtest ~]# crontab -u kjj -l

no crontab for kjj


kjj라는 유저가 사용하고 있는 crontab을 조회한 결과 crontab을 등록하지 않았기 때문에 없다고 나타난다.


crontab -e (crontab 편집)

[root@kangtest ~]# crontab -e

입력하게 되면 vi 같은 편집 창이 나타난다. 이곳에서 cron을 등록 가능하다.


crontab -l (crontab 리스트)

[root@kangtest ~]# crontab -l

00 01 * * * su - root /usr/bin/rdate -s time.bora.net && sbin/hwclock -w

00 16 * * * su - root backup.sh /dev/null 2>&1   

crontab -r (crontab 삭제)

[root@kangtest ~]# crontab -r

입력하게 되면 기존에 등록 되어있던 crontab을 삭제한다.

<확인 결과>

[root@kangtest ~]# crontab -l

no crontab for root

crontab이 존재하지 않는다고 나온다.

⇒ 바로 -r 옵션을 주면 아무런 메시지 출력 없이 바로 삭제되어 버린다. 그래서 지우기전에 확인 메시지를 출력하고 싶다면 -i 옵션을 추가 해준다.


[root@kangtest ~]# crontab -i -r

이렇게 -r 옵션 앞에 -i 옵션을 주게 되면 정말 root’s crontab을 삭제 할 것인지 확인 메시지가 출력된다.

crontab: really delete root's crontab?


[root@kangtest backup]# ls -l

합계 1754108

-rw-r--r-- 1 root root   10826831 2015-01-29 16:00 etc.tar.gz

-rw-r--r-- 1 root root   79908 2015-01-29 16:00 home.tar.gz

-rw-r--r-- 1 root root   20231301 2015-01-20 11:49 mysql.tar.gz

-rw-r--r-- 1 root root 1673271561 2015-01-29 16:13 usr.tar.gz

-rw-r--r-- 1 root root   91781499 2015-01-29 16:14 var.tar.gz



3. crontab 필드의 의미

[root@kangtest ~]# cat /etc/crontab을 입력하게 되면


SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/


# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed


각 필드가 의미하는 바를 나타내고 있다.


첫번째 필드의 * 은 분을 나타내고(0~59분)

두번째 필드의 * 은 시를 의미하고(0~23시)

세번째 필드의 * 은 일을 의미하고(1~31일)

네번째 필드의 * 은 월을 의미하고(1~12월)

다섯번째 필드의 * 은 요일을 의미한다(0~6 일,월,화,수,목,금,토)

→ 일요일은 0 또는 7로 사용할 수도 있다.

여섯번째 필드는 실행시킬 명령을 입력한다.



4. crontab 시작/종료


<cron 시작>

[root@kangtest ~]# /etc/init.d/crond start

crond (을)를 시작 중:                                  [  OK  ]


<cron 종료>

[root@kangtest ~]# /etc/init.d/crond stop

crond 를 정지 중:                                       [  OK  ]




반응형
반응형

scp 명령어를 이용한 파일 복사 및 전송

ssh에서 제공되는 scp 명령어를 통해 로컬서버 ↔ 원격서버 간에 파일을 간단하게 전송할 수 있다.

1. 사용방법

1) 원격 서버 → 로컬 서버로 파일 전송

    # scp [옵션] [계정명]@[원격지IP주소]:[원본 경로 및 파일] [전송받을 위치]


   예제

(1-1) IP 111.222.333.444 서버의 abc라는 계정으로 /home/abc/index.html 파일을

로컬서버 /home/me/ 디렉토리에 전송 받기

           # scp abc@111.222.333.444:/home/abc/index.html /home/me/

2) 로컬 서버 → 원격 서버로 파일 전송

    # scp [옵션] [원본 경로 및 파일] [계정명]@[원격지IP주소]:[전송할 경로]


    (2-1) 로컬서버 /home/me/wow.html 파일을 IP 111.222.333.444 서버의

/home/abc/ 디렉토리에 전송 하기

           # scp /home/me/wow.html abc@111.222.333.444:/home/abc/

 

3) ssh포트를 기본 22번으로 사용하고 있지 않는 서버로의 전송


    (3-1) 2222번인 SSH포트를 사용한다면 아래와 같이 –P 옵션과 포트번호를 넣어준다.

              # scp –P 2222 abc@111.222.333.444:/home/abc/index.html /home/me/

              # scp –P 2222 /home/me/wow.html abc@111.222.333.444:/home/abc/

    [주의사항]

    옵션중에 –P와 –p가 있으니 대/소문자 확인을 하여야 한다.

    -P : 포트번호를 지정함

       -p : 원본파일 수정/사용시간 및 권한을 유지함

    -r : 하위 디렉토리 및 파일 모두 복사함




반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

유닉스 & 리눅스 파일시스템의 종류  (0) 2017.07.19
리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 TCP Wrapper  (0) 2017.07.14
리눅스 레드마인 설치  (0) 2017.07.13
리눅스 파일 속성  (0) 2017.07.13
반응형

TCP-Wrapper는 네트워크 서비스에 관한 트래픽을 제어하고 모니터링 할 수 있는 UNIX 기반의 방화벽 툴이다.


임의의 호스트가 서비스를 요청해 오면 실제 데몬을 구동하기 전에 접속을 허용한 시스템인지 여부를 확인하여 호스트명 및 서비스명을 남긴 후 허가된 시스템은 서비스를 제공하고 허가되지 않은 시스템은 서비스를 차단한다.


기존의 설정파일이나 소스코드에 별다른 수정이 필요치 않고, 정상적인 사용자들에게는 불편을 주지 않으면서도 허가되지 않은 접근의 제한 및 탐지가 가능하기 때문에 많은 서버 관리자들이 이 툴을 사용하고 있다.


TCP wrapper는 두 파일에 의해 제어가 된다

접근 제어 리스트

- hosts.allow : 접근 허용 리스트

- hosts.deny : 접근 제어 리스트


접근 제어 형식

접근 제어 리스트 파일에 아래와 같은 형식으로 데몬, 사용자 등의 리스트를 등록한다.

daemon_list : 하나 이상의 데몬 프로세스 이름

client_list : 하나 또는 그 이상의 호스트 이름, 호스트 어드레스, 패턴/와일드카드

shell_command : 규칙이 매칭될 때 수행되는 shell 명령으로 주로 허가되지 않은 접속 요청이 있을 경우 접속을 요청한 클라이언트의 단말기에 에러 메시지를 출력하거나 특정인에게 메일을 발송하는 형태로 주로 사용함.


와일드카드

지원 기능

와일드카드

ALL

모든 호스트나 모든 서비스에 대해 허가 또는 제한 설정시 사용

ex)hosts.deny 파일에 ALL:ALL 이면 모든 호스들은 어떠한 서비스에도 접근 할 수 없다.

KNOWN

hosts.allow나 hosts.deny 설정에서 알 수 없는 IP의 경우

LOCAL

local 호스트

PARANOID

IP 주소와 일치하지 않는 호스트

UNKNOWN

hosts.allow나 hosts.deny 설정에서 알 수 없는 IP의 경우

연산자

EXCEPT

데몬,클라이언트 둘다 사용할 수 있고 특정한 예외를 두고자 할때 사용

쉘 커맨드 특수문자

%a(%A)

client (server) 호스트 어드레스

%c

Client 정보 : user@host, user@address, 호스트명 또는 주소

%d

데몬 프로세스 이름 (argv[0] value)

%p

데몬 프로세스 id

%u

클라이언트 사용자 이름 또는 unknown

%h(H)

유용하지 않은 client (server) 호스트명 또는 어드레스


접근제어 방법


먼저 hosts.deny에서 모든 호스트들에 대한 접근을 막아놓고 허용할 호스트들은 hosts.allow에 추가시킨다.

반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 원격파일 전송 명령어 scp  (0) 2017.07.14
리눅스 레드마인 설치  (0) 2017.07.13
리눅스 파일 속성  (0) 2017.07.13
커널버전 별 OS 버전  (0) 2017.07.13
반응형

레드마인 이란?

레드마인이란 중소규모의 프로젝트를 진행할 때 프로젝트 관리를 위해 사용하는 웹기반 이슈트래커의 한 종류


* 이슈트래커란

  • 이슈트래커는 오류를 추적하는 것이라는 뜻. 여럿이서 프로젝트를 진행할 때 각각의 역할이 분업 되어있기 마련인데 이 프로젝트를 진행할 때 변동사항, 새로운 기능 추가, 오류 발생 같은 것들을 웹에 올리고 공유하는 것이라고 할 수 있다.


설치방법

1. redmine을 직접 다운받아서 설치

2. bitnami에서 제공하는 bitnami-redmine을 설치


1. redmine을 직접 다운받아서 설치

설치하기에 앞서 설치 테스트 환경은 다음과 같다.


커널 : 2.6.32-573.7.1.el6.x86_64

APM : rpm 패키지로 설치(Apache : 2.2.15, PHP : PHP 5.3.3, mysql : 5.1.73)

Ruby 버전 : ruby 2.0.0p647

redmine : redmine-2.5.0


또한 redmine 공식 홈페이지 설치 가이드를 참고하였음(영문)


1) 전체적인 패키지 업데이트 후 리부팅

   # yum update

   # reboot


2) 레드마인 설치에 필요한 패키지 설치

  # yum -y install zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA


3) Apache와 mysql 설치

  # yum -y install httpd mysql mysql-server


3-1) 서비스 등록 및 실행

  # chkconfig httpd on
  # chkconfig mysqld on
  # service httpd start
  # service mysqld start


3-2) mysql 패스워드 설정

  # /usr/bin/mysql_secure_installation

--------------------------------------------------------------------

Enter current password for root (enter for none):

Set root password? [Y/n] y

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

------------------------------------------------------------------


4) SELinux 설정

 # vi /etc/sysconfig/selinux

----------------------------------------------------------------------------------------------

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled  → disabled로 변경

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

----------------------------------------------------------------------------------------------


5) hostname 설정

 # vi /etc/hosts

-----------------------------------------------------------------------------------------------------------------------------

127.0.0.1  kjjback localhost localhost.localdomain localhost4 localhost4.localdomain4 kjjback

::1     kjjback localhost localhost.localdomain localhost6 localhost6.localdomain6

-----------------------------------------------------------------------------------------------------------------------------


6) iptables 설정

# vi /etc/sysconfig/iptables

--------------------------------------------------------------------------------------------------

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  → 허용

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT → 허용

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

---------------------------------------------------------------------------------------------------

# /etc/init.d/iptables restart


7) PHP ,  phpMyAdmin 설치 및 설정 (phpMyAdmin은 선택)


<PHP>

# yum -y install php php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-soap


# /etc/init.d/httpd restart


8) Ruby 설치

# \curl -L https://get.rvm.io | bash


# source /etc/profile.d/rvm.sh


# rvm list known 입력하면 ruby 버전들이 출력된다.

----------------------------------------------------------------------

[ruby-]1.8.6[-p420]

[ruby-]1.8.7[-head] # security released on head

[ruby-]1.9.1[-p431]

[ruby-]1.9.2[-p330]

[ruby-]1.9.3[-p551]

[ruby-]2.0.0[-p647]

[ruby-]2.1[.7]

[ruby-]2.2[.3]

[ruby-]2.2-head

ruby-head

....

---------------------------------------------------------------------

# rvm install 2.0.0 (문서상에서는 1.9.3버전을 설치하지만 bundle install할때 생기는 rake-cache 때문에 2.0.0으로 설치한다)


인스톨 후 ruby -v 명령어를 입력하면 ruby 버전이 출력된다.

# ruby -v

ruby 2.0.0p647 (2015-08-18 revision 51631) [x86_64-linux]


9) Rubygems 설치

# yum -y install rubygems


10) Passenger 설치 (아피치 연동을 위해)

# gem install passenger

# passenger-install-apache2-module


< passenger.conf 생성>

vi /etc/httpd/conf.d/passenger.conf

-----------------------------------------------------------------------------------------------------------------------------------

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p647/gems/passenger-5.0.20/buildout/apache2/mod_passenger.so

<IfModule mod_passenger.c>

  PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p647/gems/passenger-5.0.20

  PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.0.0-p647/wrappers/ruby

</IfModule>

-----------------------------------------------------------------------------------------------------------------------------------

위의 내용을 추가해주고 아파치를 리스타트 한다.


11) Redmine 데이터베이스 생성

# mysql --user=root --password=root_password_mysql

> create database redmine_db character set utf8;
> create user 'redmine_admin'@'localhost' identified by '패스워드';
> grant all privileges on redmine_db.* to 'redmine_admin'@'localhost';
> quit;


12) Redmine 설치

# cd /var/www

# wget http://www.redmine.org/releases/redmine-2.5.0.tar.gz

# tar xvfz redmine-2.5.0.tar.gz (압축해제)
# mv redmine-2.5.0 redmine (디렉토리 이름 변경)
# rm -rf redmine-2.5.0.tar.gz (압축파일 제거)


< database.yml 파일 수정>

# cd /var/www/redmine/config (디렉토리 이동)
# cp database.yml.example database.yml (샘플파일 복사)
# vi database.yml
---------------------------------------------------------------------------------------

production:

 adapter: mysql2

 database: redmine_db → 변경

 host: localhost

 username: redmine_admin → 변경

 password: "redmine_admin 패스워드" → 변경

 encoding: utf8

-----------------------------------------------------------------------------------

13) Rails 세팅

# cd /var/www/redmine

# gem install bundle

# bundle install

 → rack-cache -v ‘1.3.0’은 ruby-2.0.0 부터 지원하기 때문에 ruby버전이 2.0.0 밑이라면 rack-cache부분에서 에러가 발생한다.

 → 그 외 에러나는 부분은 에러에서 설명하는 바와 같이 gem install 패키지명 -v ‘버전’과 같이 설치하면 된다.


# rake generate_secret_token


14) 테이블 생성 작업

(redmine 디렉토리에서 작업할 것)

# RAILS_ENV=production rake db:migrate (입력했을때 이상이 없다면 아무런 메시지가 출력되지 않는다.)

# RAILS_ENV=production rake redmine:load_default_data

-----------------------------------------------------------------------------------------------------------------------------------

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]

-----------------------------------------------------------------------------------------------------------------------------------

언어 선택창이 나오며 사용할 언어를 선택 바로 enter치면 기본 en로 됨


15) FCGI 활성

# cd /var/www/redmine/public

# mkdir plugin_assets
# cp dispatch.fcgi.example dispatch.fcgi
# cp htaccess.fcgi.example .htaccess


16) FastCGI, Apache 설정

#cd /var/www/

#rpm --import https://fedoraproject.org/static/0608B895.txt

#wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#rpm -ivh epel-release-6-8.noarch.rpm

#yum -y install mod_fcgid

#rm -rf epel-release-6-8.noarch.rpm


17) 데이터 디렉토리 설정
# mkdir -p /opt/redmine/files

# chown -R apache:apache /opt/redmine
# cd /var/www/redmine/config

# cp configuration.yml.example configuration.yml

# vi configuration.yml

---------------------------------------------------------------------------------------------------

# Absolute path to the directory where attachments are stored.

 # The default is the 'files' directory in your Redmine instance.

 # Your Redmine instance needs to have write permission on this

 # directory.

 # Examples:

 # attachments_storage_path: /var/redmine/files

 # attachments_storage_path: D:/redmine/files

 attachments_storage_path: /opt/redmine/files → 해당부분을 추가

-------------------------------------------------------------------------------------------------


18) redmine virtualhost 생성 및 설정

# vi /etc/httpd/conf.d/redmine.conf

--------------------------------------------------------------------------

<VirtualHost *:80>
       ServerName your_domain
       ServerAdmin your_domain@domain.com
       DocumentRoot /var/www/redmine/public/
       ErrorLog logs/redmine_error_log
       <Directory "/var/www/redmine/public/">
               Options Indexes ExecCGI FollowSymLinks
               Order allow,deny
               Allow from all
               AllowOverride all
       </Directory>
</VirtualHost>
--------------------------------------------------------------------------

위의 내용을 추가 해준다.


19) 레드마인 실행

# cd /var/www
# chown -R apache:apache redmine

# chmod -R 755 redmine

# /etc/init.d/ httpd restart


-----------------------------------------------------------------------------------------------------------------------------------

브라우저에서 http:// IP주소를 입력해서 redmine 초기 페이지가 나오는지 확인 해본다.


초기 관리자계정은 admin/admin 이다.


20) Subversion 설치

# mkdir -p /opt/repositories/svn

# chown -R apache:apache /opt/repositories/

# chmod 0755 /opt/repositories

# yum install mod_dav_svn subversion subversion-ruby

# mkdir /usr/lib64/perl5/vendor_perl/Apache
# ln -s /var/www/redmine/extra/svn/Redmine.pm /usr/lib64/perl5/vendor_perl/Apache/Redmine.pm


# vi /etc/httpd/conf.d/subversion.conf

-------------------------------------------------------------------------------------------------------------

PerlLoadModule Apache::Redmine
<Location /svn>
       DAV svn
       SVNParentPath "/opt/repositories/svn"
       SVNListParentPath on
       Order deny,allow
       Deny from all
       Satisfy any
       LimitXMLRequestBody 0
       SVNPathAuthz off
       PerlAccessHandler Apache::Authn::Redmine::access_handler
       PerlAuthenHandler Apache::Authn::Redmine::authen_handler
       AuthType Basic
       AuthName "Subversion Repository"
       Require valid-user
       RedmineDSN "DBI:mysql:database=redmine_db;host=localhost:3306"
       RedmineDbUser "redmine_admin"
       RedmineDbPass "redmine_admin계정 패스워드"
</Location>
-----------------------------------------------------------------------------------------------------------

위의 내용을 추가해준다.



2.  bitnami-redmine 패키지로 설치 (알아서 apache, mysql, php를 설치해줌)

1) https://bitnami.com/stack/redmine/installer 사이트로 가서 OS 버전(Windows, MAC OS, Linux) 중  linux 버전을 선택해서 다운받는다. (32비트, 64비트 선택)

2) wget https://bitnami.com/redirect/to/73667/bitnami-redmine-2.6.7-1-linux-x64-installer.run

3) 받은 bitnami-redmine-2.6.7-0-linux-x64-installer.run 파일의 실행권한을 700으로 준다.

             # chmod 700 bitnami-redmine-2.6.7-0-linux-x64-installer.run

      

-------------------------------------------------------------------------------------------------------------------------------

Redmine version Supported Ruby versions    Rails version used

current trunk ruby 1.9.33, 2.0.02, 2.1, 2.21             Rails 4.20

      3.0 ruby 1.9.33, 2.0.02, 2.1, 2.21             Rails 4.20

      2.6 ruby 1.8.74, 1.9.2, 1.9.33, 2.0.02, 2.1, 2.2, jruby-1.7.6 Rails 3.2

-------------------------------------------------------------------------------------------------------------------------------


< 선택사항 >

※ phpMyAdmin

#rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
#yum install #http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
#yum -y install phpmyadmin


<phpmyadmin.conf 설정>

# vi /etc/httpd/conf.d/phpmyadmin.conf

--------------------------------------------------------------

#

#  Web application to manage MySQL

#


<Directory "/usr/share/phpmyadmin">

 Order Deny,Allow

 Deny from all

 Allow from all  → 변경

</Directory>


Alias /phpmyadmin /usr/share/phpmyadmin

Alias /phpMyAdmin /usr/share/phpmyadmin

Alias /mysqladmin /usr/share/phpmyadmin

-----------------------------------------------------------------


# vi /usr/share/phpmyadmin/config.inc.php 설정

------------------------------------------------------------

/* Authentication type */

$cfg['Servers'][$i]['auth_type'] = 'http';

/* Server parameters */

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['compress'] = false;

----------------------------------------------------------

$cfg['Servers'][$i]['auth_type'] = 'cookie'; → $cfg['Servers'][$i]['auth_type'] = 'http';

로 변경


# /etc/init.d/httpd restart


# 브라우저에서 IP 주소/phpmyadmin 입력 후 인증창이 나오면 ID: root / mysql root 패스워드 입력

 접속 확인


phpMyAdmin 을 8080 포트로 사용하기

redmine이 80포트를 사용하기 때문에 8080포트로 변경해서 사용하는 방법


1. iptables 에서 8080 포트 허용


2. httpd.conf 파일 수정 (vhost 추가)

   # vi /etc/httpd/conf/httpd.conf

-----------------------------------------------------------------

Listen 80

→ Listen 8080 추가

-----------------------------------------------------------------

---------------------------------------------------------------------------------------------------

<VirtualHost *:8080> → 8080포트 설정

DocumentRoot /usr/share/phpmyadmin/  → phpmyadmin 경로

ServerName rm.kjj.kr  → 도메인 이름

</VirtualHost>

---------------------------------------------------------------------------------------------------


3. 아파치 재시작

  # /etc/init.d/httpd restart



※ SMTP 설정

# vi /var/www/redmine/config/configuration.yml

-----------------------------------------------------------------------------

email_delivery:
  delivery_method: :sendmail

----------------------------------------------------------------------------

email_delivery:
  delivery_method: :smtp
  smtp_settings:
       enable_starttls_auto: true
       address: "smtp.gmail.com"
       port: 587
       domain: "smtp.gmail.com"
       authentication: :plain
       user_name: "your_email@gmail.com"
       password: "your_password"



---------------------------------------------------------------------------------------------------------------------------

반응형

'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글

리눅스 스케쥴러 cron  (0) 2017.07.16
리눅스 원격파일 전송 명령어 scp  (0) 2017.07.14
리눅스 TCP Wrapper  (0) 2017.07.14
리눅스 파일 속성  (0) 2017.07.13
커널버전 별 OS 버전  (0) 2017.07.13

+ Recent posts