Project Management 및 Bug Tracking Toolkit이 필요해서
우분투에 레드마인을 설치하기로 했다.

문제는 내가 우분투(리눅스)에 대한 경험과 지식이 없다는....

해서 여기저기 정보를 찾아서 최신버전의 레드마인을 우분투에 설치했는데
나처럼 리눅스에 대한 지식이 부족한 상태에서 레드마인을 설치할 분에게 도움이 될까 싶어 글을 남김

일반적인 레드마인 설치는 생활코팅(우분투에서 레드마인 설치)에서 가이드가 잘되어 있지만 최신버전(redmine 2.x.x)의 레드마인을 받게되면 루비와 호환이 되지 않아 빌드가 안됨
최신버전을 받지 말고 (redmine 1.x.x)의 버전을 받고 설치하면 무난하게 설치가 됨

하지만 (redmine 2.x.x)의 경우 설치과정이 조금 달라졌다.


기본 패키지 설치

sudo su
apt-get install mysql-server libmysqlclient-dev git-core subversion imagemagick libmagickwand-dev libcurl4-openssl-dev curl subversion  rubygems


루비설치 RVM
$ curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
$ source /usr/local/rvm/scripts/rvm
$ echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc


레드마인 설치
$ mkdir /var/data
$ cd /var/data/
$ svn co http://svn.redmine.org/redmine/branches/2.5-stable redmine
cd /var/data/redmine
bundle install


데이타 베이스
$ gem install mysql2
$ nano config/database.yml


production:
  adapter: mysql2
 database: redmine
  host: localhost
 username: redmine
 password: my_password
  encoding: utf8
 schema_search_path: public

$ mysql -u root -p

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';


$ rake generate_secret_token
$ bundle exec rake db:migrate RAILS_ENV=production

$ bundle exec rake redmine:load_default_data RAILS_ENV=production 
-> ko


아파치
apt-get install apache2 apache2-prefork-dev


Passenger 


$  gem install passenger
$  apt-get install libapache2-mod-passenger

$  cd /usr/local/rvm/gems/ruby-2.0.0-p451/gems/passenger-4.0.40/

$  ./bin/passenger-install-apache2-module
nano /etc/apache2/mods-available/passenger.conf


Ruby와 Passenger의 버전에 따른 폴더명에 주의


<IfModule mod_passenger.c>
  PassengerUser www-data
  PassengerDefaultUser www-data


  PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p451/gems/passenger-4.0.40
 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p451/ruby
</IfModule>



$  nano /etc/apache2/mods-available/passenger.load



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


$  cd /etc/apache2/mods-enabled/

$  ls -s ../mods-available/passenger.conf ./passenger.conf
ls -s ../mods-available/passenger.load ./passenger.load



$  cd /var/www

$  ln -s /var/data/redmine/public/ ./redmine

$  nano /etc/apache2/sites-available/default



<Directory /var/www/redmine>

     RailsBaseURI /redmine

     PassengerResolveSymlinksInDocumentRoot on
</Directory>

$  service apache2 restart

브라우저에서 localhost/redmine으로 동작확인


------------
우분투 13.10버전에서는 위와 같이 설치하면
로그인까지는 되지만 권환에 문제가 발생하여
레드마인 설정에 접근하면 Error화면이 발생한다.

권환변경
$ sudo chown -R www-data:www-data /var/data/redmine/

PlugIn Permission
$ cd var/data/redmine
$ sudo mkdir public/plugin_assets
$ sudo chown -R www-data:www-data files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets
으로 해결

참고
Redmine : 
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_231_On_Ubuntu_1204_with_git_and_Redmine_Git_Hosting_plugin
http://redminecrm.com/boards/4/topics/448-installing-redmine-2-2-passenger-nginx-rvm-on-ubuntu-12-04
생활코딩 : http://opentutorials.org/course/438/2436
머가필요해 : http://whatwant.tistory.com/category/SE%20Tools/Redmine



'리눅스' 카테고리의 다른 글

apache 2.4 설치  (4) 2014.01.28
가상호스트 설명  (124) 2013.08.16
centos에서 host명 변경  (52) 2013.07.30

yum install gcc* openssl-dev wget make pcre-devel w3m


apr-util 및 apr, 그리고 apache2.4 버전 최신버전 다운로드 후 압축을 푼다.

mv apr-util-1.5.2 ./http-2.4.6/srclib/apr-util

mv apr-1.4.8 ./http-2.4.6/srclib/apr 이동시킨다. 

pcre설치 

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz 

./configure --prefix=/usr/local/pcre 

make && make install 

httpd 설치

./configure \

--prefix=/usr/local/apache2 \

--with-pcre=/usr/local/pcre \

--with-included-apr \

--enable-mods-shared=all \

--enable-so \

--enable-rewrite


컴파일 설치로 진행해 보도록 하겠습니다. 1. CMAKE 설치 MySQL 5.5.x 버전 부터는 make 아닌 cmake 통해 컴파일 설치를 해야 합니다. 그렇기 때문에 먼저 cmake 설치해야 합니다.

## cmake 설치에 필요한 라이브러리 설치

# yum -y install zlib curl

# yum -y install gcc g++ cpp gcc-c++

# yum -y install openssl openssl-devel -- 확인..

# yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel

# yum -y install bison

 

## cmake 설치

# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

# wget https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz -- 변경

# tar xvfzp cmake-2.8.4.tar.gz

# cd cmake-2.8.4

# ./bootstrap

# make all

# make install


2. MySQL 설치에 필요한 라이브러리 설치

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.5.25-1.rhel5.x86_64.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/

# wget https://downloads.mysql.com/archives/get/file/MySQL-devel-5.5.29-2.linux2.6.x86_64.rpm

$ su

# rpm -Uvh --force --nodeps MySQL-devel-5.5.25-1.rhel5.x86_64.rpm

3. MySQL 5.5.25 다운로드 설치

$ http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/

$ wget https://downloads.mysql.com/archives/get/file/mysql-5.5.29.tar.gz

$ tar xvfz mysql-5.5.13.tar.gz

$ cd /mysql-5.5.13

$ su

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_ARIA_STORAGE_ENGINE=1 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DMYSQL_TCP_PORT=3406


make && make install


4. 권한 설정 세팅

# groupadd mysql

# useradd -g mysql mysql

# chown -R mysql:mysql ${mysql 설지 경로}

 

# cd ${mysql 설지 경로}

#  ./scripts/mysql_install_db --user=mysql --datadir=${mysql 설치 경로}/data

# cp support-files/my-medium.cnf /etc/my.cnf

# cp support-files/mysql.server /etc/init.d/mysqld

 

## mysqld 파일의 datadir부분을 아래와 같이 수정한다.

# vi /etc/init.d/mysqld   

 

datadir=${mysql 설치 경로}/data

그리고 서비스를 실행시키면 됩니다.


# /sbin/service mysqld start

이후 작업사항은 아래 블로그에서 확인하세요

#mysql -uroot -p


mysql> use mysql

Database changed


mysql>update user set password=password('new_password') where user='root';

Query OK, 2 rows affected (0.00 sec)

Rows matched: 2  Changed: 2  Warnings: 0


mysql>flush privileges;

Query OK, 0 rows affected (0.00 sec)

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


grant all privileges on *.* to 'root'@'%' identified by '비밀번호';

FLUSH PRIVILEGES;


db_name : 접근가능한 db이름

db_table : 접근가능한 db안의 테이블 이름

보통 *.* (모든DB 모든 테이블에 접근 허용)

db_name.* (선택된 DB 모든 테이블 접근 허용)


으로 설정.

@ '%' ip체크 하지 않음-> 모든 ip 허용, 일정한 아이피에서 들어오는 아이디만 접근을 허용하고 싶다면, localhost, ip 주소등을 적어 주면 된다.

보통 리눅스의 /usr/local 설치 되어있으며


mysql안의 lib/안에 


mysql --version


으로 확인할 있다.



* 8080 port 를 연다고 가정하면, 


1. root 로 switch user
    [user@test ~]$ su -
    암호:
    [root@test ~]#

2. /etc/sysconfig/iptables 파일 열기 & 수정
    [root@test ~]# vi /etc/sysconfig/iptables

    열고자 하는 포트를 아래 라인과 같이 추가. (8080 포트 열기)
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

3. iptables restart - 아래 명령 사용.
    [root@test ~]# service iptables restart
    또는
    [root@test ~]# /etc/init.d/iptables restart



출처: http://ann-moon.tistory.com/99 [Ann's IT World]

'리눅스 > Centos' 카테고리의 다른 글

proftpd 설치  (45) 2013.09.09
centos ssh 설치  (107) 2013.07.30
centos openjdk 삭제  (4) 2013.07.29
JAVA SDK 7 RPM  (84) 2013.07.12
centos nxfree server install  (60) 2013.07.11

위의 파일을 다운받아 서버에 저장 하도록 한다.(추천 위치 : /root/setting) 이클립스나 sftp 로 저장 할 수 있다. 또는 yum패키지 설치 방식으로 설치 할 수있다. 

파일을 저장 했으면 압출을 풀도록 한다. 

[root@ /root/setting] tar xvzf proftpd-1.3.2.tar.gz

압축이 풀리고 나면 압축을 푼 폴더로 이동 하도록 한다. 

[root@ /root/setting] cd proftpd-1.3.2

이제 설치할 디렉토리를 지정해 주도록 한다.

[root@ /root/setting/proftpd-1.3.2] ./configure --prefix=/usr/local/proftpd 

다른 경로에 설치 해도 되지만 관리의 편이성을 위하여 /usr/local/proftpd 에 설치하도록 한다.

설정된 파일은 없지만 make install을 하기 위해선 우선 make로 빌드하는 작업이 필요하다.

[root@ /root/setting/proftpd-1.3.2] make

하게되면 화면에 설정에 맞춰 파일들이 빌드되는 것을 볼 수 있을것이다. 혹여 이 작업에서 오류가 날 경우 make install 이 되지 않을수가 있다. make 이후에는 마지막 메세지를 유심히 살펴 보도록 한다. 

이 작업이 완료가 되었다면 대망의 인스톨!!!

[root@ /root/setting/proftpd-1.3.2] make install 

설치가 완료 되었다는 메세지가 뜨게 되면 환경 설정을 해주면 된다. 

[root@ /root/setting/proftpd-1.3.2] vi /usr/local/proftpd/etc/proftpd.conf

Group 란 것이 아마 설정이 nogroup로 되어 있을 것이다. nobody로 설정을 바꿔주도록 한다. 

Group       nobody

그리고 아래와 같이 설정을 추가 및 수정해 주도록 한다. 

#DefaultRoot

  RootLogin off                              //ftp로 root 로 로그인 하지 못하게 한다.

  UseReverseDNS off                     //접속자 IP를 Reverse Mapping  하지 않는다. (속도 향상)

  IdentLookups off                         //속도향상

  TimeoutIdle            3600

  TimeoutNoTransfer 600

  TimeoutStalled 600

<Global>

  AllowForeignAddress   on

</Global>

<Limit STOR>

  AllowAll

</Limit>


위와 같이 설정이 끝났다면 실행파일을 /usr/sbin/에 카피해 주도록 한다.

[root@ /root/setting/proftpd-1.3.2] cp /usr/local/sbin/in.proftpd /usr/sbin/proftpd

[root@ /root/setting/proftpd-1.3.2] cp /root/setting/proftpd-1.3.2/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd 

두작업을 해 주도록한다. 

첫번째 작업에서는 service 에서 proftpd 를 [start/stop/restart] 해줄수 있게 한 것이고,

두번째 작업에서는 서버를 재부팅을 했을때 proftpd가 자동으로 시작 할 수 있게 한 것이다.


이로서 설치 및 환경설정은 끝났다. 마지막으로 서비스를 실행하면 된다. 

[root@ /root/setting/proftpd-1.3.2] service proftpd start 

로 서비스를 실행해 주고 나면 모든 작업이 끝나게 된다.


'리눅스 > Centos' 카테고리의 다른 글

MySQL 5.5 설치  (4) 2014.01.20
centos ssh 설치  (107) 2013.07.30
centos openjdk 삭제  (4) 2013.07.29
JAVA SDK 7 RPM  (84) 2013.07.12
centos nxfree server install  (60) 2013.07.11
제목 : [팁]아파치 가상 유저 호스트 설정하기

작성자 : 김칠봉[닉: 산이] san2(at)linuxchannel.net
2000.04.11 : 1차 완료
2000.07.10 : 2차 보완
2000.09.28 : 3차 보완
대상자 : 리눅스/아파치 초급자(?)

*주)
에고~~~
여러차례에 걸쳐 내용을 수정했기 때문에,
이하 문서의 문맥상 간혹(?) "존칭어"를 생략했습니다.
양해해 주시길 바랍니다.
------------------------------------------------------------------

[목차]

1. 참고내용 및 관련 문서
2. 아파치 가상 유저 호스트란?(이게 뭡니까?)
3. 네임서버(BIND8)의 설정
4. 아파치에서 "가상 유저 호스트"를 지원하게 하려면?
  4-1. 확인 과정
  4-2. modr_rewrite 모듈 추가
5. 아파치 가상 호스트 설정(httpd.conf)
6. 조그마한 팁
7. 마치며



1. 참고내용 및 관련 문서(다 읽어보질 못했음)

- 아파치 제공 문서 - Module mod_rewrite URL Rewriting Engine :
  http://www.apache.org/docs/mod/mod_rewrite.html

- 아파치 제공 문서 - Rewriting Guide :
  http://www.apache.org/docs/misc/rewriteguide.html

- 아파치 제공 문서 - Dynamically configured mass virtual hosting :
  http://www.apache.org/docs/vhosts/mass.html

- 아파치 제공 문서 - Apache Server Frequently Asked Questions :
  http://www.apache.org/docs/misc/FAQ.html

- A Users Guide to URL Rewriting with the Apache Webserver :
  Ralf S. Engelschall <rse@apache.org>
  http://www.engelschall.com/pw/apache/rewriteguide/

- URL manipulation with Apache Forwarded :
  Ralf S. Engelschall, Christian Reiber
  http://www.heise.de/ix/artikel/E/9612149/



2. 아파치 가상 유저 호스트란?(이게 뭡니까?)

예를 들어, 리눅스 계정 ID가 "san2"이고 도메인이 "linux.ac.kr"이면
http://san2.linux.ac.kr 이 되도록 설정하는 것입니다.

즉,
리눅스 계정($USER)을 추가하면 자동적으로 그 계정이 호스트로 설정되어
아파치의 가상 호스트로 운영하는 것을 의미한다.

물론 수동으로 하나하나씩 막노동(?)으로 네임서버에 각각의 계정을 모두
등록하고 아파치 가상 호스트 섹션에 추가할 수 있지만
조금 비능률적이다.

때문에 네임서버를 조금 건드려 줘야하며(한번 만), 주로 웹호스팅 업체나
이런 서비스를 전문으로하는 업체에서 유용하게 쓰이는 방법이기도 하다.

*주)---------------------------------------------------------------
몇 개의 호스트만 관리하고 있고 각 계정을 굳지 호스트로 지정할 필요가
없다면 이 방법은 무용지물입니다.
--------------------------------------------------------------------


3. 네임서버(BIND8)의 설정

부트파일(named.conf)에서 정의한 Public Domain의 zone 파일이
"zone-linux.ac.kr"로 명시되어 있다면,(일반적으로 /var/named 디렉토리)
다음과 같이 편집합니다.

/var/named/zone-linux.ac.kr -----------------------------------------
@       IN      SOA     ns.linux.ac.kr. san2.linux.ac.kr.  (
                                      2000041005 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      ns.linux.ac.kr.
	IN	NS	ns2.linux.ac.kr.
	IN	A	192.168.10.3
@       IN      HINFO   "x86 Pentium" "XXX Linux"
;
ns2	IN	A	192.168.10.4
; 중간생략
;
; 제일 마지막 줄에 추가
*       IN      A       192.168.10.3
------------------------------------------------------------------------

이름기반 가상 호스트로 운영할 계획이라면,
더이상 www, mail, ns, 등등의 호스틀 추가할 필요는 없다.
반면,
각각의 서비스기능을 하는 호스트를 다른 IP 주소를 사용하면
A 레코드로 각각 다르게 설정해 줄 필요는 분명이 있다.
이점에서 각자 사용 목적에 맞게 네임서버를 설정하길 바랍니다.

앞의 설정에서 눈여겨 볼 설정은 와일드카드 문자(*)를 사용해서
모든(*) 호스트에 대해서 A 레코들로 192.168.10.3의 IP 주소를 지정해
주었다는 점이다.

@		IN	A 192.168.10.3
;또는
*		IN	A 192.168.10.3
*.linux.ac.kr.	IN	A 192.168.10.3


그럼 어떤 현상(?)이 일어나는지 잠시 네임서버에 질의해 봅시다.
우선, 설정내용을 바꾸었으므로 2차 네임서버를 운영하고 있다면
Serial을 바꾸어줘야함을 잊어서는 안된다.

# ndc reload
#
# nslookup
Default Server:  linux.ac.kr
Address:  192.168.10.3

> linux.ac.kr

Name:    linux.ac.kr
Address:  192.168.10.3

> www.linux.ac.kr

Name:    www.linux.ac.kr
Address:  192.168.10.3

> mail.linux.ac.kr

Name:    mail.linux.ac.kr
Address:  192.168.10.3

이 번에는 무작위 아무 호스트(aabbcc)를 질의해 보자.

> aabbcc.linux.ac.kr

Name:    aabbcc.linux.ac.kr
Address:  192.168.10.3

> exit
#

즉, 네임서버에 와일드카드 문자(*)를 사용해서 모든 호스트를
192.168.10.3의 IP 주소로 지정해 버렸기 때문이다.

이 기능(?)을 이용해서 아파치에서 가상호스트로 지정하는 방법이다.
대충 짐작이 되었으리만 믿습니다.


4. 아파치에서 "가상 유저 호스트"를 지원하게 하려면?

아파치에서 가상 유저 호스트를 지원하게 하려면 아파치 모듈중에서
"mod_rewrite.c"가 필요하다.

4-1. 확인 과정

[경우1] 아파치를 RPM으로 설치했을 경우

아파치 설정 파일(httpd.conf)에
...
LoadModule rewrite_module     modules/mod_rewrite.so
...
AddModule mod_rewrite.c
...

부분이 있는지 확인하다.
일반적으로 rpm 패키지를 제작할 경우 이 모듈을 DSO 기반 모듈로 로딩
하도록 설정되어 있을 것입니다.


[경우2] 아파치를 소스로 직접 컴파일했을 경우

이 경우에는 손수 직접 확인해 줘야한다.
아파치 설치자가 DSO 기반 모듈로 설치했는지 아니면
"Compiled-in modules"으로 설치했는지 이미 알고 있을 것이다.
전자의 경우는 앞의 RPM으로 설치했을 경우와 같이 직접 설정파일을
확인해 본다.
후자의 경우는 다음과 같이 "httpd -l"과 같이 옵션으로 확인하다.

# httpd -l (또는 # /usr/local/apache/bin/httpd -l)
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c <---------------확인사항
  mod_access.c
  mod_auth.c
  mod_setenvif.c
  mod_php3.c
#

*주)----------------------------------------------------------------
일반적으로 아파치를 소스로 직접 컴파일하여 설치했을 경우에는
특별한 옵션이 없는한 mod_rewrite 모듈은 추가되어 있지 않다.
--------------------------------------------------------------------

필자역시 기존의 소스디렉토리에서 다시 컴파일하여 추가해 줘야하는
단점이 있었다.

4-2. mod_rewrite 모듈 추가 방법

다음의 작업 과정은 현재 이 mod_rewrite.c이 추가되어 있지 않았다는
가정이다.

우선 현재의 아파치 서버를 종료한다.

# killall httpd
#

아파치 서버를 /usr/local/apache에 설치했다면
잠시 다른 이름으로 바꾸어 놓는다.

# cd /usr/local
# mv apache apache_old

전에 아파치를 컴파일 했던 소스 디렉토리가 /usr/local/src/apache_1.3.12
이라면 그곳으로 이동한다.
만약 새로 컴파일할 계획이라면 이하 같은 방법대로 한다.

필자는 전에 PHP를 서드파티 모듈을 추가했으므로 이번에도 똑 같이 해줘야
하는 또 하나의 숙제(?)가 남아 있다.
그러나 그 숙제는 숙제가 아니다.
소스 디렉토리에 config.status 파일을 이용하면 그만이다.

# pwd
/usr/local/apache_1.3.12
#
# cat config.status
------config.status ---------------------------------------------------
#!/bin/sh
##
##  config.status -- APACI auto-generated configuration restore script
##
##  Use this shell script to re-run the APACI configure script for
##  restoring your configuration. Additional parameters can be supplied.
##

./configure \
"--with-layout=Apache" \
"--prefix=/usr/local/apache" \
"--activate-module=src/modules/php4/libphp4.a" \
"$@"
-----------------------------------------------------------------------

전에 작업했던 내용이 이 파일(config.status)에 기록되어 있으므로 이 파일을
이용해서 PHP4 모듈도 함께 추가해 보자.

# make clean
#
# ./config.status --enable-module=rewrite
#

이때 주의해야 할점은 "--enable-module=mod_rewrite"가 아니라는 점이다.
"mod_"를 뺀 나머지 모듈이 그 모듈이름이다.

만약 처음으로 아파치를 컴파일할 계획이라면 다음과 같이
중간 단계에서 컴파일 옵션이 필요할 것이다.(PHP4 추가시 포함)

# ./configure \
--prefix=/usr/local/apache \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=rewrite

"\" 문자는 적접 입력하는 문자가 아니고 즉 한줄에 계속 이어서 쓴다는 의미입니다.

앞의 예는 Compiled-in modules 형식이다.
만약 DSO 기반 모듈로 사용할 계획이라면, 최소한 다음과 같은 옵션이 필요하다.
(mod_rewrite 모듈만 DSO 방식으로 사용)

# ./configure \
--prefix=/usr/local/apache \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=rewrite <--- 주의 꼭
--enable-shared=rewrite \

*주)----------------------------------------------------------------
--enable-shared=rewrite 옵션은 --enable-shared=so를 포함함.
--------------------------------------------------------------------

*주)----------------------------------------------------------------
DSO 기반 모듈은 Compiled-in modules 모듈보다 아파치 서버 시작시 20%,
실행속도가 5% 정도 느려진다고 아파치 관련 문서에 나와 있다.
--------------------------------------------------------------------

*참고)--------------------------------------------------------------
mod_rewrite 모듈을 DSO 방식으로 추가하는 기타 방법

기본적으로 mod_rewrite 모듈은 disable 되어 있다는 점에서
다음과 같은 방법이 가능하다.

1. APXS 유틸리티 사용
# apxs -i -a -c /any/path/to/src/modules/standard/mod_rewrite.c

2. --enable-module=all --enable-shared=rewrite
모든 모듈을 enable 시키고 mod_rewrite만 DSO 방식으로 추가

3. --enable-module=all --enable-shared=max
모든 모듈을 enable 시키고 httpd_core와 mod_so를 제외한 나머지
모듈(mod_rewrite가 포함됨)을 DSO 방식으로 추가

4. --enable-module=rewrite --enable-shared=max
mod_rewrite를 enable 시키고 나머지 enable된 모듈과 함께 DSO 방식으로 추가

5. --enable-shared=remain
아직 enable되어 있지 않은 mod_rewrite 모듈을 포함한 나머지 기본 enable
모듈을 enable시키고 httpd_core와 mod_so를 제외한 나머지 모듈(mod_rewrite
가 포함됨) 을 DSO 방식으로 추가

[--enabl/disable-shared=max 옵션]
바로 이전 옵션에서 enable 되어 있는 모듈에 대해서만 DSO 방식으로
enable/disable.

[--enable-shared=remain 옵션]
바로 이전 옵션에서 enable 되어 있지 않은 모듈을 enable 시키고 이 모듈에
대해서만 DSO 방식으로 enable.

[특별한 옵션이 없는 경우 기본 enable 모듈]
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_setenvif.c
*참고 끝) --------------------------------------------------------------

컴파일 옵션 설정이 끝났으면
컴파일과 설치를 다름과 같이 진행한다.

# make
#
# make install

/usr/local/apache 디렉토리에 새로 아파치가 설치되어 있을 것이다.
원하는 모듈이 추가되어 있는지 직접확인해 보자.

# cd /usr/local/apache/bin
# ./httpd -l
...
  mod_rewrite.c
...
#
원하는 모듈이 추가되어 있군요...

이번에는 전에 설정해 놓았던 설정파일(httpd.conf)을
다시 복사해 놓자.(같은 버전일 경우)

# cd /usr/local/apache/conf
#
# cp /usr/local/apache_old/conf/httpd.conf .
#

httpd.conf 파일이 덮어쓰기가 될것입니다.

*주)-----------------------------------------------------------------
아파치 버전 1.3.11과 1.3.12의 설정파일은
그 설정 내용이 조금씩 다르므로 절대로 덮어쓰는 일이 없도록 주의하기
바랍니다.
---------------------------------------------------------------------

만약 rewrite 모듈을 DSO 기반 모듈로 설치했다면
httpd.conf 파일에서

...
LoadModule rewrite_module ......
...
AddModule mod_rewrite.c
...

부분을 확인 및 빼먹지 않도록 주의한다.


5. 아파치 가상 호스트 설정(httpd.conf)

드디어 아파치 가상 호스트 설정 차례입니다.

필자의 경우(예제의 가상의 도메인: linux.ac.kr)는 다음과 같다.
주석으로 설명되어 있습니다.

-----httpd.conf -------------------------------------------------------
...
ServerName www.linux.ac.kr
DocumentRoot /home/httpd/html
...
UserDir public_html
...
...
# 가상 호스트 설정
NameVirtualHost 192.168.10.3

# 기본이 되는 호스트
<VirtualHost 192.168.10.3>
 ServerName www.linux.ac.kr
#
# 다음의 설정은 일반적인 각각의 사용자 URL(~ID)을 ID.domain.com의
# 형태로  Redirect하는 설정이다.
# 꼭 필요하지는 않지만 그럭저럭 괜찮은 서비스 일것 같다.(필자의 생각)
#
RewriteEngine on
RewriteRule    ^/~(([a-zA-Z])[a-z0-9]+) http://$1.linux.ac.kr [R,L]
#
# 다음의 2줄에 대해서 주석을 제거하면 요청한 문서와 DocumentRoot 상에
# 존재하는 문서와 서로 일치하지 않을 경우
# http://www.linux.ac.kr/index.html 파일을 보여주도록 되어 있다.
# 따라서 "ErrorDocument 404"의 의미는 없어지며,
# 이 방법 외에, 원한다면 404 에러코드에 대한 문서를 상위의
# 기본 문서(index.html)로 URL 포워딩할 수 있는 방법도 있다.
#
#RewriteCond   /home/httpd/html/%{REQUEST_FILENAME} !-f
#RewriteRule   ^(.+)    http://www.linu.ac.kr/index.html

</VirtualHost>

# mail 호스트 설정
# "mail"이라는 계정은 /etc/passwd 파일에 존재하지만
# 실제로는 /home/mail로 홈디렉토리를 가지고 있지 않다.
# 때문에 필자의 경우는 mail.linux.ac.kr 호스트에 대해서
# 웹 메일서버스를 위해서 다음과 같이 설정했을 뿐이다.
# 물론 8080 포트로 설정하는 경우도 많다.
# 이 예는 필자의 경우이다.(하나의 리눅스 박스에서)
#
<VirtualHost 192.168.10.3>
 ServerName mail.linux.ac.kr
 ServerAdmin admin@linux.ac.kr
 DocumentRoot /home/httpd/mail
 ErrorLog logs/mail.linux.ac.kr-error_log
 CustomLog logs/mail.linux.ac.kr-access_log common
 #ErrorDocument 401 /401.php
</VirtualHost>

# redhat 호스트 설정
# redhat 계정은 시스템 계정에 포함되어 있지 않은 계정이다.
# 따라서 따로 분류해서 하나의 가상 호스트로 설정할
# 필요가 있는 경우이다.
# 이 예제와 같이 /home/ID 처럼 존재하지 않은 가상 호스트에 대해서
# 중요하다고 생각되는 호스트(예: www, kernel, tip, study)를 별도로
# 가상 호스트로 추가 설정한다.
#
<VirtualHost 192.168.10.3>
 ServerName redhat.linux.ac.kr
 ServerAdmin admin@linux.ac.kr
 DocumentRoot /home/httpd/redhat
 ErrorLog logs/redhat.linux.ac.kr-error_log
 CustomLog logs/redhat.linux.ac.kr-access_log common
 ErrorDocument 401 /401.php
 ErrorDocument 404 /404.php
</VirtualHost>

# linux 호스트 설정
# linux 계정은 시스템 계정에 포함되어 있지 계정이다.
# 또한 리눅스 계정에 포함되어 있다하더로도
# 필자의 소견으로는
# http://linux.linux.ac.kr 이라는 이름은 왠지
# 어색할 따름이다.
# 따라서 이 가상 호스트에 대해서 www.linux.ac.kr
# 호스트로 Redirect 지시자로 포워딩하는 예제이다.
# 주의 Redirect / http://www.linux.ac.kr 이 되지 않도록!!!
#
<VirtualHost 192.168.10.3>
 ServerName linux.linux.ac.kr
 Redirect /index.html http://www.linux.ac.kr/
</VirtualHost>

# 가상 유저 호스트 설정 ##########################################
# 이 글의 가장 핵심적인 내용이며 필자가 말하려는 부분이기도 하다.
#
<VirtualHost 192.168.10.3>
 ServerName linux.ac.kr
#
# ServerAlias 지시자를 이용해서 나머지 모든 호스트에 대해서
# 설정한 경우이다.
 ServerAlias *.linux.ac.kr
 ServerAdmin admin@linux.ac.kr
#
# 다음의 설정은 http://linux.ac.kr을 요청했을 경우에
# http://www.linux.ac.kr 호스트로 URL 포워딩한 예이다.
# 이 설정은 필자의 습관이다.
# 굳지 Redirect 지시지를 사용하지 않고 /home/httpd/html/index.html
# 파일을 보이도록 할 수는 있다.
#DocumentRoot /home/httpd/html
#
 Redirect /index.html http://www.linux.ac.kr/
#
#
# 가장 핵심적인 설정 부분이다. 그러나 .........T.T
# 불행히도 필자는 이부분에 대해서 자세하게 설명할 실력이 못된다.
# 다만 아파치 제공문서와 [임대호]님 홈페이지를 참고로 했을 뿐입니다.
# 자신의 환경에 맞게 수정하면 무리가 없을듯 합니다.
#
# Virtual User Hosts
 RewriteEngine on
 RewriteCond   %{HTTP_HOST}         ^[^.]+\.linux\.ac\.kr$
 RewriteRule   ^(.+)                %{HTTP_HOST}$1     [C]
 RewriteRule   ^([^.]+)\.linux\.ac\.kr(.*) /home/$1/public_html$2
#
 ErrorLog logs/users.linux.ac.kr-error_log
 CustomLog logs/users.linux.ac.kr-access_log common
# 아래의 두개의 설정은 가상 유저 호스트를 위한 설정이다.
# 즉, 각 가상 유저 호스트의 DocumentRoot에 에러코드문서를
# 모두 만들 필요없이(사용자 몫) 기본 호스트의 에러코드로
# 모두 설정해 주었다.
 ErrorDocument 401 http://www.linux.ac.kr/401.php
 ErrorDocument 404 http://www.linux.ac.kr/404.php
</VirtualHost>
...
------------------------------------------------------------------------------

설정이 끝났으면 아파치 서버를 가동한다.
서버를 가동하지 전에 설정 구문이 제대로 맞는지 확인 점검해 보는 습관도 좋다.
#
# httpd -t (또는 /usr/sbin/httpd -t)
또는
# /usr/local/apache/bin/httpd -t
Syntax OK
#

현재 서버가 가동 중이 아니므로...

RPM으로 설치했을 경우,
#
# /etc/rc.d/init.d/httpd start

소스로 컴파일하여 설치했을 경우
#
# /usr/local/apache/bin/apachectl start
#

서버가 정상적으로 시작되면
웹 브라우저로 테스트해 본다.
또한,
새로운 계정을 추가하여 제대로 작동하는지 확인해 보시길 바랍니다.

예 :
http://san2.linux.ac.kr/

6. 조그마한 팁

필자는 RedHat 리눅스 외에 다룰 줄 아는 리눅스 배포본은 없다.
따라서 다음에 나오는 팁은 당연히 레드햇 기준입니다.

*팁1)
사용자 추가시 기본 웹 디렉토리(public_html)와 index.html 파일

사용자 "기본 웹 디렉토리"라 함은 아파치 설정 파일에서
UserDir 지시자에 의해서 명시한 디렉토리를 말한다.
일반적으로 public_html 이나 Public_html, wwwhome, html .... 등등으로
아파치 서버 관리자가 설정하기 나름이다.

필자의 경우는 Public_html으로 바꾸어 사용한다.(대문자 P, 필자의 습관)
#
# cat httpd.conf | grep UserDir
  UserDir Public_html
#
따라서 다음과 같이 이름을 미리 바꾸어 놓음으로써 다음 계정 추가시 자동적으로
UserDir과 맞도록 설정한다.


#
# cd /etc/skel
# ls -hl
total 12k
drwxr-xr-x   5 root     root         4.0k Feb 24 03:34 Desktop/
drwx------   2 root     root         4.0k Jun  8  1999 Mail/
drwx------   2 root     root         4.0k Feb 25 01:54 public_html/
#
# mv public_html Public_html
#
# chmod 701 Public_html
#
# ls -hl
total 12k
drwxr-xr-x   5 root     root         4.0k Feb 24 03:34 Desktop/
drwx------   2 root     root         4.0k Jun  8  1999 Mail/
drwx-----x   2 root     root         4.0k Feb 25 01:54 Public_html/
#

그 다음 index.html 파일은 아파치 설정파일에서 DirectoryIndex 지시자에 의해서
명시된 우선적인 파일을 의미한다.
즉,(리눅스 초보자에 해당되는 설명) 웹에서 특정 디렉토리에 접근할 경우 자동으로
보여주는 문서를 말합니다.

DirectoryIndex index.html index.htm index.php3 index.cgi index.phtml index.shtml

따라서 필자는 다음과 같이 미리 index.html 파일을 생성해 주었다.
#
# pwd
/etc/skel
# cd P* (또는 cd Public_html)
# pico index.html (또는 index.php)

# cat index.html --------------------------------------------------------------
<?
//$server_name = "$SERVER_NAME";
//$http_host = "$HTTP_HOST";
//$user = eregi_replace(".$server_name", "", $http_host);
$user = eregi_replace(".$SERVER_NAME", "", $HTTP_HOST);

?>

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-KR">
<title>welcome to <? echo $user ?> HomePage !!!</title>
</head>

<body bgcolor=white>

<p>
&nbsp;
<p>
<center> <font color=blue size=3> 환영합니다.</font>
<br>
여기는
<a href=mailto:<? echo $user ?>@<? echo $SERVER_NAME ?>>
<? echo $user ?></a>
의 홈페이지 입니다.
<p>http://<? echo $HTTP_HOST ?>

</body>
</html>
----------------------------------------------------------------------------------

물론, DB를 사용하여 사용자 이름을 깔끔하게 표시하면 금상첨화이겠지요...
필자가 웹 프로그램에 대해서 거의 맹~~ 수준이라서 고작 USER(사용자)를 표시한다는 것이
이 정도 수준밖에...........T.T(죄송)


*팁2)
사용자 홈디렉토리 퍼미션

레드햇 리눅스는 사용자를 새로 추가할 경우 기본 퍼미션은 700 이다.
즉 사용자(소유자)만 읽기/쓰기/실행하도록 디렉토리 퍼미션이 주어진다.
따라서 당연히,
웹디렉토리(Public_html) 퍼미션이 701, 755이다하더라도 사용자 홈디렉토리 퍼미션이
700이므로 웹에서는 접근할 수 없다.

그렇기 때문에 사용자 추가시 자동적으로 701 정도의 퍼미션이 되도록 설정해 주는것
한가지 방법인듯 하다.
방법은 다음과 같다.

# ls /etc/login*
/etc/login.defs
#
# pico /etc/login.defs

-----/etc/login.defs -------------------------------------------------------------
...
...
# 제일 마지막줄이나 적당한 위치에 다음 한줄을 추가한다.
UMASK 076
-----------------------------------------------------------------------------------

이제 새로 추가할 사용자 디렉토리 퍼미션은 701이 될것이다.
참고로 퍼미션이 755가 되게하려면 "UMASK 022"으로 수정한다.


7. 마치며

매번(?) 글을 쓸때마다 느낌점이 있다면, 역시 글을 쓴다는 것은 한편으로 즐겁기도
하면서 한편으로는 제 자신을 애석하게 만들더군요.
(지식의 한계로 인한 "끙끙거림 = 키보드 위에 쌓인 머리카락)

급하게(?) 테스트하고 올린 내용이라서 오타 및 잘못된 설정이 있으리라 생각됩니다.
잘못된 점이 있으면 지적해 주셨으면 감사하겠습니다.

...

이 문서는 어느 누구도 전체 또는 부분을 복제 및 수정해서 재배포할 수 있으며
자신의 홈페이지에 링크 또는 자신의 홈페이지에 올려놓아도 상관없습니다.
또한 상업적으로 이용할 계획이라도 본 필자에게 문의 메일없이 사용할 수
있습니다
즉,
이 문서에 대해서는 사용상 어떠한 제한이 없음을 알려드립니다.
원작성자를 표기하지 않아도 상관없으며, 필요하다고 생각되면 원작성자를
표기해도 상관없습니다.

단,
사용상의 문제점등으로 피해를 있었을 경우, 본인에게 어떠한 법률적인 책임이
없음을 미리 공지하는 바입니다.

..

본 문서의 보완이나 잘못된 점이 있으면
아래의 본인의 홈페이지 질문과 답변란 게시판을 이용해 주셨으면 고맙겠습니다.

http://www.linuxchannel.net/

끝까지 읽어 주셔서 감사합니다.
--------end------------------------------------------------------------------------







/etc/sysconfig/network 파일 변경


HOSTNAME = 부분을 자기가 원하는 이름으로 변경시키면 된다.







원본

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

'리눅스' 카테고리의 다른 글

우분투 12.04-LTS에서 레드마인 2.5.0 설치하기(redmine + mysql + apache)  (4) 2014.05.19
apache 2.4 설치  (4) 2014.01.28
가상호스트 설명  (124) 2013.08.16

다음 두개의 패키지를 설치한다.
1. openssh-clients
2. openssh-server

# yum -y install openssh-server openssh-clients

서비스 시작하기
# chkconfig sshd on
# service sshd start

port 22 가 열렸는지 확인.
# netstat -tulpn | grep :22

방화벽 설정.

/etc/sysconfig/iptables 편집 (IPv4 방화벽)
# vi /etc/systemconfig/iptables

다음 라인을 추가.
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

* 내 경우 위 라인을 추가시 서비스 재시작 과정에서 fail이 났다. 그래서 일단 삭제...

저장 후 iptables 재시작
# service iptables restart



1. SSH 서버, 클라이언트 설치

 [ray@centos ~]$ sudo yum -y install openssh-server openssh-clients


2. 서비스 시작

 [ray@centos ~]$ sudo chkconfig sshd on
 [ray@centos ~]$ sudo service sshd start


3. 포트 확인

 [ray@centos ~]$ netstat -tulpn | grep :22


3. 설정

3.1 sshd_config 파일 오픈

 [ray@centos ~]$ sudo vi /etc/ssh/sshd_config

3.2 root 로그인 금지

1
PermitRootLogin no

3.3 특정 사용자만 허용

1
AllowUsers user1 user2

3.4 포트 변경

1
Port 2222

3.4 저장 및 서비스 리스타트

 [ray@centos ~]$ service sshd restart



'리눅스 > Centos' 카테고리의 다른 글

MySQL 5.5 설치  (4) 2014.01.20
proftpd 설치  (45) 2013.09.09
centos openjdk 삭제  (4) 2013.07.29
JAVA SDK 7 RPM  (84) 2013.07.12
centos nxfree server install  (60) 2013.07.11

자바 버전 확인

java -version

java version "1.7.0_09-icedtea"

OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)

OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)


이렇게 뜸..

centos에 

rpm -qa|grep java*

rpm -qa|grep jdk*

이렇게 검색한 다음에 설치된 파일들 확인


yum remove 로 설치되어있는 해당 rpm들을 삭제시킨다.



'리눅스 > Centos' 카테고리의 다른 글

MySQL 5.5 설치  (4) 2014.01.20
proftpd 설치  (45) 2013.09.09
centos ssh 설치  (107) 2013.07.30
JAVA SDK 7 RPM  (84) 2013.07.12
centos nxfree server install  (60) 2013.07.11

# sudo apt-get install openssh-server openssh-client



sudo /etc/init.d/ssh stop



# sudo /etc/init.d/ssh start



# sudo /etc/init.d/ssh restart



vi /etc/hosts.allow file open


sshd:ALL add and file save

B. JAVA SDK 7 RPM 설치

1) JDK 다운로드

http://www.oracle.com/technetwork/java/javase/downloads/index.html

맨 왼쪽 “Java Platform (JDK) 7” 클릭

Accept License Agreement 를 선택한 뒤

리눅스 버전의 rpm파일을 /usr/local/src 에 다운로드

 

jdk-7-linux-i586.rpm: 32bit

jdk-7-linux-x64.rpm: 64bit

 

#rpm -ivh jdk-7-linux-i586(x64).rpm

# 주의.. 32bit 설치시.. 

yum install glibc-devel.i686 libstdc++-devel.i686

먼저 설치할것!!!!  


/usr/java/jdk1.7.0 디렉토리 생성됨

/usr/local/java 경로로 옮김

 

#mv jdk1.7.0 /usr/local/java

 

2) 환경 설정

#vi /etc/profile

 

파일 마지막 부분에 JDK 설정 추가

 

# JAVA SDK 7

JAVA_HOME=/usr/local/java

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.

 

변경된 내용 적용후 설치버전 확인.

 

# source /etc/profile

# javac -version

javac 1.7.0

 

설치완료.

'리눅스 > Centos' 카테고리의 다른 글

MySQL 5.5 설치  (4) 2014.01.20
proftpd 설치  (45) 2013.09.09
centos ssh 설치  (107) 2013.07.30
centos openjdk 삭제  (4) 2013.07.29
centos nxfree server install  (60) 2013.07.11

+ Recent posts