Что означает.: В php include_path?

10

Я пытаюсь установить Zend на машину под управлением xampp. В справочном файле Zend сказано, что для настройки инструментов командной строки мне нужно убедиться, что содержимое каталога / library находится внутри моего каталога php include_path.

Когда я смотрю на мой php.ini, include_path закомментирован, но значение выглядит так:

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

Куда именно указывает include_path? Я довольно новичок в Linux, и никогда не видел. Как часть пути к файлу.

Emmys
источник
2
Вы упомянули «машину с xampp». Вы можете удалить ее и установить вместо нее ламповый сервер, который является пакетом в Ubuntu
Marco Ceppi
1
Почему? xampp работает отлично.
EmmyS
2
Убунту лампа-сервер метапакет (tasksel → ЛАМПЫ сервер) представляет собой распределение стека лампы , которые адаптированной для работы особенно хорошо с убунту . Конечно, вы можете использовать xampp - и он будет работать просто отлично, но рекомендуется дистрибутив (версия) Ubuntu (и требуется, если вы хотите использовать корпоративную поддержку canonical).
Стефано Палаццо

Ответы:

4

: является разделителем в списке каталогов.

, означает текущий каталог

Поэтому, когда php-скрипт ищет включаемый файл, он будет выглядеть в том же каталоге, что и php-файл, и / php / include.

misterben
источник
Таким образом, путь в настоящее время включает в себя две директории - текущую (под которой я предполагаю, что вы имеете в виду директорию, которая на самом деле содержит php.ini) и / php / includes? Где находится / php / includes (что касается этого пути)? Внутри текущего каталога? Или где-то еще?
EmmyS
Почти, . текущая директория относительно каждого конкретного php-файла, а не php.ini. / php / includes - это абсолютный путь, ожидающий папку php верхнего уровня в вашей файловой системе (на том же уровне, что и / usr, / etc)
misterben
7

.:на самом деле просто .(поскольку :это ключевое слово, которое разделяет несколько путей), что означает, что текущая папка, в которой выполняется скрипт, включена как часть include_path. Таким образом, когда у вас есть два файла в одном каталоге:

index.php
include-me.php

Вы можете включить второй в PHP с include('include-me.php');. Без .пути вы не сможете этого сделать.

Таким образом, чтобы завершить установку, как уже упоминалось, вам нужно будет либо поместить содержимое /libraryв ту же папку, в которой находится сценарий, над которым вы работаете, либо в /php/includes(конечно, вы удалите его ;из ini-файла). Вы также можете создать другой каталог - как /opt/Zend/libraryи добавить /opt/Zend/libraryв ваш оператор пути включения:include_path = ".:/php/includes:/opt/Zend/library"

И наконец - поскольку вы работаете с Ubuntu, рекомендуется вместо этого использовать настройку LAMP в Ubuntu (в большинстве документов предполагается, что вы используете). Это можно установить, удалив XAMPP и выполнив sudo tasksel install lamp-serverустановку Apache 2.2, MySQL, PHP 5.3 в систему. Как описано в разделе Как проще всего настроить стек LAMP?

Марко Чеппи
источник
1
Я совершенно счастлив с xampp. Я ценю другую информацию, хотя.
EmmyS
@EmmyS Это нормально: D - я просто включил свой ответ на ваш комментарий «Почему» в мой ответ. Просто хочу убедиться, что ты в курсе.
Марко Чеппи