Include_Path Zend_Framework - PullRequest
       7

Include_Path Zend_Framework

0 голосов
/ 27 февраля 2010
    Error: [2] require_once(Zend/Loader/Autoloader.php) [function.require-once]: failed to open stream: No such file or directory

/var/www/vhosts/localhost/httpdocs/public.:./var/www/vhosts/localhost/httpdocs/public/../library:./var/www/vhosts/localhost/httpdocs/public/../model:.


defined('SITE_ROOT') ? null : define('SITE_ROOT',$_SERVER['DOCUMENT_ROOT']);

$includePath[] = '.';
$includePath[] = '.' . SITE_ROOT . '/../library';
$includePath[] = '.' . SITE_ROOT . '/../model';
$includePath[] = get_include_path();
$includePath = implode(PATH_SEPARATOR,$includePath);
set_include_path($includePath);




require_once 'Zend/Loader/Autoloader.php';

Пожалуйста, помогите мне правильно настроить set_include_path.

1 Ответ

2 голосов
/ 27 февраля 2010

Вы используете строки, подобные этой:

$includePath[] = '.' . SITE_ROOT . '/../library';

Что дает вам include_path, например:

./var/www/vhosts/localhost/httpdocs/public/../library

Обратите внимание на . в начале этого пути - я думаю, его там не должно быть.

Попробуйте удалить символы . в начале каждого пути:

$includePath[] = '.';
$includePath[] = SITE_ROOT . '/../library';
$includePath[] = SITE_ROOT . '/../model';
$includePath[] = get_include_path();
$includePath = implode(PATH_SEPARATOR,$includePath);
set_include_path($includePath);


Для информации: A . в пути UNIX означает " текущий каталог "; а / в начале пути означает « корень сервера ».

Таким образом, путь, такой как ./var/www, фактически означает "каталог www, который находится внутри каталога var, который находится внутри текущего каталога" .

И вам, вероятно, нужно что-то вроде "каталога www, который находится внутри каталога var, который находится в корне сервера."

...