Ubuntu 에서 Aptana plugin 삭제하기 Ruby on Rails

aptana 플러그인들이 자꾸 문제를 일으켜 삭제하기로 마음먹었다. 
이상하게 elicpse 에서 지우려 하면 uninstall 버튼이 비활성화되어 지울수 없었다. 

결국 
/usr/lib/eclipse/feature
/usr/lib/eclipse/plugins
/usr/lib/eclipse/configuration 

디렉토리에서 aptana 혹은 radrails, rubypeople, .aptana-setting 등 aptana 관련 파일들을 
수동으로 지워주니 깔끔하게 해결되었다. 


이벤트 로그 기록 Android

시나리오 1 
-
ActivityTest 가 처음 시작되며, 버튼 클릭으로 SubActivity 를 뛰운다. 그리고 SubActivity 에서 버튼을 클릭하여 자신의 finish() 를 호출한다.
이때 발생하는 이벤트 로그를 기록해보았다. 
** 로그기록중 onUserInteraction 와 onUserLeaveHint 는 버튼클릭시 발생하는 이벤트임에 유의하자.

==================
ActivityTest 시작 
==================

08-04 07:02:31.059: INFO/**(246): ActivityTest :: onApplyThemeResource
08-04 07:02:31.088: INFO/**(246): ActivityTest :: onWindowAttributesChanged
08-04 07:02:31.148: INFO/**(246): ActivityTest :: onWindowAttributesChanged
08-04 07:02:31.209: INFO/**(246): ActivityTest :: onContentChanged
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onStart
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onPostCreate
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onTitleChanged
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onResume
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onPostResume
08-04 07:02:31.309: INFO/**(246): ActivityTest :: onWindowFocusChanged

=================
SubActivity 시작
=================

08-04 07:03:06.859: INFO/**(246): ActivityTest :: onUserInteraction
08-04 07:03:07.169: INFO/**(246): ActivityTest :: onUserInteraction
08-04 07:03:07.178: INFO/**(246): ActivityTest :: onUserLeaveHint
08-04 07:03:07.178: INFO/**(246): ActivityTest :: onSaveInstanceState
08-04 07:03:07.178: INFO/**(246): ActivityTest :: onPause
08-04 07:03:07.219: INFO/**(246): SubActivity :: onApplyThemeResource
08-04 07:03:07.229: INFO/**(246): SubActivity :: onWindowAttributesChanged
08-04 07:03:07.238: INFO/**(246): SubActivity :: onWindowAttributesChanged
08-04 07:03:07.249: INFO/**(246): SubActivity :: onContentChanged
08-04 07:03:07.249: INFO/**(246): SubActivity :: onStart
08-04 07:03:07.249: INFO/**(246): SubActivity :: onPostCreate
08-04 07:03:07.249: INFO/**(246): SubActivity :: onTitleChanged
08-04 07:03:07.249: INFO/**(246): SubActivity :: onResume
08-04 07:03:07.249: INFO/**(246): SubActivity :: onPostResume
08-04 07:03:07.259: INFO/**(246): ActivityTest :: onWindowFocusChanged
08-04 07:03:07.309: INFO/**(246): SubActivity :: onWindowFocusChanged
08-04 07:03:07.418: INFO/**(246): ActivityTest :: onCreateDescription
08-04 07:03:07.418: INFO/**(246): ActivityTest :: onStop

=============================
SubActivity finish() 호출 시 
=============================

08-04 07:04:19.259: INFO/**(246): SubActivity :: onUserInteraction
08-04 07:04:19.389: INFO/**(246): SubActivity :: onPause
08-04 07:04:19.429: INFO/**(246): ActivityTest :: onRestart
08-04 07:04:19.429: INFO/**(246): ActivityTest :: onStart
08-04 07:04:19.429: INFO/**(246): ActivityTest :: onResume
08-04 07:04:19.429: INFO/**(246): ActivityTest :: onPostResume
08-04 07:04:19.478: INFO/**(246): ActivityTest :: onWindowFocusChanged
08-04 07:04:19.528: INFO/**(246): SubActivity :: onWindowFocusChanged
08-04 07:04:19.548: INFO/**(246): SubActivity :: onStop
08-04 07:04:19.578: INFO/**(246): SubActivity :: onDestroy


시나리오 2
-
ActivityTest 가 시작되었다. 근데 전화가 걸려왔다. 그리고 통화를 마친다. 

==================
ActivityTest 시작 
==================

08-04 07:02:31.059: INFO/**(246): ActivityTest :: onApplyThemeResource
08-04 07:02:31.088: INFO/**(246): ActivityTest :: onWindowAttributesChanged
08-04 07:02:31.148: INFO/**(246): ActivityTest :: onWindowAttributesChanged
08-04 07:02:31.209: INFO/**(246): ActivityTest :: onContentChanged
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onStart
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onPostCreate
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onTitleChanged
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onResume
08-04 07:02:31.219: INFO/**(246): ActivityTest :: onPostResume
08-04 07:02:31.309: INFO/**(246): ActivityTest :: onWindowFocusChanged

================
전화가 걸려왔다
================

08-04 16:12:58.249: INFO/**(3143): ActivityTest :: onSaveInstanceState
08-04 16:12:58.259: INFO/**(3143): ActivityTest :: onPause
08-04 16:12:58.299: INFO/**(3143): ActivityTest :: onWindowFocusChanged
08-04 16:13:00.349: INFO/**(3143): ActivityTest :: onCreateDescription
08-04 16:13:00.349: INFO/**(3143): ActivityTest :: onStop

=================
통화를 마친다
=================

08-04 16:13:13.379: INFO/**(3143): ActivityTest :: onRestart
08-04 16:13:13.379: INFO/**(3143): ActivityTest :: onStart
08-04 16:13:13.379: INFO/**(3143): ActivityTest :: onResume
08-04 16:13:13.379: INFO/**(3143): ActivityTest :: onPostResume
08-04 16:13:13.579: INFO/**(3143): ActivityTest :: onWindowFocusChanged



Apache2 mod-security 설치하기 Ubuntu Server DIY

http://blog.bodhizazen.net/linux/how-to-mod_security-ubuntu-904/ 

를 보고 했다. 

다만 위 내용에 추가되야 될건, 

mod-security 를 설치하면 기본 log 폴더로 /etc/apache2/logs 로 잡힌다는데, 내 경우 logs 폴더가 없었기에 직접 생성해주었다는것. 

사용자 그룹관리 및 권한설정 Ubuntu Server DIY

문제 : root 가 설치한 php 의 루트 디렉토리를 일반 사용자들이 이용할 수 있도록 ff 한다. 

이미 추가된 사용자들을 특정 그룹으로 묶고, php 의 루트 디렉토리의 소유권을 그 그룹에 넘겨주면 된다. 

1. 그룹 생성하기 (그룹명 : sdmembers)

sdroot@ubuntu:~$ sudo addgroup sdmembers

2. 기존 사용자를 위 그룹에 추가하기 (사용자명: ym)

sdroot@ubuntu:~$ sudo usermod -a -G sdmembers ym

확인해보자. 
sdroot@ubuntu:/var$ cat /etc/group | grep sdmembers
sdmembers:x:1012:ym,jhkim,dududu1,zzins,yesflash,namghiwook,aeddang,oneweb,air2791,haha23h

그룹에 추가된 사용자들이 보일것이다. 

그리고,  php 루트 디렉토리인 /var/www 로 이동한다.

3. php 루트 디렉토리의 권한을 그룹에 위임하기 

sdroot@ubuntu:/var$ sudo chown -R ym:sdmembers ./www/

확인해보자
sdroot@ubuntu:/var$ ls -al | grep www
drwxr-xr-x  2 ym   sdmembers 4096 2010-05-19 16:29 www

4. 루트 디렉토리에 그룹 쓰기권한 부여하기 

sdroot@ubuntu:/var$ sudo chmod -R g+w www/

확인해보자
sdroot@ubuntu:/var$ ls -al | grep www
drwxrwxr-x  2 ym   sdmembers 4096 2010-05-19 16:29 www

이제, /var/www 폴더밑에 sdmembers 들은 마음껏 폴더를 추가할 수 있다. 

ym 이란 사용자가 www 폴더밑에 추가하는 방식은 다음과 같다. 

1. 폴더 생성 
ym@ubuntu:~/var/www$ mkdir test6 

2. 권한확인 
ym@ubuntu:~/var/www$ ls -al | grep test6
drwxr-xr-x  2 ym       ym        4096 2010-05-20 12:11 test6

위의 경우를 보아, 다른 그룹원도 파일작성을 허용하려면, 
그룹의 쓰기 권한이 추가되어야 하고, 파일 소유그룹 또한 ym 이아닌 sdmembers 로 변경되어야 한다. 

3. 권한설정 
ym@ubuntu:~/var/www$ chmod 775 test6

ym@ubuntu:~/phproot$ ls -al | grep test6
drwxrwxr-x  2 ym       ym 4096 2010-05-20 12:11 test6

ym@ubuntu:~/phproot$ chown -R ym:sdmembers test6
ym@ubuntu:~/phproot$ ls -al | grep test6
drwxrwxr-x  2 ym       sdmembers 4096 2010-05-20 12:11 test6 

* ym 유저에게 좀더 편의를 제공한다면, ym 의 홈디렉토리에 php 루트로 가는 심볼릭 링크를 제공하는 것이다. 

ln -s /var/www phproot 

* FTP vsftpd.conf 설정파일에 local_umask 값이 022 로 잡혀있는지 확인하자. 이래야 사용자가 올린 파일을 웹브라우저로 확인할수 있다.

sudo vim /etc/vsftpd.conf  
local_umask 부분확인 :) 

끝 ~ 







FTP 설치하기 Ubuntu Server DIY


1. 설치
$ sudo apt-get install vsftpd
2. 설정
$ sudo gedit /etc/vsftpd.conf
anonymous_enable=NO // 기본값이 YES 이므로 NO로 변경
local_enable=YES // 주석 제거
write_enable=YES // 주석 제거
ftpd_banner=Welcome to my FTP service // 주석 제거 및 각자 원하는 코멘트 입력
3. 데몬 재시작
$ sudo /etc/init.d/vsftpd restart
4. 서버 작동 확인
$ netstat -ntl
tcp      0      0      0.0.0.0:21      0.0.0.0:*      LISTEN      →      이렇게 뜨면 정상 작동 중

사용자 계정 추가/삭제하기 Ubuntu Server DIY

출처 : http://mwultong.blogspot.com/2006/11/linux-create-account.html

adduser : 새 사용자 계정(ID) 만들기 명령어


"cool" 이라는 ID의 사용자 계정을 새로 만드는 것을 예로 듭니다.

adduser cool

프롬프트에서 위와 같이 하면, cool 이라는 아이디의 새 계정이 생성됩니다. 그러면

Enter new UNIX password (새 계정의 패스워드를 입력하세요)
이렇게 새 아이디의 암호를 2번 물어봅니다. 새 암호를 적어주면 됩니다. (실제로 타이핑되는 글자는 눈에 보이지 않습니다.)


Fuil Name []:
...
이제 아이디가 아닌, 사용자의 실제 이름 등의 개인 정보를 물어봅니다. 입력하지 않고 그냥 Enter키만 쳐도 됩니다.

Is the information correct? [y/N]
"정보가 정확하게 입력되었나요"라고 물어보는데 y키를 누릅니다.

그럼 이제 새 계정 만들기 작업이 완료되고, 프롬프트로 다시 빠져 나옵니다.


ls -a /home/cool
이라고 쳐보면 /home/cool 이라는 새로 만들어진 홈 디렉토리 밑에 기본적인 히든 파일들이 보일 것입니다.



deluser : 사용자 계정 지우기, ID 삭제


deluser cool

이라고 하면 즉시 cool 이라는 계정이 지워집니다. Yes/No를 물어보지 않고 즉시 지워 버리니 주의가 필요합니다.
그러나 이러면 계정만 지워지지 cool 이라는 ID의 홈 디렉토리인 /home/cool 은 그대로 남아 있습니다.


홈 디렉토리까지 모두 지우려면

deluser --remove-home cool

이렇게 해야 합니다.

그리고 홈 디렉토리뿐 아니라 cool 계정의 모든 파일을 완전히 지우려면

deluser --remove-all-files cool

이라고 해야 합니다.







추가 사항:

계정을 생성할 때 만약 cool 이라는 계정이 이미 있다면, adduser: The user 'cool' already exists. ('cool'이라는 사용자가 이미 존재합니다)라는 메시지가 출력됩니다.

Ubuntu server 한글 설정 Ubuntu Server DIY


우선 제목이 'Ubuntu server 설치 후 한글 설정' 이라기 보다
'Ubuntu server 설치 후 EUC_KR 한글 설정' 이 맞을거 같고

language-pack-ko와 language-pack-ko-base 은 x-window를 사용치 않는다면 설치 하실 필요 없으며

로케일 변경은 locale-gen 명령어로 합니다.
sudo locale-gen ko_KR.EUC-KR
sudo locale-gen ko_KR.UTF-8 로 합니다.

그리고 그냥 전혀 위 작업 하지말고

개인 .profile 에 언어 환경 변수 주어도 됩니다.
export LANG=ko_KR.UTF-8 또는
export LANG=ko_KR.EUC_KR


또한 이제는 서버를 euc_KR 보다 utf-8로 운영하는 것이 더 좋을것입니다.
euc_KR을 흔히 한글완성형이라고 하는데 이제 서버는 utf-8이 대세이며
아직도 EUC-KR을 고집하는 이유는 MS 에서 접속 때문들인데..
http://ko.wikipedia.org/wiki/EUC-KR
http://ko.wikipedia.org/wiki/Utf-8

euc_KR(한글완성형) 설정 할거 아니면 그냥 서버 설치된 상태로 사용 하시되 (LANG=c)
개인만 utf-8 환경 변수 주어 사용 하시기 바랍니다.
개인 .profile 파일에 export LANG=ko_KR.UTF-8

putty는 설정에 인코딩 옵션을 uft-8로 하면 한글 잘 보이고 지원 합니다.
변환 / 문자셋
Attachment:
파일 설명: putty : utf-8
putty.jpg

Ubuntu 9.10 에서 eclipse 메뉴내 버튼 클릭이 안되는 문제 우당탱 Ubuntu

원본 : http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/

The fix is relatively simple. Create a file in your home folder (or wherever you want) called eclipsefix.sh – open it and add the following lines:

export GDK_NATIVE_WINDOWS=true
/opt/eclipse/eclipse

(where /opt/eclipse/eclipse is the location of your eclipse application file). * 내 경우 /usr/bin/eclipse-3.5

Make sure you make it executable (chmod +x ~/eclipsefix.sh) then go to whatever shortcut you usually use to open Eclipse and change the command to point towards the file you just created (ie,/home/mou/eclipsefix.sh).

Now whenever you open Eclipse using this shortcut, the script will run and eclipse should work as expected.

According to the eclipse bug tracker, this issue should be fixed in Eclipse 3.5.2

Update 11/11/09daYmo has commented that to get it to work he had to use export GDK_NATIVE_WINDOWS=1, so if you have no luck the first time it may be worth giving this a try.


Apache2 Virtual Host 설정하기 Ubuntu Server DIY

도메인 이름별로 따로 virtual host 를 등록하는 법을 적어본다. 
Server version: Apache/2.2.12 (Ubuntu)


#> cd /etc/apache2/sites-available
#> sudo vim mydomain.com

<VirtualHost *:80>
        ServerAdmin ym@vi-nyl.com
        ServerName mydomain.com
        ServerAlias www.mydomain.com
        DocumentRoot /home/user/domainApp/public

        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        <Directory /home/user/domainApp/public>
                AllowOverride all
                Options -MultiViews
        </Directory>
</VirtualHost>

라고 입력하면 mydomain.com 이라는 파일이 생성된다. 

#> sudo a2ensite mydomain.com 
Enabling site default.
Run '/etc/init.d/apache2 reload' to activate new configuration!

#> sudo /etc/init.d/apache2 restart 

이제 반영되었다 :) 너무 간단하다. 

* 참고, mydomain.com 을 virtual host 에서 해제하고 싶다면 다음처럼 입렵하면 된다. 
#> sudo a2dissite mydomain.com





mysql - 외부접속 허용하기 우당탱 Ubuntu

환경 

OS : Ubuntu Server (Karmic Koala)
MYSQL : 5.1 version

특정 사용자 계정의 외부접속 허용하기 - 여기서는 root 를 예로 든다. 

1. mysql 접속 후 mysql database 선택 
mysql> use mysql;

2. user 테이블 살펴보기 
mysql> select host, user, password from user;

root 의 host 값들은 localhost, 127.0.0.1 등으로 기본 등록되어 있지만, 외부접속을 나타내는 값이 없다. 특정 아이피로 지정할 수도 있지만 여기선 % 기호로 어디서든 접속 가능하게 만든다. 

3. 권한 설정 
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';
Query OK, 0 rows affected (0.03 sec)

4. 등록확인하기
mysql> select host, user, password from user;

root 계정의 host 필드에 % 가 등록되었는지 확인한다. 

5. refrash
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

위 단계는 my.cnf 파일 수정후 서버를 재시작할 것이기 때문에 굳이 안해도 된다. 

6. my.cnf 에서 외부접속 관련사항 변경하기 
user@home:~$ sudo vim /etc/mysql/my.cnf 

파일 내용중 
bind-address = 127.0.0.1 
부분 주석처리후 저장하기 

7. mysql 재시작 
user@home:~$ sudo /etc/init.d/mysql restart 

8. 완료. 
이제 외부 클라이언트 프로그램에서 접속이 가능하다 ^^ 






1 2 3 4 5 6 7 8 9