Windows Server 2008 R2 에서 IIS 7.5 + PHP 5.3.7 으로 실험목적으로 사용중입니다.
PHP 기반 웹을 설치하고 이것저것 설정을 했는데, 문제점이 있습니다.
실제 사용과 겉으로는 아무런 이상없이 사용이 가능합니다만,
숨어 있는 설정파일들 또는 라이브러리 php 파일끼리의 define 명령어가 전역으로 인식이 되지 않습니다.
아래를 참고해주세요.
index.php 의 일부 내용:
define('DATA_HOME', '');
setting.php 의 일부 내용:
// You may hide these directories (from web browsers)
// by setting DATA_HOME at index.php.define('DATA1_DIR', DATA_HOME . 'data1/' );
define('DATA2_DIR', DATA_HOME . 'data2/' );
define('DATA3_DIR', DATA_HOME . 'data3/' );
define('DATA4_DIR', DATA_HOME . 'data4/' );
define('BACKUP1_DIR', DATA_HOME . 'backup1/' );
define('BACKUP2_DIR', DATA_HOME . 'backup2/' );define('FILES1_DIR', DATA_HOME . 'files1/');
define('FILES2_DIR', DATA_HOME . 'files2/' );
setting.php 에서의 일부 에러:
PHP Notice: Use of undefined constant DATA_HOME - assumed 'DATA_HOME' in C:\x\y\z\setting.php on line 1
위와 같이 index.php 에서 DATA_HOME 을 선언했음에도, 다른 php 파일에서 DATA_HOME 을 읽지 못합니다.
또한 다른 php 파일들에서도 이러한 현상이 나타납니다.
이 PHP 기반 웹을 사용하는 다른 웹서버에서는 이러한 에러없이 원활하게 돌아가는것을 확인하고, 다른 버전들도,
이리저리 바꿔가며 해봤지만 같은 에러가 발생합니다.
해결책을 모르겠습니다.
리눅스와 윈도우의 경로 설정 차이점에서 에러 나는거 같습니다.
'/' 를 ''로 변경하면
PHP Parse error: syntax error, unexpected T_STRING in C:\x\y\z\setting.php on line 74
이런식으로 에러가 출력되고 HTTP 500 에러를 출력해버립니다.
이러면 '/' 을 사용해도 아무런 에러도 없습니다만, 다른 php 파일이 엄청나게 많아 올바른 방법은 아닌듯 합니다.
이건 정말 ;; 묻는 저도 좀 이상하지만 ... 인클루드나 리콰이어의 위치는 최상단이시죠?