2012년 11월 1일 목요일

리눅스에서 파일 소유자, 권한 일괄 변경

외장 하드디스크 등에 저장한 자료, 특히 NTFS 타입 등으로 복사를 하면 소유자와 권한이 변경되는 경우가 존재한다. 이를 일괄적으로 변경하는 방법은 다음과 같다.

sudo chown -R user:group *
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;


소유자를 user 로, 그룹을 group 으로 하고, 현재 디렉토리 이후를 모두 변경시키는 문장이 첫번째이다.
현재 디렉토리 이후의 모든 디렉토리를 755(rwxr-xr-x)로 바꾸고, 현재 디렉토리 이후의 모든 파일을 644(rw-r--r--)로 바꾸는 것이 두번째와 세번째이다. 755와 644는 각각 디렉토리와 파일의 기본값이기도 하다.

2012년 10월 29일 월요일

내 컴퓨터 목록

회사 업무용 메인 노트북 : Gigabyte U2442N Dual (Libra)

회사 업무용 서브 노트북 : LG XNote Z1 Advanced (Aries)

폐기 일보직전 노트북 : Compaq (Virgo)


그 외 메인 데스크탑PC, 파일서버PC, 맥북프로PC 가 있는데...이름이 기억이 안남...

2012년 9월 12일 수요일

Redmine 1.4.x with Oracle Linux 6

Oracle Linux 에서 Redmine 1.4 stable 버젼 설치를 하는 방법입니다. 최대한 RPM 등을 이용합니다.



1. Public YUM 설치

오라클의 공개 yum 저장소인 public yum(http://public-yum.oracle.com)을 사용하도록 설정. 구입했을 경우 Unbreakable Linux Network 의 자원을 이용할 수 있으므로 무시할 수 있음.
Oracle DBMS 을 설치할 때 oracle-validated 라는 것을 public yum 을 통해 설치 가능하므로 알아두는 것이 이롭겠다.

아래 명령으로 저장소를 추가할 수 있고, Oracle Linux 에는 기본적으로 포함되어 있다.

cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-ol6.repo





2. 3rd Party 저장소 추가 (옵션)

기본 제공 YUM 저장소에는 충분한 패키지가 포함되어 있지 않다. 3rd Party YUM Repository 을 통해서 더 많은 패키지를 사용할 수 있다.

아래의 명령어로 저장소의 우선순위를 정해줄 수 있는 플러그인을 설치한다.

yum install yum-plugin-priorities

설치 후 저장소 설정 파일에 아래와 같은 형식으로 수치를 넣어서 우선순위를 정할 수 있다. N 대신에 숫자를 넣는데, 숫자가 클수록 후순위다. EPEL, repoforge 와 같은 3rd Party 저장소는 10 이상으로 하자.

priority=N






3. Subversion, MySQL, ImageMagick, Ruby, Gem, Rake, Rails 설치

아래 명령으로 MySQL 와 gcc, Ruby, Ruby Gem, Rake 등 의존성 있는 패키지까지 함께 설치한다.

yum install subversion, mysql mysql-devel ImageMagick ImageMagick-devel ruby ruby-devel rubygems rubygem-rake gcc

그 후 rails 와 ruby-mysql2 을 gem 으로 설치한다.

gem install rails mysql2 bundler rmagick

MySQL 은 항상 구동되어야 하므로 서비스에 등록하고 실행한다.

chkconfig mysqld on
service mysqld start





4. MySQL 사용자와 DB 생성

MySQL 설치 후 아무런 보안정책이 적용되지 않은 상태이다. root 사용자의 비밀번호를 지정하고, 원격접속 등을 막기 위해 아래 명령을 실행한다.

/usr/bin/mysql_secure_installaion

그 후 아래 명령으로 MySQL 클라이언트로 로컬 DBMS 에 접속한다.

mysql -u root -p

접속 후아래 명령으로 MySQL 에 Redmine 을 위한 사용자와 DB 을 생성해준다.

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by '(비밀번호)';
grant all privileges on redmine.* to 'redmine'@'localhost';

모두 적용한 뒤 quit 명령으로 빠져나온다.





5. Redmine 1.4 최신버젼 다운로드

아래 명령으로 /usr/local/redmine-1.4/ 에 Subversion 을 이용해서 최신버젼을 가져온다.

cd /usr/local/; svn co http://redmine.rubyforge.org/svn/branches/1.4-stable redmine-1.4

그 후 /usr/local/redmine-1.4/config/ 으로 이동해서 database.yml.example 파일을 database.yml 로 복사한 뒤 production 부분을 수정해준다.
username 와 password 만 수정하면 될 것이다.





6. DB 초기화

아래 명령으로 DB 을 초기화한다. 마지막 기초 데이터 로딩 시 ko 을 입력하여 한국어 기반으로 설치한다.

bundle install --without development test postgresql sqlite
rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data





7. 리눅스 디렉토리/파일 권한 변경

Redmine 설치 경로의 files/,log/, tmp/, public/plugin_assets/ 은 사용자를 root 에서 다른 사용자로 변경하고(redmine 사용자 혹은 apache httpd 사용자) 디렉토리 권한을 755 로 바꿔준다.





8. Ruby WEBrick 웹서버 테스트

아래 명령으로 Ruby 의 웹서버를 통해 실행한다. 3000 번 포트로 실행되며, 웹브라우져로 확인해본다. 기본 계정은 admin/admin 이다.

cd /usr/local/redmine-1.4/; ruby script/server webrick -e production




9. Apache HTTPD 연동

Apache HTTPD 와 연동하기 위해서는 Passenger 나 Mongrel(mongrel-cluster), Thin 로 연동해야 한다.

먼저 Apache HTTPD 설치를 위해 아래의 명령을 실행한다.

yum install httpd httpd-devel

Passenger 는 연동이 단순하다. 아래 명령으로 설치한 뒤, 화면 상의 메시지에 따라 HTTPD 의 설정 파일에 내용을 추가한다.

gem install passenger
passenger-install-apache2-module

Mongrel 은 Cluster 을 지원한다. 가장 파워풀한 설정이다. Mongrel 로 각각의 서버를 띄운 뒤 HTTPD 의 ProxyPass 을 이용해서 페이지를 띄우는 방식이다.
Thin 은 Ruby 서버를 띄워서 이를 연결하는 방식으로, Passenger 을 쓰는 것이 더 나아 보인다.