Що означає.: Означає у php include_path?


10

Я намагаюся встановити Zend на машині під керуванням xampp. У довідковому файлі Зенда йдеться про те, що для того, щоб налаштувати інструменти командного рядка, я повинен переконатися, що вміст каталогу / бібліотеки розміщений всередині мого каталогу, визначеного php include_path.

Коли я дивлюсь на свій php.ini, коментований_установник коментується, але значення виглядає приблизно так:

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

Куди саме вказує include_path? Я досить новачок у Linux, і ніколи не бачив.: Як частину файлового шляху.


2
Ви згадали про "машину, на якій працює xampp". Ви можете вийняти її та встановити лампа-сервер, натомість який є пакетом в Ubuntu
Marco Ceppi

1
Чому? xampp працює чудово.
EmmyS

2
Метапакет ламп-сервера Ubuntu (tasksel → LAMP Server) - це розподіл ламп ламп, призначений для особливо хорошої роботи з ubuntu . Ви можете звичайно використовувати xampp - і він буде працювати чудово, але дистрибутив Ubuntu (версія) рекомендується (і потрібен, якщо ви хочете використовувати корпоративну підтримку canonical).
Стефано Палацо

Відповіді:


4

: є роздільником у списку каталогів.

. означає поточний каталог

Отже, коли скрипт php шукає файл включення, він буде виглядати в тому ж каталозі, що і файл php, та / php / include.


Отже, шлях наразі включає два каталоги - поточний (під яким я вважаю, ви маєте на увазі каталог, який насправді містить php.ini) та / php / включає? Де знаходиться / php / include (що стосується цього шляху)? Всередині поточного каталогу? Або десь ще?
EmmyS

Майже,. - поточний каталог відносно кожного конкретного файлу php, а не php.ini. / php / include - абсолютний шлях, очікуючи папки 'php' верхнього рівня у вашій файловій системі (на тому ж рівні, що й / usr, / тощо)
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: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 - Я просто включив у свою відповідь свою відповідь на ваш коментар "Чому". Просто хочуть переконатися, що ви проінформовані.
Марко Чеппі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.