2011-02-12 2 views
2
ini_set('error_log', $custom_error_log_location); 
print ini_get('error_log'); 

위 코드의 결과는 무엇입니까? 아무것도! 문자 그대로 ini_get('error_log')의 값으로 아무것도 인쇄하지 않습니다. 나는 이것을 아파치 서버에서 돌리고있다. 내 웹 사이트의 Apache 구성을 조사했습니다. Apache 구성에는 ErrorLog 지정 문을 통한 자체 오류 로그 설정이 있습니다. 다음은 그 일입니다. 동일한 Apache 구성을 사용하여 동일한 서버에서 다른 웹 사이트를 실행하고 있으며 해당 사이트에서 PHP에서 사용자 정의 오류 로그를 지정할 수 있습니다.PHP에서 사용자 정의 오류 로그를 지정할 수 없습니다.

사이트의 php.ini 파일도 확인했습니다. 거기에 로그온하는 데 아무 것도 없습니다. 내가 알고 싶은 것은 에러 로그 파일의 위치를 ​​수정하지 못하게하는 Apache 또는 php.ini의 구성이 있습니까?

+0

확실한 질문은'$ custom_error_log_location'이 올바르게 설정 되었습니까? –

+0

예, 그렇습니다. 혹시라도 이것이 길다는 것은 PHP가 경로를 검증하고 유효성 검사가 실패하면 빈 값으로 대체합니까? – William

답변

3

또는 open_basedir이 적용되는 경우 error_log()과 함께 열린 파일에 무엇이든 쓸 수 있기 때문에 ini_set("error_log")은 이러한 설정으로 제한됩니다.

제한 사항은 런타임과 .htaccess을 모두 포함하지만 가상 호스트 구성 파일에 php_value 지시문을 사용하여 설정할 수 있습니다.

+0

예, 그것은 비난하는 그 비난 한 safe_mode이었다. – William

+0

이 질문에 대한 답변이 나왔습니다. "php.ini error_log 값은 error_log입니다."phpinfo에서 error_log를 볼 수 있으며 그 값은 error_log입니다. 내가보고 있어야하는 디렉토리를 아십니까? – HMR

1

error_log 설정은 PHP_INI_ALL에 속하며 어디에서나 설정할 수 있습니다. 따라서 코드에 아무런 문제가 없어야합니다. "ini_get('error_log')의 값으로 인쇄 아무것도"으로

, 내가 대신 인쇄, 디버깅을 위해 $custom_error_log_locationini_get('error_log')var_dump()을 건의 할 것입니다, 당신의 $custom_error_log_location이 공백 또는 null 일 수 있습니다.

+0

아니, 변수의 값을 덤프했습니다. 나는 빈 문자열을 전달하지 않는다는 것을 안다. – William

0

나는 그것이 safe_mode 인 것으로 밝혀졌습니다.