티스토리 툴바

블로그 이미지
at Round Here, we are all the same 이현봉

카테고리

분류 전체보기 (71)
Round Here (23)
음악 (5)
PC 오디오 (5)
스피커 만들기 (0)
앰프 (2)
기술 얘기 (16)
생각을 생각 (19)
Total33,105
Today4
Yesterday5

달력

« » 2012.01
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

AWS linux 에 Joomla1.7.3을 설치해 보자.

localhost에 Joomla를 설치한 경험을 살려 다음과 같은 방법을 실행했음.

1. Joomla를 local에 다운 받은 후 압축을 풀음.

2. Filezilla 를 EC2 계정으로 연결 해 Joomla 파일들을 업로드 시도.  Filezilla가 EC2 계정에 접근 가능하도록 PuTTY ssh 클라이언트에서 certificate 설정해 주었듯이 Filezilla도 유사하게 설정해야 함.  다행인 것은 Filezilla가 putty에서 생성한 개인키를 인식함.  따라서, 편집->설정->SFTP로 들어가 "키 파일 추가" 에서 putty - AWS 접속 시 만들어 두었던 *.ppk 키파일을 추가함.



3. 이와 같이 해서 filezilla로 EC2와 ftp 가능한데 (프로토콜 : SFTP, 사용자 : ec2-user, 로그 유형 : 일반, PassWord : blank )  upload 해 보니 속도가 늦고 전송오류들이 생김. 

4. EC2에서 직접 Joomla 설치를 고려해야 겠음.

5.
- https://help.ubuntu.com/community/joomla
- http://docs.joomla.org/Installing_Joomla_on_Debian_Linux#BitNami_Joomla.21_stack 
- http://www.oyvindroti.com/myblog/?p=6 참고

6. document root 의 Joomla 폴더에서 Joomla 패키지를 갖고 옴.
# wget  http://joomlacode.org/gf/download/frsrelease/16024/69672/Joomla_1.7.3-Stable-Full_Package.tar.bz2   
# tar  -xvjf  Joomla_1.7.3-Stable-Full_Package.tar.bz2   // extract

7. 설치한 Joomla permission 변경

8. 설치된 url로 들어가 Joomla 설치


Posted by 이현봉
AWS 표준 LINUX AMI (CentOS) 에 일반적인 AMP가 설치되어 있는 상태에서 Alternate PHP Cache 설치하려 함.
시작하기 전에
# sudo yum update
# pear upgrade-all

1. 일단 앞서 Ollech cloud 에서 했던 방법으로 해 봄

# sudo yum install  php-devel httpd-devel pcre-devel
# pecl install apc

configure: error: in `/var/tmp/pear-build-rootxNv5vJ/APC-3.1.9':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ERROR: `/var/tmp/APC/configure --enable-apc-debug=no --enable-apc-filehits=no --enable-apc-spinlocks=no --enable-apc-memprotect=no --enable-apc-pthreadmutex=yes --enable-apc-pthreadrwlocks=no' failed

나오면서 안됨.  C compiler로 못찾아 build를 못하는 것 같음.

2.  그래서 gcc 설치

# yum install gcc
# pecl install apc

빌드 되다가 에러 발생.  make가 안된단다.

config.status: executing libtool commands
running: makeconfig.status: executing libtool commands
running: make
sh: make: command not found
ERROR: `make' failed

3. 그래서 구글해보니 make를 별도로 설치해줘야 하는 것 같아...
           
# yum install make 
# pecl install apc

4. apc 설치 성공.  /etc/php.ini 에 하라는대로 "extension=apc.so" 넣어 주고 아파치 재가동 후 확인. 또는,
# echo extension=apc.so > /etc/php.d/apc.ini 
하여 /etc/php.d/apc.ini 파일을 만들어 extension=apc.so 를 넣어주어도 된다.

5.  결론적으로 아마존 linux AMI 에서 APC 설치하려면,

# sudo yum install php-devel httpd-devel pcre-devel gcc make
# sudo pecl install apc

Posted by 이현봉

KT uCloud 튜닝

기술 얘기 / 2012/01/05 00:28
KT Olleh Ucloud 서버 중 가장 저렴한 1vCore, 1GB 메모리, 100GB 사양을 선택하고...
PHP 를 중심으로 튜닝.

CentOS5.4 인 OS를 업데이트 할 수 있는지?  지난번 Ubuntu 가상서버에서는 잘 되지 않았는데...
- AMP를 각각 업데이트 할 수 있는지. 
- SE가 요구하는 AMP의 추가 모듈들을 설치하고 사용할 수 있는지

- 일단 /root의 .bashrc 가서 내가 좋아하는 형태로 UI 개선하고 몇개 변수 만들어 export하고 source .bashrc
- yum 에 대해 읽어보니, 대충 apt와 비슷.  구글링하고,,,
- yum의 repository 정보가 /etc/yum.repos.d  폴더에 있다.  패스.
- 과감하게 전체 업데이트를 목표로...  된다.  Kernel도 보이고, Citrix Xen도 보인다.  걱정된다....  한참 간다..
- 죽지 않고 끝났다.  #service httpd restart   된다.   가상서버 다시 restart.  살았다. 
- /etc/redhat-release 에 CentOS release 5.7 (Final) 라고.  CentOS5.4가 5.7로 되었다.  PHP 5.1.16이 5.2.10으로 되었고.
- 간단히 yum install php-bcmath 같이 처리.  phpinfo 로 enable됨 확인.
- php-mcrypt 설치.  나중에 필요할 것 같은 패키지 설치. 
- 몇번 아파치 restart,  서버 restart.  testing.  OK. 
- Alternative PHP Cache (APC) 설치하자.  지난번 윈도우즈에 설치할 때 조금 애먹었는데...
- APC는 PEAR에 있으니...  php-pear는 이미 설치되었고.
- 이렇게 했는데 안된다.   소스 컴파일하다가 " error: pcre.h: No such file or directory "  하면서 못 찾는단다.  그리고는 에러들...   CentOS5.7에 APC3.1.9를 설치하는 것인데,,,  APC는 최신이구먼, 
- 구글링, 또 구글링
- 고민,,,, 
- # yum install pcre-devel  했다.
- # pecl install apc  ....     된다.

Build process completed successfully
Installing '/usr/include/php/ext/apc/apc_serializer.h'
Installing '/usr/lib/php/modules/apc.so'
install ok: channel://pecl.php.net/APC-3.1.9
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini

- /etc/php.ini 에서 extension_dir = "/usr/lib/php/modules"   그리고, /etc/php.d 에 있는 .ini 파일들을 통해 extension module 들이 아파치 로드될 때 같이 로드된다고 하네...  그런데 apc.ini 같은 것이 /etc/php.d 에 없다. 그래서 extension=apc.so  를 굳이 php.ini에 넣으라고 하는 건가?  넣었다.
- 다시 service httpd restart
- phpinfo 보니 apc가 보인다. 

- phpmyadmin 설치를 위해 document root로 이동
- wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.4.7/phpMyAdmin-3.4.7-all-languages.tar.gz
- tar -xzvf phpMyAdmin-3.4.7-all-languages.tar.gz -C  .
- rm phpMyAdmin-3.4.7-all-languages.tar.gz
- 후속 설정 해 주고.

* 많은 사람들이 cPanel 쓴다는데,,,  많이 편한가? 
Posted by 이현봉

이 세상 많은 문제의 원인은 귀에 익어 잘 알고 있다고 생각하는데 실제는 별로 그렇지 않기 때문이다. 그런데 바로 그 이유때문에 문제가 발생하기 전에는 현재 나의 문제를 모른다는데 문제가 있다. 

사는게 오묘하다.  









Posted by 이현봉
한달 전만해도 .NET이 대체 어찌 생긴 녀석인지 잘 몰랐다. 그런데 관심을 갖아야 할 이유가 생겼다.  이럴 줄 몰랐다.  또 이렇게 모를 일이 생길 것이 얼마나 많을지.

다행스럽게 .NET환경이 자바와 거의 닮았다.  MSDN에 가니 자료가 넘친다.  2주 전 Visual Studio 2010을 깔다가 황당했다.  7기가 바이트가 넘다니.  OMG.  이래 저래 C 드라이브에 공간을 마련하고 설치시작...  그리고 몇 시간이 걸렸다.  

10년도 더 지난 전에 학생들 가르칠때 VS6.0 과는 천양지차.  그동안 많이 발전했다.  Eclipse보다 단순하고 직관적이다. Eclipse 쓰던 사람은 쉽게 적응하겠다.  한가지 아쉬운 것이 VS 2010 이 한글판이라 금방 눈에 들어오지 않는다.  라이브러리 보는 것은 인터넷 영어판으로 연결해 보고 있다. 

무엇으로 공부할까 하다 Andrew Troelsen 이 쓴 Pro .C# 2010 and .NET 4 platform으로 정했다.  잘 썼다.  가끔씩 유머스러운 내용도 있고.  .NET이 어떻게 돌아가는 지에 대해서도 잘 설명했다.  이 책과 C# for Java Developers 의 도움을 받아 쉽게 C#에 적응할 수 있었다.  JAVA와 거의 같으면서, 자바보다 더 다양한 기능/syntax를 제공한다.  어떤 것은 자바에서 꼭 있었으면 하던 것을 제공해 주어서 좋다.  그렇지만 Pointer는 없애도 좋았을 것이다.  JAVA의 event handling 방법보다 C#의 방법이 더 나은 방법인것 같다. 좀 혼동이 되는 것은 event와 delegate간의 관계이다. 
Type이 event라고 생각해 오브젝트를 찍어보면 delegate 종류로 나온다.  event야 delegate야?  대체 너희 둘은 무슨 관계냐?

public
delegate void MyEventHandler();  // MyEventHandler 라는 패러미터가 없고 return이 void인 형태의 delegate를 선언 

class
TestEvent
{
   
// Declare the event of type MyEventHandler. Event handlers
     
       // for TriggerIt must have the same signature as MyEventHandler.

      public event MyEventHandler TriggerIt;   // C#에서 event는 해당 클래스의 public member variable이다.  즉, event를
// 발생시키는 (publish) 클래스는 event 오브젝트를 갖고있는 (has a) 형태이다
     
TriggerIt은 이벤트인데, 이 녀석은 MyEventHandler라는 delegate와 딱 붙어 움직인다.  따라서, event를 선언할 때 그 event와 짝을 이루는 어떤 signature를 갖는 delegate(즉, 그 delegate가 가르치는 event handler의 signature)를 함께 선언함으로써 그 event가 어떤 signature를 갖는 event handler method들을 받아드리는가 (등록을 가능하게)하는 것을 함께 선언하고 있다.  Visual Studio는 TriggerIt을 찍으면 이것이 MyEventHandler 타입이라 알려준다.  이말은 TriggerIt이 event인데, 이것에 MyEventHandler 형태 ( 즉, void return, no parameters) 의 event handler를 등록시킬 수 있다는 것을 말해주는 것이다.

TriggerIt += new MyEventHandler(event_handler_method) 형태로 TriggerIt에 event_handler_method를 등록한다.  즉,  MyEventHandler 형태의 delegate를 생성해서 그 녀석이 event_handler_method 를 가르키라는 것이고, 이런 reference를 TriggerIt에 등록하라는 것이다.   event_handler_method는 Java와 다르게 특정 interface를 구현하는 메소드명일 필요가 없다.   TriggerIt 이벤트를 발생시키려면 단순히  TriggerIt() 하면 된다.  마치 TriggerIt 의 constructor를 부르는 것과 같이. 

     1.  MyEventHandler ---> event_handler_method   // two have the same signature
     2.  MyEventHandler is registered to TriggerIt        // by += operator
     3.  When TriggerIt is fired by TriggerIt(), TriggerIt event is published to its subscribers and event handlers in them get
         to be executed. 

MS가 제공하는 Smart Client Software Factory 2010을 써서 DeskTop app을 만들어 보려 한다.  첫인상은, 아니 그래봐아 PC 어플인데 무슨 이렇게 까지 해야 하나?  C# 와 Visual Studio 만 갖고도 좋더구만.  그런데 몇일째 보다 보니 SCSF 2010 그게 아니다.  이거 정말 OO 개발방법과 디자인패턴을 녹여내 만든 시도이다.  모든 SW 개발/architect의 꿈인 종속성 없애기, Dependency Injection, 메시지로 주고 받기, runtime에 필요한 것 composite해 플러그인 같이 끼워 놓을 수 있기, 모듈들이 asynchronous하게 동작하기와 같은 사상이 담겨져 있다.  그런데 Inversion of Control 을 많이 사용해 지나치게 정형화되어 있어 외울 것도 많고 복잡하다.  익혀도 쓸모가 있을까?   

여기서 말하는 Command, Event Broker 같은 말이 패턴에서 말하는 그런 말이란 것이지...  감동이 몰아친다.  SW 개발은 이렇게 해야 한다.  그래도 역시 복잡하다.  익숙해지려면 좀 시간이 필요할 것 같다.  80년대 말 인공지능인가 Symbol Processing 과목이었던가 blackboard 패턴/구조를 만들어 비슷한 기능을 했던 기억이 난다.  모듈들끼리 직접 call 하지 않고 blackboard를 메시지의 publish/subscribe 매개체로 삼아 종속성을 줄이고.  Android 개발환경이 이런 패턴을 포함하더니 이제는 일반화되는 것인가?   

대한민국의 SW 생태계는 어디로 가고 있나?  SW엔지니어는 무슨 희망을 갖고 사는지?  내가 후배들에게 SCSF와 같은 개발 방법을 익히는게 좋을 것 같다고 자신있게 말할 수 있을까?  

Let it go.

Posted by 이현봉

최근에 달린 댓글

최근에 받은 트랙백

글 보관함