테스트 사이트 - 개발 중인 베타 버전입니다

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

스아이 9년 전 조회 2,190

 

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

 

 

</span></p><p style="font-size: 14.6667px;"><?php
exec('systemctl restart httpd');</p><p style="font-size: 14.6667px;">?></p><p>

 

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

 

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

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

구글링해보니깐

 

</span><span style="font-size: 14.6667px;"> </span></p><p><span style="font-size: 14.6667px; line-height: 22px;">safe_mode = Off</span> </p><p><span style="font-size: 14.6667px; line-height: 22px;">safe_mode_exec_dir =</span> </p><p><span style="font-size: 14.6667px;">

 

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

 

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

( http://php.net/manual/kr/ini.sect.safe-mode.php">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">http://php.net/manual/kr/function.exec.php 여기 보면 분명 PHP7 된다는것같은데 뭐가 문제일까요? 

 

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
9년 전

권한문제로 보입니다

 

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

 

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

 

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인