execle( )함수로 php스크립트 실행할때 질문입니다.

kimyh의 이미지

확장자가 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

송효진의 이미지

execle("/usr/local/php/bin", "php", "memconfirm.php", "argv 1", "argv 2", NULL)

이런식이어야 할것 같네요.

emerge money

kimyh의 이미지

알려 주신대로 해도 같은 결과군요.

if(execle("/usr/local/php/bin", "php", "memconfirm.php", "argv 1", "argv 2", NULL) < 0);
		{
			perror("execle");
			exit(1);
		}
에서 execle( ) 함수대신 execl( ) 함수를 사용해도 같은 결과가 나옵니다.
그런데 이상한것은 php, memconfirm.php 값이 먹혀들어 가지를 않은것 같습니다.
어떠한 값이 들어가도 매번 같은 결과가 나오거든요.
엠파스, 네이버, kldp, 구글 모두 밤 새가며 검색을 해봐도 도저히 답을 찾지 못하겠군요.
 
정말 머리에 쥐가 날 정도 입니다.

=============================================
살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

sebi184의 이미지

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로 결과값 받아오기도 편하구..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.