Server-Side/Linux2011. 8. 22. 11:56
서버에서 크론잡을 돌리려고 하는데 /usr/bin/python^M: bad interpreter: No such file or directory 이런 에러가 나는 경우에는 파일포맷을 유닉스로 변경해줘야 한다.

내가 에러를 만나게 된 원인은 윈도우즈에서 작성한 파이썬 스크립트를 리눅스에서 돌리려고 했기 때문이다.
윈도우즈에서 엔터를 치면 CRLF 가 입력되고, 리눅스 뿐만 아니라 유닉스 계열에서의 엔터는 LF만 입력된다. 그렇기 때문에 이번 케이스는 CR을 ^M으로 간주해버린게 문제였다.

vi 편집기에서의 해결책>

:set ff=unix

 
Posted by 준피
Server-Side/Linux2011. 6. 6. 15:41
1. 몽고디비 repository를 추가해준다.

# vi /etc/yum.repos.d/10gen-mongodb.repo

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0

2. 몽고디비를 설치 및 conf 파일의 내용 확인

# yum install mongo-10gen mongo-10gen-server

# vi /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
port=27017
dbpath=/var/lib/mongo

3. 몽고디비 데몬을 시작한다.

# chown -R mongod:mongod /var/lib/mongo/
# /etc/init.d/mongod start
# chkconfig --levels 235 mongod on

4. 방화벽을 열어준다.

# vi /etc/sysconfig/iptables (다음 한줄을 추가)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT

# /etc/init.d/iptables restart



Posted by 준피
Server-Side/Linux2011. 1. 12. 16:50
Create Repository
# cd /home/svn
# sudo mkdir PROJECT_NAME
# sudo svnadmin create --fs-type fsfs PROJECT_NAME

Configuration Repository
# sudo vi /etc/apache2/mods-available/dav_svn.conf
------------------------------------------------
<Location /svn/PROJECT_NAME>
DAV svn
SVNPath /home/svn/PROJECT_NAME
AuthType Basic
AuthName "Project Repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
------------------------------------------------
# sudo chown -R www-data:subversion PROJECT_NAME
# sudo chmod -R g+rws PROJECT_NAME
# sudo /etc/init.d/apache2 restart

Create User
# sudo htpasswd -c /etc/subversion/passwd account_name
# cat /etc/subversion/passwd
account_name:encrypted_passwd
htpasswd -c 옵션은 처음 계정을 생성할 때 사용한다. 이 옵션은 파일을 만들어 준다.
두번째 계정부터는 옵션없어도된다.

Reference


Posted by 준피
Server-Side/Linux2011. 1. 11. 10:41
Install Ruby & Package
# sudo apt-get install ruby rake rubygems
# sudo apt-get install libmysql-ruby
# sudo apt-get install libopenssl-ruby1.8

# sudo apt-get install build-essential
# sudo apt-get install apache2-prefork-dev
# sudo apt-get install libapr1-dev
# sudo apt-get install libaprutil-dev

Install Rails
# gem install rails -v=2.3.5

Install Redmin
# wget http://rubyforge.org/frs/download.php/71723/redmine-1.0.0.tar.gz
# tar xzfv redmine-1.0.0.tar.gz -C /var/www
# cd /var/www
# ln -s ./redmine-1.0.0 redmine

Create Database
# mysql -u root -p
mysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'password';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
mysql> flush privileges;

Configuration Database
# cd /var/www/redmine/config
# cp database.yml.example database.yml
# vi database.yml
----------------------------------
production:
    adapter: mysql
    database: redmine
    host: localhost
    username: redmine
    password: redmine
----------------------------------

Start Redmine
# cd /var/www/redmine
# rake generate_session_store
# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake redmine:load_default_data
# mkdir -p tmp public/plugin_assets     <= 보통 디렉토리가 있다.
# adduser redmine
# passwd redmine
# sudo chown -R redmine:redmine files log tmp public/plugin_assets
# sudo chmod -R 755 files log tmp public/plugin_assets
# ruby script/server webrick -e production

3000번 포트로는 redmine 접속이 가능하지만, Passenger를 이용해서 아파치(80)포트와 연동하자.

Install & Configure Passenger
# sudo apt-get install libapache2-mod-passenger libapache2-mod-fastcgi

# vi /etc/apache2/mods-available/passenger.conf
-----------------------------------------------------------
<IfModule mod_passenger.c>
    PassengerRoot    /usr
    PassengerRuby   /usr/bin/ruby
   PassengerDefaultUser    redmine     <= 추가
</IfModule>
-----------------------------------------------------------

# vi /etc/apache2/sites-enabled/000-default
-----------------------------------------------------------
DocumentRoot /var/www     <= 확인

# 추가 #
<Directory /var/www/redmine>
    RailsBaseURI /redmine/public
    PassengerResolveSymlinksInDocumentRoot on
    Options Indexes ExecCGI FollowSymLinks
    Order allow,deny
    Allow from all
    AllowOverride all
</Directory>
-----------------------------------------------------------

# vi /var/www/redmine/public/.htaccess
-----------------------------------------------------------
# 확인 #
RewriteEngine On
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-----------------------------------------------------------

# cd /var/www/redmine/public
# cp ./dispatch.fcgi.example ./dispatch.fcgi

# a2enmod passenger
# a2enmod fastcgi
# apache2ctl restart

http://your.ip.address:3000 
http://your.ip.address/redmine/public 

위의 주소로 접속이 가능하다.

Apply VirtualHost
# vi /etc/apache2/sites-enabled/000-default
------------------------주석처리한다.--------------------------------
#<Directory /var/www/redmine>
#    RailsBaseURI /redmine/public
#    PassengerResolveSymlinksInDocumentRoot on
#    Options Indexes ExecCGI FollowSymLinks
#    Order allow,deny
#    Allow from all
#    AllowOverride all
#</Directory>
-------------------------------------------------------------------

# vi /etc/apache2/sites-available/redmine.your_domain.com
-------------------------------------------------------------------
<VirtualHost *:80>
        ServerName      redmine.your_domain.com
        ServerAlias       redmine
        DocumentRoot    /var/www/redmine/public

        RailsBaseURI    /
        RailsEnv        production
        PassengerMaxPoolSize    4

        <Directory /var/www/redmine/public>
                Options FollowSymLinks
                AllowOverride   None
                Order   allow,deny
                Allow   from all
        </Directory>

        LogLevel        info
        ErrorLog        /var/log/apache2/redmine-error.log
        CustomLog       /var/log/apache2/redmine-access.log combined
</VirtualHost>
-------------------------------------------------------------------
# sudo a2ensite redmine.your_domain.com
# /etc/init.d/apache2 reload

http://your.ip.address:3000 
http://redmine.your_domain.com/

Reference

Application error

Rails application failed to start properly
/var/www/redmine/public/.htaccess file을 삭제한다.
# cd /var/www/redmine/public
# mv .htaccess .htaccess.orig



Posted by 준피
Server-Side/Linux2011. 1. 4. 11:30
Intro
기본적으로 아파치와 OpenSSL이 설치되어 있다고 가정합니다.

데비안의 경우 Subversion을 설치하기 위해 zlib, libxml2, libexpat1 등의 패키지가 필요합니다.

이번에는 Berkeley DB를 쓰지않고 파일시스템에 저장하는 방식으로 설치를 합니다.

Download
subversion, subversion-deps를 download 하고 운영할 서버에 저장합니다.
# tar xzfv subversion-1.6.15.tar.gz -C /usr/local/
# tar xzfv subversion-deps-1.6.15.tar.gz -C /usr/local
# cd /usr/local/subversion-1.6.15
# ./configure --with-apxs=/usr/local/apache/bin/apxs --without-berkeley-db
# make 
# make install

Create Repository
# mkdir /home/svn
# cd /home/svn
# svnadmin create --fs-type fsfs sample
# chmod -R g+w sample
# chown nobody sample -R
# chgrp nobody sample -R

Apache Configuration
모듈이 추가 되었는지 확인하고 없으면 추가해준다. 주석처리가 되어있다면 풀어준다. 그리고 Location을 지정한다.
# vi /usr/local/apache/conf/httpd.conf
------------------------------------------------
LoadModule dav_module          modules/mod_dav.so
LoadModule dav_svn_module   modules/mod_dav_svn.so
.
.
.
<Location /svn/sample>
    DAV    svn
    SVNPath    /home/svn/sample
</Location>
------------------------------------------------

Access Subversion
웹 브라우저에서 http://your.ip.address/svn/sample 로 접속을 하고 다음과 같은 화면이 보이면 정상입니다.
sample - Revision 0: /
----------------------------------------------
Powered by Subversion version 1.6.15(r1038135)

Add user authentication
"htpasswd -c" 옵션은 패스워드 파일을 처음 만들때 사용하는 옵션이다. 전에 지정한 Location을 수정한다.
# cd /usr/local/apache/conf
# ../bin/htpasswd -c passwd sampleuser
New password: test
Re-type new password: test

# vi /usr/local/apache/conf/httpd.conf
<Location /svn/sample>
    DAV svn
    SVNPath    /home/svn/sample
    AuthType    Basic
    AuthName    "test"
    AuthUserFile    /usr/local/apache/conf/passwd
    <LimitExcept GET PROFIND OPTIONS REPORT>    => 체크아웃은 누구나, 커밋은 지정된 사용자만
        Require valid-user
    </LimitExcept>
</Location>

Reference
Posted by 준피