2017-12-08 5 views
0

현재 작업에 대한 정보를 동적으로 가져 와서 html 페이지에 표시하는 프로젝트에서 작업하고 있습니다. 이것을 달성하기 위해 저는 PHP 웹 서비스를 사용하여 호출 될 python 스크립트를 작성했습니다. 스크립트가 작동하려면 일부 파일을 편집해야합니다. 기본적으로 PHP는 스크립트를 실행합니다 $output = shell_exec('python script.py');
문제는 웹 서비스가 호출 된 경우 스크립트가 파일을 편집하는 데 필요한 권한이 없다는 것입니다. 그래서 웹 서버는 다음과 같이 스크립트를 호출해야합니다 $output = shell_exec('sudo python script.py');
권한을 프로젝트 폴더로 변경해야하지만 어떻게해야할지 모릅니다. |
projectfolder
: 몇 가지 추가 정보 :
나는 웹 서버 폴더 구조로 raspian에 램프 설치로 라즈베리 파이 (3)를 사용하고는 다음과
- 스타일 (포함 된 CSS)
-script.py
-script2.py
-filetoedit1.txt
-filetoedit2.html웹 서비스를 통한 Linux 편집 권한

은 어떤 도움에 감사드립니다!

+0

웹 서버가 실행중인 사용자를 파악한 다음 script.py의 소유권을 해당 사용자 – wpercy

+0

으로 변경합니다. ssh를 사용하여 실행하지만 브라우저 -> ip/projectfolder/webservice를 사용하여 webservice를 호출하면 작동합니다. PHP는 파일을 편집하지 않습니다. –

답변

0

@wpercy에서 제안한대로 어떤 사용자가 파일을 실행하는지 파악해야합니다. 일반적으로 해당 사용자는 www-data! 어떤 사용자가 서비스를 사용하는지 확인하려면 ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1
사용자를 파악한 후에는 폴더에 대한 사용 권한을 변경해야합니다. 그 명령은 다음과 같을 겁니다 chown -R www-data:www-data /var/www/html/Projectfolder

wpercy에게 특별 감사합니다!