7월부터 T wifi zone이 T 가입 핸드폰에서만 접속 가능하도록 바뀌면서 노트북에서는 인터넷을 쓸 수 없는 상황이 발생하곤 했다. 핸드폰으로 T wifi zone에 접속한 뒤 다시 무선 인터넷 공유를 해서 노트북에서 접속하도록 할 수 있으면 좋으련만, wifi 접속과 핫스팟 역할을 동시에 수행할 수는 없는지라 T wifi zone밖에 없는 곳에서는 핸드폰 조그만 화면으로 서핑을 하곤 했다.


OS가 Windows라면 Kies를 깔아서 USB 테더링을 했겠지만 Ubuntu를 사용하고 있기에 이마저도 불가능하여 이래저래 방법을 찾던 중, 제법 깔끔한 방법을 찾았다. 기본적인 아이디어는, localhost:8080을 프록시로 사용하도록 한 후 ADB를 통해서 localhost:8080 연결을 안드로이드 폰의 8080 포트로 포워딩하고, 다시 안드로이드 폰에서는 8080을 자체 네트워크로 포워딩시키는 것이다.

  1. 안드로이드에서 네트워크 포워딩

    마켓에서 Proxoid라는 어플(무료)을 찾아서 설치한다. 실행시킨 후 Start/Stop Proxoid 버튼을 눌러 포워딩을 동작시킨다. 기본적으로 8080 포트를 포워딩하도록 되어 있다.

  2. ADB를 이용해 안드로이드로 네트워크 포워딩

    우선 Android sdk를 설치해야 한다. 안드로이드 개발자 페이지 (새 창으로 열기) 에서 플랫폼에 알맞은 파일을 다운받은 후 압축을 풀어 준다. 압축을 푼 디렉터리 안에 platform-tools/adb 라는 바이너리가 존재할 것이다. 이것을 이용하여 포트를 포워딩할 것이다.


    /etc/udev/rules.d/ 디렉터리 아래에 90-android.rules라는 파일을 생성하고 다음 한 줄을 입력한 후 저장한다. 이 때 04e8 대신 자신의 핸드폰 제조사에 알맞는 ID를 적어야 한다. ID 리스트 또한 안드로이드 개발자 페이지 (새 창으로 열기) 에서 구할 수 있다.

    이제 다운받은 SDK 안의 platform-tools 디렉터리로 가서 다음 명령을 실행시킨다. 이제 localhost:8080은 핸드폰 네트워크를 이용하는 프록시가 되었다.

  3. 프록시 설정

    대부분의 브라우저에 프록시 설정을 변경하는 메뉴가 존재한다. 예를 들어, Chromium browser에서는 '기본 설정'->'고급 설정'->'프록시 설정 변경'에서 프록시 설정을 변경할 수 있다. 프록시 주소를 127.0.0.1, 포트를 8080으로 설정하고 적용한다. System-wide로 적용하도록 설정하면 브라우저 뿐만 아니라 모든 네트워크 연결에서 해당 프록시를 사용하게 된다.

    적절한 네트워크를 찾아서 더 이상 테더링이 필요하지 않을 때에는 핸드폰에서 Proxoid를 종료하고, 프록시를 사용하지 않도록 설정을 변경하면 된다.

이올린에 북마크하기

Redmine을 써 볼까 하고 깔다가... 생각지도 못한 삽질을 하게 되어서 삽질 로그를 남겨 봅니다. 삽질은 한 번으로 충분하니까.

설치 환경은 Ubuntu 10.04 LTS입니다. Database는 MySQL5를 사용합니다(설치되어 있는 것으로 간주합니다). 여기서 설명하는 버전 이외의 버전은 안 될 가능성이 높습니다. 버전 간 호환성이 매우 안 좋은 듯 합니다...

  1. RVM을 설치합니다. 현재 RVM에서 제공하는 스크립트가 약간 문제가 있어서 home 디렉터리 설치밖에 안됩니다. Home 디렉터리에 설치하고 환경 변수에 등록해 버리면 그만이지만, 저는 system-wide한 설치를 좋아해서, 스크립트를 조금 수정해서 설치했습니다. Home 디렉터리에 설치하고 환경변수 등록하는 방법은 여기 (새 창으로 열기) 참조. 아무 에디터로나 다운받아진 스크립트를 엽니다. 178번째 줄의 rvm_ignore_rvmrc, 203번째 줄의 UID, 214번째 줄의 UID 앞에 달러 사인($)을 넣어 줍니다. 예를 들어, 203번째 줄은 다음과 같이 바뀌어야 합니다. 저장을 하고 닫은 후에 스크립트를 실행시켜 설치합니다.
  2. Ruby 1.8.7를 설치합니다. RVM이 알아서 설치를 해 주면, 1.8.7 버전을 default로 지정해 줍니다.
  3. RubyGems 1.4.2를 설치합니다.
  4. 필요한 것들을 설치합니다.
  5. Database 세팅을 해 줍니다. Database 및 계정 생성 권한을 가지고 있는 계정으로 mysql에 접속하여 다음을 실행합니다. 물론 some_password 부분에 적절한 비밀번호를 적어야 합니다.
  6. 이제 redmine을 본격적으로 설치합니다. Remine이 설치될 위치로 이동하여 redmine repository를 checkout 받습니다. 저는 /var/www/ 에 받았습니다.
  7. DB 연결 설정을 해 줍니다. config/database.yml 파일을 열어(sudo) 다음과 같이 설정한 후 저장합니다.
  8. Session store를 생성합니다.
  9. DB 마이그레이션을 진행합니다. 언어를 선택하는 부분에서는 편한 언어(기본값은 영어)를 선택합니다. 한국어를 선택하려면 ko를 입력하면 됩니다.
  10. 드디어 redmine을 띄워 봅니다! 3000번 포트로 접속하시면 redmine이 떠 있는 걸 볼 수 있습니다!
  11. Sudo로 서버를 띄우는 건 위험할 수 있으므로 redmine이라는 사용자를 만들어서 적절히 권한 설정을 해 줍니다. 이제 다음 명령을 통해 권한이 축소된 redmine 계정으로 서버를 동작시킵니다. 이번에는 데몬 모드로 동작시켜 봅니다.
  12. 마지막으로 apache를 thin에 프록시로 연결시켜 줍니다. Apache2와 proxy 모듈이 설치되어 있다고 가정합니다. 다음 명령으로 proxy 모듈을 활성화시킵니다. 다음으로 /etc/apache2/site-enabled/000-default 파일을 수정하여 <VirtualHost *:80> 항목 안에 다음을 넣습니다. 이제 apache를 재시작한 후 80번 포트로 접속합니다! 기본 관리자 계정은 admin:admin입니다.

Troubleshooting

Rake 명령 실행시 'no such file to load -- openssl' 에러 발생

References

이올린에 북마크하기