아이폰의 시스템 경로와 타이타늄 파일시스템 경로

아이폰앱으로 개발을 하든 타이타늄으로 아이폰앱을 만들든 중요한 사실이 하나있다.
바로 아이폰의 각 시스템 폴더들은 각자의 역할들이 있다는 사실이다.
따라서 각 폴더의 역할이 무엇이지 제대로 알고 역할에 맞게 파일을 저장해야한다.
만약 따르지 않은면?? 애플은 여러분의 앱을 결코 용납하지 않을 것(?) 이다!!

일단 아이폰에서 특정 앱의 루트 파일 경로는 다음과 같다.

/Applications/apple_app_id/

아이폰 시뮬레이터는 다음과 같다.

/Users/user_name/Application Support/iPhone Simulator/ios_version/Applications/apple_app_id/

그럼 타이타늄 파일스템의 경로들이 어떤 경로들을 가르키고 있는지 정리해본다. 참고로 위 루트 경로는 중복되므로 생략한다.

  • Titanium.Filesystem.applicationDataDirectory:
    /Documents/ – iTunes와 공유되는 폴더
  • Titanium.Filesystem.applicationDirectory:
    /Applications/ – 애플리케이션 폴더
  • Titanium.Filesystem.applicationCacheDirectory:
    /Library/Caches/ – 설정이나 캐시등을 저장하는 폴더
  • Titanium.Filesystem.applicationSupportDirectory
    /Library/Application Support/ – iCloud 자동 백업, 다른 앱과 연동에 필요한 데이터를 저장하는 폴더
  • Titanium.Filesystem.resourcesDirectory
    /[AppName.app]/ – 타이타늄 앱 리소스 폴더
  • Titanium.Filesystem.tempDirectory
    /tmp/ – 임시파일, 앱이 죽거나 재시작하면 없어진다.

Mac에 기본으로 설치된 아파치를 이용해 가상 호스트 설정 하기

그동안 삽질의 삽질을 거듭한 끝에 가상호스트 설정에 성공했다. 유후~ 😀
일단 기본으로 설치된 아파치를 활용하는 팁은 아래 링크를 참고한다.
맥에 기본으로 설치되어 있는 아파치 활용하기

이제부터 본격 vhost 설정을 시작해보자.
맥에는 기본으로 설정된 사이트 경로가 두개 있다.

먼저 ‘localhost’ 로 설정되어 있는 루트 경로는 아래와 같고,

/Library/WebServer/Documents

‘localhost/~사용자이름’ 으로 설정된 경로는 아래와 같다.

/Users/사용자이름/Sites

그런데, 문제는 저 두 기본 경로말고 내가 원하는 경로에 가상 호스트를 설정하고 싶은 경우다.
가령, 이클립스 작업 경로 전체를 웹서버로 돌리고 싶은경우..
경로는 아래와 같다고 가정해보자.

/Users/사용자이름/Documents/workspace

그래서 가장 쉬운 방법은 아래 가상 호스트 설정 파일을 열어서,

/etc/apache2/extra/httpd-vhosts.conf

다음과 같이 작성하고 서버를 재시작한다.

서로 다른 이름으로 호스트를 설정하고 싶은 경우 설정한다.

NameVirtualHost *:80

기본 아파치 호스트 경로


   DocumentRoot “/Library/WebServer/Documents”
   ServerName localhost

가상 호스트 경로


     DocumentRoot “/Users/사용자이름/Documents/workspace”
     ServerName workspace


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all

위 설정을 가만히 보면, 2개의 가상호스트를 설정하고 각각 이름은, localhost와 workspace다.
물론 localhost는 /etc/hosts 파일에 기본으로 설정되어 있지만, workspace는 설정되어 있지 않기 때문에 호스트(/etc/hosts)파일을 열어서 “127.0.0.1  workspace”를 추가해준다.

자, 그럼 http://workspace 를 브라우저 주소에 넣고 실행해보자!!
뚜둥~!! 이런 포비든이다.. ㅇㅎㅎ

> Forbidden >

> You don’t have permission to access / on this server. >

아마도 대부분이 여기서 막혔을 것이다. ㅇㅎ

이 문제의 원인은 파일 보안 시스템에 의해 접근이 제한된 것이다.  
따라서 해당 경로의 접근 권한을 풀어줘야한다.
터미널을 열고, 다음과 같이 권한을 수정한다.

/Users/사용자이름$> chmod 755 ./Documents

/Users/사용자이름$> cd Documents

/Users/사용자이름/Documents $> chmod 755 ./workspace

ls -al 을 이용해 설정된 권한을 살펴보자. 아래와 같이 설정이 됐다면,
이제 더이상 포비든이 뜨지 않을것이다!!

drwxr-xr-x+ 18 사용자이름  staff   612  8 18 16:14 Documents
drwxr-xr-x@ 18 사용자이름  staff   612  7 19 16:37 workspace 이상 끝~!!

맥에 기본 설치된 Apache 활용팁

Mac OS X 에는 tiger 버전 부터 기본으로 설치된 Apache2가 있다.
현재 내가 쓰고 있는 Mac 버전은 스노우래퍼드고,  apache2 의 위치는 아래와 같다.

/etc/apache2/


아파치 서버 실행 방법
그리고 맥에 기본 설치된 아파치를 실행하기 위해선 아래와 같이

시스템환경설정 > 공유 > 웹공유 를 체크하면 된다.
사용자 삽입 이미지

가상 호스트 설정

일반적인 가상 호스트 설정하는 방법과 마찬가지로, vhost-httpd.conf 라는 파일을 생성해,
httpd.conf 에서 Include 하는 방법을 알아보자.
먼저 기본으로 설치된 아파치 폴더에서 /etc/apache2/httpd.conf 파일을 열고, 맨아랫줄을 보면, 아래와 같이 주석처리가 되어있는 부분에서 주석(#)을 제거하자.

#Include /private/etc/apache2/other/*.conf

그리고 other 폴더에 가보면, 맥은 참으로 친절하게 이미 vhost-httpd.conf 파일을 만들어놨다것을 알수있다. 이제 vhost-httpd.conf 파일을 열어서, 원하는대로 호스트 설정을 하면 되시겠다!

대충 샘플은 아래와 같으니, 적당히 수정해서 쓰면 끝~!!

<VirtualHost *:80>
    DocumentRoot “/Library/WebServer/Documents/Me2Money”
    ServerName local.me2day.net
    ErrorLog “/private/var/log/apache2/local.me2day.net-error_log”
CustomLog “/private/var/log/apache2/local.me2day.net-access_log” common
<Directory “/”>
Allow from all
Options +Indexes
</Directory>
ProxyRequests Off
<Proxy /*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /seleniumReport/ http://local.me2day.net:8088/seleniumReport/ retry=1
ProxyPreserveHost Off
</VirtualHost>
이제 테스트를 위한 /etc/hosts 파일을 열어서, 원하는 호스트를 설정을 한다.
#Me2Money
10.0.1.4 local.me2day.net
그리고, 브라우저에서 설정한 호스트(local.me2day.net)로 접속하면, 로컬 아파치로 접속하게 된다!

Apache + PHP 연동

맥에는 역시, php 모듈도 기본 설치 되어 있다. 연동은 너무나 간단하다.
사실상, 이미 연동되어 있다고 생각해보 무방하다.
기본으로 설치된 PHP 연동을 위해서는 httpd.conf 파일을 열면,
아래와 같이 주석으로 처리된, php 모듈만 로드해주면된다.

#LoadModule php5_module        libexec/apache2/libphp5.so

간단히 주석을 제거한후, 아파치를 다시 실행하자.
그리고 간단한 phpinfo(); 파일을 출력해보자.

사용자 삽입 이미지
올레~~ 성공~!!
차암~ 쉽죠~!!