execle( )함수로 php스크립트 실행할때 질문입니다.
글쓴이: kimyh / 작성시간: 토, 2006/11/18 - 12:35오전
확장자가 php인 스크립트(memconfirm.php)를 만들어 아래와 같이 execle( )함수를 이용하여 실행할때
퍼미션을 777로 주었는데도 퍼미션 에러가 계속 납니다.
콘솔에서 아래와 같이 실행할때에는 잘 실행이 되거든요.
execle( )함수 사용부분에서 뭐가 잘못된건가요?
memconfirm.php파일은 실제로 /usr/local/php/bin 디렉토리에 있지않고 실행파일 test가
있는곳(/home/test)에 있어서 그런가요?
콘솔에서 실행시; [root@joballin cldownload]# /usr/local/php/bin/php memconfirm.php 아이디 = aaaa 비밀번호 = bbbb 이 름 = 홍길동 실행결과; [root@joballin cldownload]# ./test //시험용 실행파일 execle: Permission denied test.c의 execle( )함수 사용부분; if(execle("/usr/local/php/bin", "php memconfirm.php", "argv 1", "argv 2", NULL) < 0); { perror("execle"); exit(1); } 각 파일들의 퍼미션; 위치; /home/test -rwxrwxrwx 1 root root 165 Nov 16 23:13 dbconf.php -rwxrwxrwx 1 root root 1539 Nov 17 05:59 memconfirm.php -rwxr-xr-x 1 root root 16025 Nov 17 14:35 test -rw-r--r-- 1 root root 6058 Nov 17 14:35 test.c
Forums:
execle("/usr/local/php/bin",
execle("/usr/local/php/bin", "php", "memconfirm.php", "argv 1", "argv 2", NULL)
이런식이어야 할것 같네요.
emerge money
https://xenosi.de/
밤이 꽤 깊었는데도 답변 주신데 감사드립니다.
알려 주신대로 해도 같은 결과군요.
=============================================
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.
두가지 방법
if(execle("/usr/local/php/bin/php", "memconfirm.php", "argv 1", "argv 2", NULL) 0);
{
perror("execle");
exit(1);
}
또는
memconfirm.php 파일의 맨 윗줄에 #!/usr/local/php/bin/php 라는 라인 넣어주셔도 되구요.
그리고 memconfirm.php 파일에 chmod +x ./memconfirm.php 로 실행권한 해주시고
그 담엔 그냥
if(execle( "memconfirm.php","", "argv 1", "argv 2", NULL) 0);
{
perror("execle");
exit(1);
}
근데 arg들을 꼭 써야 하나요. execl 함수들은 제가 잘 몰라서 인자들 모르겠네요..
첫번째 인자가 실행파일명 맞지요?
/usr/local/php/bin/ 는 그냥 디렉토리일뿐이구..파일은 아닙니다.
암튼 실행파일을 "/usr/local/php/bin/php" 로 해주시던가..
memconfirm.php 파일을 에딧하고 실행권한줘거 바로 실행시키던가 하시면 될 겁니다.
제가 테스트해보고 알려드리면 좋겠지만, 현재 테스트 환경이 아니네요.^^;;
P.S : popen 쓰면 좋을 거 같은데..fgets로 결과값 받아오기도 편하구..
댓글 달기