2010-03-13 2 views
3

PHP 5.2.11이 사전 설치된 Mac OS X 10.5.8을 실행 중입니다. Coda 1.6.10 사용.Mac에 포함 된 PHP의 올바른 경로는 무엇입니까?

PHP 파일을 작성하고 서버가 아닌 파일에서 실행되도록 미리 봅니다. 이것은 PHP가 포함 할 때까지 잘 동작했습니다. 이들은 상대 경로로 작동하지 않으며 드라이브의 루트에서 절대 경로로만 작동합니다.

내가

include_once 문 "일반/header.php"와 같은 문장을 사용할 수있는 방법이 있습니까; 과 같이 내 전체 파일 경로를 지정하지 않고

:

include_once 문 "/ ColoredLists_v1.0/일반/base.php/볼륨/매킨토시 HD/사용자/닐은/데스크탑/웹 사이트";

(ColoredLists_v1.0은 여기에있는 모든 웹 사이트 파일이있는 디렉토리 임). _SERVER [DOCUMENT_ROOT] 또는 dirname (파일)을 파일 경로 앞에 추가하는 것과 같은 솔루션을 시도했지만 변수가 설정되지 않았으므로 작동하지 않았습니다. 이 작업을 수행하는 쉬운 방법이 있습니까? 또는 구성을 변경하여 드라이브 루트를 보는 대신 기본적으로 특정 디렉토리를 찾을 수 있습니까? 현재 echo_include_path 쇼 :. 내가 스크립트의 시작이 줄을 포함하면

, 그것을 작동 :

set_include_path ('/ 볼륨/매킨토시 HD/사용자/닐/데스크탑/웹 사이트/ColoredLists_v1합니다. 0 ');

그러나 모든 스크립트에서이 작업을 수행하려는 경우 변경할 수없는 것으로 보입니다. 필자는 php.ini에서 Unix include_path를 편집 한 후에도 작동하지 않는 것 같습니다.

업데이트 : 마지막으로 가장 쉬운 방법은 Apache 서버를 로컬에서 실행하는 것입니다. Mac에 기본 설치되어 있으므로 문제가 많지 않습니다. localhost의 연결 만 허용하도록 httpd.conf를 수정하여 보안 걱정을 덜어줍니다. 물론,이 포트는 여전히 80 번 포트를 열지 만 라우터 뒤에 있기 때문에 나는별로 노출되지 않았 음을 희망합니다. 그리고 Coda는 '사이트'에 훌륭한 기능을 포함하고 있습니다. 여기에서 로컬 URL을 설정할 수 있으므로 지금은 훌륭하게 작동합니다. 단점은 코드를 수정 한 후 미리보기를 수동으로 새로 고쳐야한다는 것입니다.

+0

어떻게하면 "파일"과 "하지 서버에서"에서 작업을 의미? 아파치 대신 명령 줄? – zneak

+0

예 @zneak. PHP 파일은 PHP에 의해 파일에서 처리되고 출력 html 파일은 브라우저에서 렌더링됩니다. 요청은 서버로 이동하지 않고 페이지를 요청한 다음 렌더링 된 html을 반환합니다. 그래서 htaccess 또는 apache 설정에 대한 질문은 여기 없습니다. – Neil

답변

2

이 방법을 시도 할 수 있습니다.

require_once(dirname(__FILE__) . '/example.php'); 
0

내가 당신에게 정확한 경로를 말할 수 있도록 MAMP를 사용하고 있습니다 (파일 포함

을 공유에서

set_include_path(
    '/Volumes/Macintosh HD/Users/neil/Desktop/Website/ColoredLists_v1.0' . 
    PATH_SEPARATOR . 
    get_include_path()); 

을 시도하거나 php.ini 파일을 편집하고 include_path도 변수를 변경 php.ini로)

0

정말로 include_path 문제입니다. 기본값은 .:/usr/lib/php 인 것 같습니다. 아마도 스크립트가있는 디렉토리에서 PHP 명령을 실행했다면 괜찮을까요?

0

이 나를 위해 모든 시간을 작동합니다

<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/common/header.php'); ?>

+0

$ _SERVER 변수 중 어떤 것도 서버가 아닌 명령 줄에서 PHP를 실행한다고 생각합니다. 나는 몰라. 나는 나중에 그것을 시도 할 것이다. – Neil

관련 문제