, 나는 g ++PHP 간부 기능은
MAIN.CPP
#include <iostream>
int main(int argc, char* argv[])
{
std::cout << "It works!" << std::endl;
return 0;
}
다음과 같은 프로그램을 컴파일하고 나는 PHP가 관련 내 컴파일 된 프로그램 권한을 실행하지 명령 줄에서 프로그램을 실행
test.php
<?php
// DEBUG /////////////////////////////////
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//////////////////////////////////////////
$in = "/home/alex/Dropbox/code_snippets/output/a.out";
$out = exec($in);
echo "In : " . $in . "<br>";
echo "Out: " . $out . "<br>";
?>
파일 I "It works!"라는 출력을 얻으십시오. 그러나 내가 PHP를 실행했을 때 나는 결과물을 얻지 못한다. (나는 여전히 [In : ... \ nOut :]를 얻는다.
관련 질문 : php exec() is not executing the command
나를 마지막에 "2> & 1"을 넣어 만든 지금은의 출력을 얻을 :
아웃 : SH : 1 :/홈/알렉스/Dropbox/code_snippets/output/a.out : 사용 권한이 거부되었습니다.
a.out에 빠른 sudo chmod 0777을 수행 한 후에도 여전히 동일한 결과를 얻습니다. 또한 PHP에 소유권을 부여하기 위해 sudo chown www-data a.out을 시도했지만 그 중 하나도 작동하지 않았습니다. 매우 간단하지만 솔루션을 얻는 데 어려움을 겪고 있습니다. 미리 감사드립니다.
편집 : 나는 그것이 PHP를 통해 실행되는 사용자 www가 데이터 것을 찾아 ("WHOAMI을") 간부 인 사용했기 때문에
간부() 함수는 확실히 작동합니다.
시도했던 opendir() 디렉토리에 기능이 동일한 권한
을 거부 반환
경고 :했던 opendir (/ 홈/알렉스/보관/code_snippts/출력) : 디렉토리를 열지 못했습니다 : /var/www/html/test.php에서 거부 권한
나는 PHP는 인터넷에 모습을 조금 더 가지고 한 다음에/var/www가에서 물건을 실행으로 제한되어 있기 때문에 그것이 같은데요 도움이 될 것으로 판단되었습니다.
https://help.ubuntu.com/community/ApacheMySQLPHP 그리고/var/www가 아닌 다른 디렉토리에서 물건을 실행할 수있는 능력을 설정하는 방법 인 suPHP 설치 부분까지 스크롤하여 다른 사람에게 더 좋은 아이디어가 있습니까?
/var/www에 a.out을 복사했으며 PHP가 "It works!"를 출력하고 있습니다.
php.ini에서 exec() 함수를 사용할 수 있는지 확인 했습니까? 특히'disable_functions'에리스트되어 있는지 확인하십시오 – mz3
PHP 파일은 어디에 있습니까?/home/alex/Dropbox/code_snippets/output/디렉토리를 열 수 있습니까? (했던 opendir() 예를 들어, 함수로) 나는 노력으로 – Petr