출처 : http://blog.kimsaem.net/kimsaem/entry/apache%EC%97%90-%ED%94%8C%EB%A0%89%EC%8A%A4-%EC%84%A4%EC%B9%98%ED%8E%8C-php%EC%8A%A4%EC%BF%A8
원본 저작자 : PHP 스쿨 '님프'
요즘 RIA라는 단어와 함께 많이 등장하는 것이 FLEX입니다. 우리에게 그림파일 편집툴로 잘 알려진 포토샵을 만든 어도비사(Adobe)에서 만든 것입니다.
플 렉스(Flex, 이하 한글로 표시)는 간단하게 말하면 프로그래밍 플래쉬 라고 말할수 있습니다. mxml이라는 메타태그형태로 텍스트 편집기로 작성을 하고 확장자를 mxml로 저장한다음 플렉스를 컴파일할수 있는 서버에 올려놓고 웹페이지주로서 그 파일에 접근하면
놀랍게도 플래쉬로 동작을 하게 되는 것입니다.
대충 눈치 빠르신 분들은 아시겠지만, 플렉스는 서버 사이드 스크립트(Server Side Script)이기 때문에 웹서버가 있어야 합니다. 뭐 꼭 필요하진 않다고 하면 할말은 없지만 대부분 서버가 있어야 합니다. -_-;;
그런데 여기저기 돌아댕겨 보니 리눅스에서 플렉스를 설치하는 방법을 소개한곳이 별로 없더군요.(있겠죠... 못찾은 내가 바보죠...)
그래서 내 나름대로의 방법으로 설치를 해서 성공을 는데 이를 소개 하도록 하겠슴다.
초고수분들은 걍 지나가주시면 감사하겠으며 정 답글 달고싶으시다면 경려의 글이라도.. -_-;;
그와 더블어서 경어체 없이 그냥 말하겠습니다. 털석~ ㅡ0ㅡ
1.준비물
리눅스 박스의 Root권한 - 이게 없으면 시작도 못한다.
리눅스 박스 - AMP 구축 되어 있으면 됨.
Flex module for Apache - 플렉스를 아파치와 연동되게 하기 위한 모듈. 어도비사에서 만들어서 배포함.
Flex 2 sdk - 당연히 있어야 겠죠. 플렉스 본체.
JRE - 썬(Sun)에서 배포하는 JRE 최신판.
2.자세한 환경 소개.
내가 설치한 환경을 자세히 소개 하는 것이 먼저다. 왜냐하면 리눅스 박스라는 것이 여러종이 존재하고 그중에서도 APM버전도 다를수 있기 때문이다.
OS: CentOS 5.0 (32bit)
Apache : 2.2.3 (배포판에 포함된 rpm버전)
mysql: 4.0.26 (mysql은 중요하지 않다.)
Php: 4.3 (php.net 배포 소스 컴파일 설치)
JRE: 1.6.0_01 (썬 정식 배포 버전)
CPU:Celeron(R) CPU 2.40GHz
RAM: 512MB
3.먼저 피해야 하는 것들.
일단 먼저 피해야 하는것을 소개한다. 무슨말이냐면 플렉스를 설치하는데 있어 도저히 안되는 것을 말한다.
1)64bit버전의 Apache
일 단 64bit버전의 Apache에서는 동작하지 않았다. Apache의 시작시에 모듈 로딩 에러를 뿌리면서 Apache가 구동되지 않았다. 그래서 어도비에 싸이트를 뒤적여봤지만 32/64bit 버전이 따로 존재하지 않았고 나의 메인 리눅스인 64bit에서는 동작하지 않고 32bit 서브 리눅스에서는 잘 동작했다.
2)배포판에 포함된 jre 패키지
배 포판에 기본으로 배포되는 jre는 mxml컴파일시에 '세크먼트 폴트'가 났다. 영문을 몰라 해메던중에 해외에서 나와 유사한 사례가 많다는것을 봤고 해결법도 알게됐다. 배포판에것을 쓰지 말고 Sun에서 배포하는 것을 쓰라는 것이다.
4.시작~
이제 부터 시작이다. 먼저 Flex 2 sdk를 다운로드 받아야 한다. www.adobe.com/products/flex/downloads/ 에서 다운로드 받을수 있다. 리눅스 플렉폼이 없다고 것정하지 말라. 윈도우용파일과 리눅스 용파일이 혼재되어 있다. -_-;; (왜 이렇게 만들었는지 모르겠다. 귀찮았나... )
1) Flex_sdk_2 설치.
윈도우에서 다운받았다면 리눅스 박스로 전송해줘야 한다. 그런다음에 압축을 해제해줘야 하는데 일단 스톱!!! 압축을 해제할 폴더를 먼저 만들어야 한다. 그냥 풀면 현재 디렉토리에 파일이 쫙 풀린다.-_-;;
]#mkdir /usr/local/flex_sdk
]#mv flex_sdk_2.zip /usr/local/flex_sdk
]#cd /usr/local/flex_sdk
]#unzip flex_sdk_2.zip
Archive: flex_sdk_2.zip
inflating: additional-legal-notices.htm
creating: asdoc/
creating: asdoc/lib/
inflating: asdoc/lib/xalan.jar
creating: asdoc/templates/
..............................
위와 같은 과정으로 하면된다. 플렉스 SDK가 위치할 디렉토리를 만들고 그곳에 압축해제하면 된다. 나는 /usr/local/에 flex_sdk 디렉토리를 만들어서 거기다 풀었다. 이로서 SDK 설치는 끝난것이다. 쉽지 않은가?
2) Flex_module_manual_install
그 다음으로 플렉스의 아피치 모듈을 설치해야 한다. 이것은 어도비사의 홈페이지에 정식으로 올라와 있지 않다. 꽁꽁 숨겨놨다. 구글에서 'Flex module for apache'로 치면 제일 먼저 나오는 싸이트를 클릭하면 어도비에서 운영하는 랩(Lab)이 나오면서 아파치 모듈설치를 위한 자세한 글도 나온다.
그런데 눈 씻고 찾아봐도 리눅스 얘기는 없다. 윈도우하고 맥킨토시만 있을뿐이다. 그런데 글 중간 하위부분에 다음과 같은 글이 보인다.
"
If you are running Linux or the installer does not work properly for your particular setup, download the manual install zip file and follow the instructions in the included readme.txt file
"
그렇다. 매뉴얼 설치파일이 제공되고 있는것이다. 우리의 목표는 저거다. 저걸 다운받자.
그리곤 리눅스 박스로 올린다.
플렉스 아파치 모듈은 플렉스 SDK가 설치된 디렉토리에서 압축을 해제 해야 한다. 그러니까 아파치 모듈과 플렉스 런타이머가 플렉스 SDK 밑에 있어야 한다는 것이다.
]#mv flex_module_manual_install_050107.zip /usr/local/flex_sdk
]#cd /usr/local/flex_sdk
]#unzip flex_module_manual_install_050107.zip
..............................
creating: modules/iis/
inflating: modules/iis/mod_flex.dll
replace samples/README.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:
....................................
위와같이 플렉스 SDK가 설치된 디렉토리에서 압축을 해제한다. 중간에 보면 파일을 덮어쓸건지 물어보는데 과감히 A(All)를 해준다.
이로서 아파치를 위한 플렉스 모듈과 런타이머가 설치됐다.
다음은 JRE이다.
3) 자바 런타임 컴파일러 JRE
내 가 배포판에 있는 JRE로 플렉스를 실행했을때 '세그먼트 폴트'가 났다. 적지 않게 당황했는데 해외 사이트를 돌아댕기다 보니 나만 이런게 아니라는 사실과 함께 의외로 문제 해결도 간단하다는 것을 알게 됐다. 배포판에 것이 아닌 썬(Sun)에서 정식으로 배포하는 것을 쓰면 된다는 것이다.
JRE는 http://java.sun.com 에서 배포한다. 여기서 보면 유닉스의 경우 2가지 파일로 배포하는데 리눅스의 경우 jre-6u1-linux-i586.bin 를 다운받았다.
다운받았다면 리눅스로 올리던지 리눅스 박스 사용자라면 다음을 기다린다. ㅋ
실행권한을 주고 실행한다.
]#chmod 755 jre-6u1-linux-i586.bin
]#./jre-6u1-linux-i586.bin
라이센스가 나오고 스페이스바를 누르면 스크롤이되며 다 되면 동의할거냐고 물어본다. 당근 동의지.. -_-;;
]#mv jre1.6.0_01 /usr/local
]#cd /usr/local
]#ln -s jre.1.6.0_01 java
이로서 플렉스 환경은 모두 구축됐다.
4) 설정.
리눅스를 많이 하시는분을은 아는 얘기지만 '설정(Configure)' 파일을 다루는것이 얼마나 중요한 것인지 다 안다. 무언가를 설치하거나 연동하거나 삭제하거나 하면 뭔가 설정을 해주거나 변경해주거나 삭제해줘야한다.
먼 저 패스(PATH)설정을 해줘야 한다. 리눅스의 패스 설정은 다양하게 할수 있지만 전역적으로 설정하는 곳은 단 한군데다. /etc/profile 이것을 vi로 열어서 다음과 같이 편집해고 저장한다.(Vi 사용법은 인터넷에서 찾기 바람..)
PATH=$PATH:/usr/local/flex_sdk/bin:/usr/local/java/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
export PATH~ 저부분이 보일것이다. 그러면 그위에 다가 위와같이 입력해주고 저장해준다. 그리곤
]#source /etc/profile
해줌으로써 리눅스가 새롭게 패스설정을 하도록 한다. 이렇게 패스 설정을 하는 이유는 플렉스의 런타머와 자바 런타머의 위치를 알려주기 위함이다.
다음으로 플렉스 런타이머를 설정해줘야 한다.
]#cd /usr/local/flex_sdk
]#vi compiler.sh
compiler.sh 파일을 보면 알겠지만 쉘스크립트 파일이다. 다음과 같이 한줄로 되어 있다.
java -Djava.awt.headless=true -ms128M -mx256M -jar "/flex_sdk_2/flexc.jar" ${*}
위의 것을 다음과 같이 바꾼다.
java -Djava.awt.headless=true -ms128M -mx256M -jar "/usr/local/flex_sdk/flexc.jar" ${*}
그리곤 compiler.sh 파일을 /usr/bin 디렉토리로 복사해준다.
]#cp compiler.sh /usr/bin
이렇게 하면 플렉스 런타이머 설정은 다 된것이다.
다음으로 아파치의 설정 파일인 httpd.conf를 설정해줘야 한다. vi로 httpd.conf를 열어 다음을 추가한다.
LoadModule php4_module /usr/lib/httpd/modules/libphp4.so
LoadModule flex_module /usr/local/flex_sdk/modules/apache/linux/22/mod_flex.so
AddHandler type-map var
AddHandler flex .mxml
위와같이 모듈을 추가해주고 밑에 플렉스 파일임을 인식시키기위한 핸들을 추가해준다.
드디어 플렉스 설치와 아파치 모듈 설치가 모두 끝났다. 아파치를 재 시작해준다.
5.테스트.
테스트는 간단하다. mxml파일을 만들어서 서버에 올리고 URL로 접근을 해보는 것이다. 그래서 플레쉬 화면이 보이면 정상이다.
그런데 뭔가 이상하다면 리눅스에서 커맨드 라인으로 swf파일을 생성할수 있다.
]#mxmlc a.mxml
위와 같이 했을때 정상으로 swf파일이 만들어지면 정상이지만 에러가 난다면 설정이나 설치를 다시 해봐야 한다.
이로서 Flex module for apache를 마친다. 그림이 없어 어렵게 느껴지겠지만 차례차례 하다보면 문제가 없을 듯하다.