PHP를 사용하여 PC를 다시 시작할 수 있습니까?PHP를 사용하여 PC 다시 시작
답변
exec()
또는 system()
을 사용할 수 있지만 apache
을 실행하는 사용자에게 PHP가 실행되면 사용 권한이 문제가되는 것은 사실입니다.
빠른 해결 방법으로 사용자 아파치가 다시 시작할 수있는 권한을 부여 받았을 수 있습니다. 시스템에 따라이 설정은 상당히 어려울 수 있습니다.
또 다른 방법은 몇 분 (또는 초)마다 파일을 검사하고 PHP 프로그램에서 편집 한 Cron 작업 (루트에 속함)을 사용하는 것입니다. 이 파일은 Apache 만 편집 할 수 있도록 설정됩니다. 이것은 훨씬 더 쉽습니다.
희망이 도움이됩니다.
exec()
또는 system()
과 같은 방법을 사용하여 시스템 명령을 실행하여 컴퓨터를 다시 시작할 수 있습니다.
일반적으로 컴퓨터를 다시 시작하려면 수퍼 유저 권한이 필요합니다. 그러나 웹 서버를 수퍼 유저로 실행하는 것은 나쁜 습관입니다. 일부 프로세스 간 통신을하는 것이 좋습니다. E. g. PHP 스크립트가 파일에 비밀 키를 쓰고 cron 작업이 파일을 읽고 컴퓨터를 다시 시작합니다.
그리고 웹을 통해 컴퓨터를 다시 시작하는 것이 좋습니다. 왜 그걸하고 싶니?
Plesk과 같은 일부 서버 관리 도구에서 허용됩니다. – zneak
이 답변은 Linux 기반 서버와 관련이 있습니다.
위험 : PHP에서 system()을 사용하면 시스템에서 "sudo shutdown -r now"를 사용하여 다시 시작하고 "sudo shutdown -h now"를 사용하여 종료합니다.
에서의/etc /의 sudoers,
하나의 문제가 sudo는이 암호를 요청 할 수있다 아파치 사용자 종료를 실행할 수있는 권한을 추가합니다.
apache 사용자의 암호를 제거하거나 (sshd, telnetd, ftpd 등을 실행하지 마십시오)// etc/sudoers에 암호없는 구성이 있는지 확인하십시오. 200 번째 줄에 대한 "man sudoers"와 270 번째 줄에 대해서는 Tag_Spec에 사용자가 sudo 명령을 실행하기 위해 암호를 다시 인증 할 필요가 없다는 것을 지정하는 NOPASSWD를 포함 할 수 있다고합니다.
안전 : token/cron PHP 파일을 어딘가에 작성하십시오. cron이 루트로 실행하는 스크립트를 작성하십시오.이 파일이 존재하면 파일이 제거 된 후 종료 또는 다시 시작됩니다.
우리 시스템에서는 Paul이 말한 것을 수행합니다.
- 일부 명령 dir (예 :/data/command /)에 쓰는 스크립트가 있어야합니다. 이 스크립트를 강화해야합니다.
- 분당 명령 실행을 확인하는 cron을 실행하십시오. 다시 시작 명령이 있으면 해당 cron은 시스템에 다시 시작 명령을 실행합니다.
데비안/레니를 운영하는 CarPC 설정에 대한 필요성이있었습니다. 해당 서비스의 포트에 연결될 때마다 inetd를 실행하여/sbin/reboot을 구성했습니다.
나는 PHP 스크립트를 사용하여 localhost/port에 fsockopen()을 수행하고 즉시 재부팅을 수행합니다.
빠른 설정 (데비안 - 시스템에 대한 수정) : /etc/services
에서
이 "reboot stream tcp nowait root /sbin/reboot"
Restart inetd using /etc/init.d/openbsd-inetd restart
지금 로컬 호스트에 연결 한 줄을 추가 /etc/inetd.conf
에서 선 "reboot 88/tcp"
(또는 무엇이든 포트 당신이 원하는) 를 추가 : 88 시스템을 재부팅합니다.
시스템이 xinetd를 실행하는 경우 로컬 호스트의 연결 만 허용하도록 구성하여 보안을 약간 강화할 수 있습니다. 어쨌든 이것은 여전히 해킹입니다.
- 1. PC to Macbook Pro 전환 - 다시 시작 하시겠습니까?
- 2. 시작, 중지, vb6을 사용하여 아파치를 다시 시작
- 3. PHP를 사용하여 Apache 중지 및 시작 (!)
- 4. notifyAll을 사용하여 스레드 다시 시작
- 5. PHP를 다시 컴파일하고 다시 설치
- 6. PC/Linux에서 Python을 사용하여 Quicktime 무비의 시작 타임 코드를 읽음.
- 7. PHP를 사용하여 브라우저 다시 버튼을 비활성화
- 8. Tomcat 자체에서 다시 시작
- 9. Windows 서비스 다시 시작
- 10. 마지막 액티비티 다시 시작
- 11. 다시 시작 윈도우 응용 프로그램 사용하여 점
- 12. 셸 명령을 사용하여 PHP 프로그램 다시 시작
- 13. Java를 사용하여 실패한 압축 다시 시작
- 14. 활동을 다시 시작하지 않고 활동으로 다시 시작
- 15. 최적화를 pyevolve로 다시 시작
- 16. 실행중인 다시 시작 기능
- 17. 다시 시작 Teambox 서버
- 18. 포스트 그레스를 다시 시작
- 19. Android 서비스 다시 시작
- 20. 다시 시작 예외 처리
- 21. 홈 화면 다시 시작
- 22. 다른 활동에서 다시 시작
- 23. .NET에서 스레드를 다시 시작
- 24. Python 프로그램 다시 시작
- 25. Django에서 Apache 다시 시작
- 26. Apache Tomacat 다시 시작
- 27. 리눅스 스크립트 시작, 중지, 다시 시작
- 28. 다시 시작 리눅스 m는/프로그래밍
- 29. git-svn 복제본 다시 시작
- 30. sudo없이 nginx를 다시 시작 하시겠습니까?
나는 브라우저의 컴퓨터가 아니라 서버라는 것을 알고 싶습니다. – SLaks