2017-05-04 13 views
0

문제점이 있습니다. 동시에 localserver (WAMP)와 온라인 서버 (000webhost)를 사용하고 싶습니다. 이제 내 파일 경로에 문제가 있습니다. (../contact.php)와 같은 일반 경로를 사용할 수 없습니다. 왜냐하면 PHP 포함 파일을 사용하기 때문에 전체 사이트에 파일을 포함하기 때문에 경로가 달라집니다.localserver 및 normalserver의 경로로 작업하십시오.

이제 (/main/includes/header.inc.php)와 같은 절대 경로를 사용하고 싶습니다. 그러나 온라인 서버와 로컬 서버의 루트 폴더가 다르므로 작동하지 않습니다.

사용할 수있는 솔루션이 있습니까?

Jelmer

+0

입니다 WAMP 당신은 dev에 전자 nvironment 및 000webhost 귀하의 생산? 메신저 그냥 두 서버 간의 연결을 시도하고 –

+0

내가 그들을 사용하는 이유는 내가 차이를 즉시 볼 수 있도록 오프라인으로 작업하고 싶습니다 때문입니다. 그리고 나는 함께 일하고 결과를 보여주기를 원하기 때문에 때로는 서버에 업로드하고 싶습니다. –

답변

0

설정은 파일 경로를로드하는 데 사용할 수있는 ROOT 일정 웹 루트 디렉토리. 각 서버에 따라 경로를 적절히 설정하십시오. 각 요청에 대해 첫 번째 파일 적중의 맨 위에로드되어 있는지 확인하십시오.

<?php 
define('ROOT', `/var/www/html/site`); 
... 

이제 분명히 각 서버에 대해 서로 다른 일정하게 일정한

include ROOT . '/directory/file.php'; 

로 파일을로드합니다.

if 문에도 define()을 넣을 수 있습니다.

<?php 
if($_SERVER['SERVER_NAME'] === 'localhost'){ 
    define('ROOT','/wamp/dir/'); //obviously not your actual dir 
}else{ 
    define('ROOT','/online/dir/'); //obviously not your actual dir 
} 

UPDATE

더 나은 아이디어는 대신 conts의 환경 변수를 beusing 수 있습니다.

모든 페이지에 CONST를 설정하는 것은 약간 지루합니다. .htaccess에 환경 변수를 설정하는 방법을 설명하는이 게시물을 발견했습니다. 그런 식으로 한 번에 설정하면 모든 파일에서 액세스 할 수 있습니다.

예 :

//.htaccess 
SetEnv ROOT /var_www/html/site/ 

지금 내 모든 .PHP 파일에두고이 값을 얻을 수 있습니다 :

<?php 
include getenv('ROOT'); . '/directory/file.php'; 

신용 :

store constant variable on server via .htaccess

+0

그래서 나는 당신을 이해하는 경우 (저는 시작 프로그래머입니다) 상수를 루트 경로로 설정해야합니다. 사용자가 localhost 또는 000webhost에 있는지 확인하는 if 문과 비슷한 것입니다. 그리고 그 서버에 따라 상수를 설정합니까? 그러면 모든 파일 경로 앞에 상수를 넣어야합니까? –

+0

대단히 감사합니다! 하지만 그 게시물을 어디에서 찾을 수 있습니까? –

+0

@JelmerDekker 죄송합니다. 전화를 걸었고 댓글을 제대로 쓸 수 없었습니다. 다른 대체 방법 (아마도 선호되는)에 대한 업데이트 된 답변보기 –