2016-07-16 4 views
0

저는 Apache와 Slim Framework로 PHP를 구성한 Centos 7 컴퓨터입니다.PHP 함수 file_exits, copy, shell_exec는 한 컴퓨터에서 작동하지 않지만 다른 컴퓨터에서 작동하는 동일한 코드

파일이 존재하는지 확인하고 코드를 디렉토리에 복사하는 간단한 코드는 컴퓨터 중 하나에서 정상적으로 작동하지만 다른 컴퓨터에서는 작동하지 않습니다. 정말 이상합니다.

사실이 기능을 실행하려면 Apache를 통해 API에 액세스하고 있습니다.

shell_exec와 같은 기능을 반환합니다. 복사 기능도 작동하지 않습니다. file_exists도 작동하지 않습니다.

이 도움말이 잘못되었거나 문제점을 디버그하는 데 도움이되었거나 도움이 되었습니까?

+1

가 [open_basedir을 (HTTP의 다른 설정이 될 수에서

.net/manual/ko/ini.core.php # ini.open-basedir) 또는 [safe_mode_exec_dir] (http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe- mode-exec-dir) 또는 이벤트 [disable_functions] (http://php.net/manual/en/ini.core.php#ini.disable-functions)일까요? –

+0

필자의 Alon은 PHP 보안 설정에서 .ini 파일을 가리킨다. 또한 error_reporting이 켜져있어 발생한 오류를 확인하십시오. – jirka

+0

나는 그것을 더 자세히 디버깅하려하고 일반 PHP 스크립트에서 작동하지만 동일한 스크립트가 아파치 (웹)에서 호출 될 때 작동하지 않는 것으로 나타났습니다. open_basedir/disable_function을 확인 했으므로 apache에서 작동하지 않는 이유가 궁금합니다. – nirajkumar

답변

0

도움 주셔서 감사합니다.

파일 사용 권한 문제가 문제입니다. 그 이유는 내가 수행 한 위의 모든 기능이 파일에 있었기 때문입니다. 파일은 다른 사용자에 대해 다른 권한을 가지고 있기 때문에.

그래서 브라우저에서 URL을 누르면 파일에 액세스하고 파일에 대한 읽기 권한을 폴더에 대한 실행 권한이없는 "Apache"사용자가 사용했습니다. // PHP : 짧은

sudo는 chmod를 + RX 파일

sudo는 chmod를 + X "모든 디렉토리 구조"

관련 문제