Mac Leopard에서 Akelos구축 - (1)

역시나 새로운 걸 할땐 한 삽 푸고 시작해야하나 봅니다. 삽질을 좀 해야...

RoR을 모토로 만들었다는 Akelos를 사용할 기회가 생겼습니다. Akelos는 Ruby on Rails와 비슷한 웹 개발 프레임워크이고 php로 개발되어 있습니다. 동영상을 보곤 "아! 쉽네. 아! 편하겠다"란 생각이 들었는데 시작부터 만만하지 않더군요. 삽질로 인해 만들어진 산들을 차근차근 적어보도록 하겠습니다. 처음 설정이 제대로 되고 나면 다시 "아! 쉽네, 아! 편하겠다"란 말이 나오겠지요. :-)


# 아파치 세팅

Leopard를 설치하면 /etc/apache2위치에 Apahce가 설치되어 나옵니다. /etc/apche2/bin/httpd를 이용해서 서버를 구동해도 되지만 시스템 환경설정-공유-웹공유 체크로도 서버를 구동시킬 수 있습니다. Document Root는 /etc/apache2/conf/httpd.conf에 나와 있듯이 /Library/WebServer/Documents 입니다.

## 브라우저에서 php파일이 text로 바로 보일 때

처음 Document Root에 php파일을 만들어놓고 브라우저를 통해 보면 text로 보일겁니다. php모듈이 연결되지 않아서 그런건데요. httpd.conf파일에서 주석으로 처리된 부분을 열어주면 됩니다.

LoadModule php5_module        libexec/apache2/libphp5.so

# Akelos 설치

Akelos 설치는 http://www.akelos.org/download 에서 다운 받거나 svn을 이용해서 최신 파일을 받으면 됩니다.

svn co http://svn.akelos.org/trunk/ akelos

$ROOT$ = Akelos가 설치된 디렉토리


# Akelos 어플리케이션 생성

akelos는 새로운 어플리케이션을 생성합니다. akelos라는 명령어를 이용해 newApp를 만들 때, Akelos는 설정파일들을 복사합니다.

$ROOT$/akelos newApp

위와 같은 방법으로 어플리케이션을 만들려면 $ROOT$/config/config.php파일을 주석풀고 적절한 경로를 넣어줍니다. (처음엔 DEFAULT-config.php로 되어 있는데 이름을 변경해야겠지요.)

defined('AK_FRAMEWORK_DIR') ? null : define('AK_FRAMEWORK_DIR', '/Users/kwangsub/Documents/dev/Akelos/akelos');

다른 방법으로는 ./script/setup을 이용하는 방법입니다. 이를 이용하면 Akeols가 설치된 경로가 자동으로 설정되어 config.php파일이 만들어지네요. Booklink튜토리얼에서는 이 방법을 쓰고 있습니다.

$ROOT$/script/setup -d ApacheHOMEDIR/newApp -p /www/htdocs/newApp

# Apache Alias추가

Apache에서 얘기하는 alias가 Tomcat의 context라 비슷한 개념인가요? 아무튼, httpd.conf를 열어 alias를 추가합니다.

Alias /newApp "/ApacheHOMEDIR"

<Directory "/ApacheHOMEDIR">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

# 퍼미션 조절 & mysql.sock연결

브라우저에서 http://localhost/newApp를 입력했을 때 RoR과 비슷한 첫 페이지가 나온다면 성공이지만, 처음엔 그렇지 않더군요.

## 퍼미션 조절

$ROOT$/lib/constants.php파일을 읽어와야 하는데 permission이 없다는 에러가 나온다면 이렇게 하시면 됩니다. (정확하게 에러명이 기억이 안나네요) , 둘 중 한가지만 하시면 됩니다.

1. $ROOT$의 그룹과 권한을 변경한다.

www 계정이 있는 경우

chgrp -R www $ROOT$
chmod -R g+w $ROOT$

2. httpd.conf에서 <IfModule !mpm_netware_module>부분을 현 사용자로 변경한다.

좀 무식한 방법이긴 하지만 이런 식으로 바꿔줘도 되긴 됩니다. 다만, 나중에 배포할 때는 신경쓰여야겠지요.

<IfModule !mpm_netware_module>
  User kwangsub
  Group staff
</IfModule>

## mysql.sock 연결

mysql.sock으로 mysql과 연결시켜줘야 하는데 아래 처럼 해도 연신 /var/mysql/mysql.sock만 찾더군요.

... 중략 ...
    'development' => array(
    'type' => 'mysql',
    'database_file' => '',
    'socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
... 중략 ...


이 녀석 설정을 어디서 하는지 몰라 헤매다 결국 /var/mysql/mysql.sock에 심볼릭링크를 하나 만들어줬습니다.

sudo ln -s /opt/local/var/run/mysql5/mysqld.sock /var/mysql/mysql.sock

그냥 심볼릭링크를 만드는게 속편할 듯.

참고 - http://forum.akelos.org/discussion/148/


http://localhost를 입력해 보면 이런 화면이 보일겁니다.

사용자 삽입 이미지

포스팅하고 봤더니 설정에 대한 내용이 대부분이네요. 다음 포스트에서는 blog예제를 담아보도록 하죠.


[1] http://www.akelos.org/docs/

[2] http://www.akelos.org/docs/tutorials/booklink


댓글

  1. Anonymous5:45 오후

    비밀 댓글 입니다.

    답글삭제
  2. kwangsub9:05 오후

    늦어서 죄송해요. 답변드렸습니다.

    답글삭제
  3. linuxian6:18 오후

    안녕하세요 질문이 있어서 문의 드립니다.



    저는 호스팅업체를 사용하고있는데 거기에다가



    akelos를 설치할수있을까요?



    호스팅업체라서 root가 아니라 아파치 설정파일 같은것도 설정하기 어려울꺼같은데

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

Protopage.com

Android, MediaPlayer IllegalStateException 상황