exec() 함수관련... 어떻게 해야 작동하나요?

exec() 함수관련... 어떻게 해야 작동하나요?

QA

exec() 함수관련... 어떻게 해야 작동하나요?

답변 1

본문

 

  • 서버는 CentOS 7.2 (64bit)구요
  • PHP버전은 PHP 7.0입니다.

 

 


<?php
exec('systemctl restart httpd');
?>

 

명령어 치는것도 귀찮아서 서버를 버튼클릭으로 재시작하게 할려고하는데... 

 

exec가 안먹히네요?;; exec함수로 위 명령어 뿐만아니라 다안먹힙니다.

exec를 쓸일이없어서 안쓰다가... 

구글링해보니깐

 

 
safe_mode = Off 
safe_mode_exec_dir = 

 

위와같이 php.ini에서 설정을 하라는데 아무리 찾아봐도 저 항목이 안보이길래 추가로 기입해줬습니다. 그런데 phpinfo()에 항목이 추가가 안됬더라구요...

 

혹시나해서 PHP 메뉴얼보니깐 6.0에서 safe_mode 보안관련 설정이 없어졌다고 나오고...

( http://php.net/manual/kr/ini.sect.safe-mode.php )

 

구글링을 좀 더 해보니 /bin/bash 권한문제(?) 라면서 bash를 755로 권한을 변경해달라고 나와있더라구요.

 

그래서 제 서버에는 bash가 /usr/bin/bash 여기에 있길래 권한을 바꿀려고하니 애초부터 디폴트값 755였고...usr bin 폴더마저 755였습니다.

혹시나해서 systemctl 권한도 봐보니깐 755였습니다.
 

http://php.net/manual/kr/function.exec.php 여기 보면 분명 PHP7 된다는것같은데 뭐가 문제일까요? 

 

결론 : 어떻게해야 사용할 수 있는거죠?!!

SSL인증서와 도메인 지정할때의 귀차니즘을 덜어버리고싶네요!

이 질문에 댓글 쓰기 :

답변 1

권한문제로 보입니다

 

아파치가 nobody 계정으로 보통 실행되니

 

exec로 systemctl 명령어를 실행하면   nobody 계정이 해당 명령어를 실행할수 있는 권한이

 

있어야합니다  명령어 권한설정을 공부해 보시길 권장합니다  

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 12,369
© SIRSOFT
현재 페이지 제일 처음으로