환경
CentOS 6.x, Apache, PHP
MATLAB 2011a 로 컴파일된 바이너리, MCR 설치
참고사항
- x64 빌드는 당연히 x86 에서 실행 불가
- 실행 방법은 단순히 exec()
- 당연히 실행 디렉토리와 파일에 실행권한(execute permission) 추가
- 실행디렉토리에는 쓰기권한(write permission) 필요
- mcc build option에 -C 사용 (예: $MATLAB/bin/mcc -m -C -R '-nojvm,-nodisplay' ./mymatlabcode.m)
-- 안하면 다음 에러를 아파치 로그에서 볼 수 있음 : Could not access the MCR component cache.
- 그러고도 보면 안된다. 이유는 아파치 로그 보면 락파일 생성 실패
Could not access preferences directory: '/.matlab/mcr_v715/wave_spec_59B08FCA175BF328CA63A32591F61785'. System error: 'Tried to obtain a lock on a non-existent directory: /.matlab/mcr_v715/.deploy_lock.0'
-- centos 에서 rpm으로 설치한 apache 는 웹에서 접속 시 home directory가 / (root) 로 되어있나보다. (passwd 파일에 있는 경로와 다르다.)
-- 컴파일시 같이 생성된 run_mymatlabcode.sh 파일에 홈경로변수($HOME)를 쓰기 가능한 경로로 지정해버렸다.
-- $HOME=write enabled path
-- .ctf 파일 빼먹으면 안된다
웹에서 실행해보면 지정한 홈경로에 mymablabcode_mcr 디렉토리가 생성(복사?)되고 실행되는걸 볼 수 있다. -_-;;;;;