2014-12-26 3 views
0

WP 주제에서 매일 수백 개의 이메일을받습니다. 왜 개발자가 내게 조언을 줄 수 없으며 모든 것이 괜찮은 것 같지만 분명히 그렇지 않습니다.스트림을 열지 못했습니다 : 해당 파일이나 디렉토리가 없습니다 (그러나 파일은 올바른 위치에 있습니다)

<?php 
require '../../../wp-load.php'; 
echo file_get_contents(get_template_directory_uri().'/scheduler.php'); 
?> 

이이 scheduler.php 파일은 다음과 같습니다

Return-Path: <[email protected]> 
X-Original-To: ubuntu 
Delivered-To: [email protected] 
Received: by mysite.org (Postfix, from userid 1000) 
     id C4E78E9B7; Fri, 26 Dec 2014 11:30:01 +0000 (UTC) 
From: [email protected] (Cron Daemon) 
To: [email protected] 
Subject: Cron <[email protected]> php -q /var/www/html/wp-content/themes/mytheme/cron.php 
Content-Type: text/plain; charset=ANSI_X3.4-1968 
X-Cron-Env: <SHELL=/bin/sh> 
X-Cron-Env: <HOME=/home/ubuntu> 
X-Cron-Env: <PATH=/usr/bin:/bin> 
X-Cron-Env: <LOGNAME=ubuntu> 
Message-Id: <[email protected]> 
Date: Fri, 26 Dec 2014 11:30:01 +0000 (UTC) 
X-IMAPbase: 1419593539 75 
Status: O 
X-UID: 74 

PHP Warning: require(../../../wp-load.php): failed to open stream: No such file or directory in /var/www/html/wp-content/themes/mytheme/cron.php on line 2 
PHP Fatal error: require(): Failed opening required '../../../wp-load.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/wp-content/themes/mytheme/cron.php on line 2 
? 

파일이 올바른 위치에 있으며,이 파일 cron.php입니다 : 이것은 내 후위 메일 서비스에서 얻을 오류입니다 : 나는 WP 다중 사이트 환경에있어

<?php 
//PLEASE do NOT move me around. I get cranky when I get moved around 
//get the wp-load in for the wordpress functions 
$parse_uri = explode('wp-content', $_SERVER['SCRIPT_FILENAME']); 
require_once($parse_uri[0] . 'wp-load.php'); 
//now try calling template function 
CheckFunction(); 
?> 

의 WP-load.php는 "HTML"폴더에 위치가 올바른 위치에, 그래서 왜 이런 일이?

+0

그래서 쓸 때 '../../../ wp-load.php'; '이것은 wp-load.php의 정확한 위치입니다. scheduler.php와 관련이 있습니까? – Todd

+0

@Todd wp-load.php는/var/www/html에 있습니다. 대신 cron.php와 scheduler.php는/var/www/html/wp-content/themes/mytheme에 있습니다. –

답변

1

파일을 찾지 않아야합니다. 더 usuable에 cron.php를 변경해보십시오 필요합니다

<?php 
// Require WP 
require $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'; 
// Run code 

편집이 :

<?php 
// Require WP 
require '/var/www/html/wp-load.php'; 

이 경우 :

또한 특별히이 서버에 일 것이다 덜 휴대용 솔루션을 시도 할 수 있습니다 여전히 작동하지 않는다면 권한 문제 일 수 있습니다. 파일 사용 권한이 644인지 확인하십시오.

건배!

+0

안녕하세요, 시도해 주셔서 감사합니다 ... 나는 동일한 오류가 발생했습니다. 유일한 차이는 "실패한 개통 필요함 '/wp-load.php' " –

+0

나는 '/var/www/html/wp-load.php'의 사용법에 대해 너무 회의적이었다. 하지만 왜 다른 솔루션을 (그게 옳은 것 같지 않은) 전에 ?? –

+1

@drhouse PHP가 CRON 작업을 위해 CLI에서 실행될 때 루트 디렉토리가 사이트를 탐색 할 때와 다르기 때문에 가장 가능성이 높습니다. 이 때문에 CLI의 상대 경로가 올바르지 않습니다. – versalle88

관련 문제