Что значит «переместить» файл в список включаемых путей? - PullRequest
4 голосов
/ 13 апреля 2011

В книге Zend Framework, руководство для начинающих;он говорит:

Содержимое каталога library/ должно быть перемещено в какое-либо место в вашем списке PHP «include path».,Не включает в себя значения пути, которые ссылаются на определенный каталог в определенном месте.Это что значит?или мне нужно буквально переместить папку в место, которое уже упоминалось в «пути включения»?

Ответы [ 2 ]

9 голосов
/ 15 апреля 2011

PHP include_path служит той же цели, что и системная переменная окружения PATH:

"Определяет список каталогов для поиска при поиске команды для выполнения«.( Боб Ранкин , 2011).

Как указывал предыдущий комментарий от andre matos, вы можете либо скопировать каталог библиотеки в каталог PHP include_path вашей системы, либо установить PHPдиректива конфигурации пути, 'include_path', в вашем файле php.ini, чтобы включить каталог библиотеки в качестве каталога для поиска PHP.

Независимо от того, какой путь вы выберете, вам нужно знать каталог PHP include_path вашей системы.,Чтобы найти каталог PHP include_path вашей системы, вы можете сделать:

% php -i | grep include_path # assuming you are on Linux

-или или создать файл, например, 'phpinfo.php', и добавить следующий код php:

<?php phpinfo(); ?>

и запустите файл через PHP,

% php phpinfo.php | grep include_path

или, альтернативно, добавьте файл, например, 'phpinfo.php', в каталог, о котором знает ваш веб-сервер, и откройте его как URLв веб-браузере и найдите «include_path».

Например, PHP include_path моей системы находится по адресу: /usr/lib64/php

Хотя, возможно, самый простой способ - просто скопировать каталог библиотеки в свойВ системном каталоге PHP include_path (например, / usr / lib64 / php) также одинаково легко установить директиву конфигурации пути PHP 'include_path' в файле php.ini вашей системы.

Чтобы установить конфигурацию пути PHPдиректива include_path в файле php.ini вашей системы, откройте файл и найдите директиву конфигурации пути include_path в разделе «Пути и каталоги».Это должно выглядеть примерно так:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

Удалите ';'из директивы конфигурации пути PHP include_path для вашей операционной системы.

Например, если вы работаете в Linux, она должна выглядеть следующим образом:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

Затем установите PHP include_pathдиректива конфигурации пути к каталогу библиотеки, как каталог для поиска PHP.

например, я загрузил ZendFramework в

/usr/src/done/ZendFramework-1.11.4-minimal/

Поэтому я должен установитьдиректива конфигурации PHP include_path для включения каталога библиотеки в каталог ZendFramework, например:

include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library"

Раздел «Пути и каталоги» в системном файле php.ini теперь должен выглядеть следующим образом:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

Позвольте мне объяснить каталоги, которые я добавил в директиву конфигурации PHP include_path в файле php.ini (показан выше):

Символ '.'является текущим каталогом, '/ usr / lib64 / php' является системным каталогом include_path PHP, а '/usr/src/done/ZendFramework-1.11.4-minimal/library' является путем к каталогу библиотеки вКаталог ZendFramework.Обратите внимание, что каждый каталог, указанный в директиве конфигурации PHP include_path, должен быть разделен символом «:» (так же, как каталоги, перечисленные в системной переменной среды PATH).

После добавления списка каталогов вв директиве конфигурации PHP include_path в файле php.ini необходимо перезапустить веб-сервер, чтобы сохранить изменения в PHP.

Например, % sudo apachectl restart # assumes you are using Apache as your web server

Надеюсь, это поможет,

//. Elliot

1 голос
/ 13 апреля 2011

Ну ... Вы можете сделать оба.

Добавьте включаемый путь к вашему php.ini (найдите что-то вроде include_path)

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;C:\PHP\pear;C:\PHP\otherfolder"

Или переместите папку в какой-то уже включенный путь (который вы будете знать после выполнения предыдущего поиска на php.ini).

Когда вы делаете что-то вроде:

<?php include 'file.php'; ?>

Если файл не находится в той же директории (.), Что и скрипт, который вы выполняете, php будет искать пути включения, определенные в php.ini.

...