>  기사  >  백엔드 개발  >  PHP 실행 오류 문제를 해결하는 방법

PHP 실행 오류 문제를 해결하는 방법

藏色散人
藏色散人원래의
2022-01-28 10:43:053249검색

php exec 오류 해결 방법: 1. ping 또는 해당 명령의 실행 권한을 수정합니다. 2. "exec('/usr/sbin',$output);" 명령의 전체 경로를 완성합니다. 환경 변수 대상 디렉터리를 추가합니다.

PHP 실행 오류 문제를 해결하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

php exec 오류 문제를 해결하는 방법은 무엇입니까?

0. 설명

PHP에서는 exec()를 사용하여 시스템 명령을 실행할 수 있지만 때로는 exec() 명령 실행 실패가 발생하거나 는 반환되지 않습니다. 아래에서 설명하겠습니다. exec()来执行系统命令,但有时我们会遇到exec()命令执行不成功,或者无返回的情况,下面来说明一下:

1.函数

  exec ( string $command [, array &$output [, int &$return_var ]] ) : string
  参数说明:
  1.$command   要执行的命令
  2.$output  执行结果
  3.$return_var 若同时设置 $output 和此变量,命令执行后的返回状态会被写入到此变量

2.例子

  exec("ping www.baidu.com", $output);

正常来说执行结果会跟在服务器上直接执行ping没区别,但是由于某些原因会导致意外情况,下边针对两种情况作出说明,以及解决办法

2.1 权限问题

问题

当我们在服务器上直接执行linux系统命令时(此处以ping为例),执行权限取决于我们登陆用户的权限,如果我们登陆用户为root ,则执行ping的时候是用root来执行。但当我们在网站上访问的时候,我们此时的用户为www,如果不修改ping的执行权限的话,是无法执行成功的。

解决

修改ping或者对应命令的执行权限
2.2 命令路径问题

问题

还有一种情况,当我们用exec执行某个命令时,不报错,也不返回结果,原因是此命令没有在环境变量配置的目录下即/etc/profile文件中,以ifconfig为例,我们可以用whereis ifconfig,找出此命令具体路径,比如路径在/usr/sbin下,两种解决办法:

解决

1 复制命令到/usr/bin下,也就是环境变量下的目录(不太推荐)
2 直接将命令全路径补全exec('/usr/sbin',$output);(推荐)
3 在环境变量中增加目标目录例如增加/usr/sbin
1. 함수
rrreee

2. 예제 rrreee일반적으로 실행 결과는 서버에서 직접 ping을 실행하는 것과 동일하지만 어떤 이유로 예상치 못한 상황이 발생할 수 있습니다. 다음은 두 가지 상황에 대한 설명과 해결 방법입니다

2.1 권한 문제
🎜Problems🎜🎜서버에서 직접 Linux 시스템 명령을 실행할 때(여기서는 ping을 사용하여) , 실행 권한은 로그인한 사용자의 권한에 따라 달라집니다. 로그인한 사용자가 root인 경우 루트는 ping을 실행하는 데 사용됩니다. 하지만 웹 사이트에 접속하면 현재 사용자는 www입니다. ping 실행 권한을 수정하지 않으면 성공적으로 실행되지 않습니다. 🎜🎜해결 방법🎜🎜ping 또는 해당 명령의 실행 권한 수정🎜
2.2 명령 경로 문제
🎜Problem🎜🎜exec를 사용하여 명령을 실행할 때 오류가 보고되거나 반환되지 않는 경우가 있습니다. 결과적으로 이 명령이 환경 변수가 구성된 디렉터리, 즉 /etc/profile 파일에 없기 때문입니다. 예를 들어, whereis ifconfig를 사용하여 이 명령의 특정 경로를 찾을 수 있습니다. 예를 들어 경로는 /usr/sbin 아래에 있습니다. 두 가지 해결 방법: 🎜🎜해결책 🎜🎜1 명령을 /usr/bin code>, 즉 환경 변수 아래의 디렉터리에 복사합니다(권장하지 않음)
2 명령의 전체 경로를 직접 완성 exec('/usr/sbin',$output);(권장) )
3 환경 변수에 대상 디렉터리를 추가합니다. 예를 들어 /usr/sbin을 추가합니다. 디렉토리🎜🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP 실행 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.