php에서 shared object 사용하는 법..

cjh0532의 이미지

간단히
<?
dl('libp.so');
?>

해 보았더니 아니나 다를까.

Unable to load dynamic library '/root/temp/libp.so' - /root/temp/libp.so: cannot open shared object file: Permission denied in /usr/local/apache/htdocs/sotest.php on line 3

위와 같은 에러가 뜨는 군요..

extension_dir=/root/temp를 지정한 상태고요..
그리고 /root/temp/libp.so는 분명히 존재하는 상태고요..

아..죽갔습니다..하루종일 뒤져봐도 당췌 그에 대한 정보는 않보이고..

so를 php에서 인식시키고 so의 함수(예, fun())에서 값을 리턴받고 다른 함수(예, fun1)값을 설정하려면 어떻게 해야 하나요..

고수님들 부탁 좀 드리겠습니다..

송효진의 이미지

php 인터페이스에 맞춰서 제작하셔야 하고,
php.ini 에서 dl 어쩌고가 On 되어 있어야 합니다.

emerge money

slc의 이미지

지나가는 길에 한마디 거듭니다..
php에 저런걸 써본적이 없어서.. 잘은 모릅니다만,,
에러 메세지만 보면 Permission denied..
해당 파일에 대한 권한이 부족한 것 같이 보이네요..

extension_dir 변수를 다른 곳으로 지정해보세요..
/usr/local/apache/phpext 뭐 이정도도 괜찮을 것 같네요..
만들때.. rwxr-xr-x 이정도 권한으로 만드는 것이 좋아보입니다.

대충 짐작해보면...
대부분의 웹서버가 구동되면서 uid,gid를 바꿉니다. root가 아닌 다른유저로..
/root directory는 기본적으로 group, other read, execute안되게
설치가 되는 모양이더군요..
root로 구동되지 않는 process가 /root/tmp/ 디렉토리의 파일을 access하지
못하니 permission denied error가 뜨는 것으로 짐작이 됩니다.

위처럼 ex.._dir 변수를 /root 아닌 다른곳으로 옮기던가.. 물론 process가
access할 수 있는 권한은 주고,, 아니면,, 권한 변경
/root - 755
/root/temp - 755

이정도면 위의 error에 대한 대응이 될 것 같네요..

------------------------------------------------------------
개인 메일 서버를 만들어 사용합시다..
언제부터 e-메일이 포털의 전유물이 된거지??
http://slcweb.homeip.net