Co znaczy.: W php include_path?


10

Próbuję zainstalować Zend na maszynie z Xampp. Plik pomocy Zend mówi, że aby skonfigurować narzędzia wiersza poleceń, muszę się upewnić, że zawartość katalogu / library jest umieszczona w moim katalogu php include_path.

Kiedy patrzę na mój plik php.ini, ścieżka_włączenia jest komentowana, ale wartość wygląda następująco:

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

Gdzie dokładnie wskazuje ścieżka włączania? Jestem całkiem nowy w Linuksie i nigdy nie widziałem.: Jako części ścieżki do pliku.


2
Wspomniałeś o „maszynie z systemem xampp”. Może chcesz ją usunąć i zainstalować zamiast tego lamp-server, który jest pakietem Ubuntu
Marco Ceppi

1
Dlaczego? xampp działa doskonale.
EmmyS,

2
Metapakiet Ubuntu -serwer (tasksel → Serwer LAMP) jest dystrybucją stosu lamp, która jest specjalnie przystosowana do pracy szczególnie dobrze z Ubuntu . Możesz oczywiście użyć xampp - i będzie działać dobrze, ale dystrybucja Ubuntu (wersja) jest zalecana (i wymagana, jeśli chcesz korzystać z obsługi korporacyjnej przez canonical).
Stefano Palazzo

Odpowiedzi:


4

: jest separatorem na liście katalogów.

. oznacza bieżący katalog

Więc kiedy skrypt php szuka pliku dołączania, będzie wyglądał tak samo, jak plik php, a / php / zawiera.


Więc ścieżka zawiera obecnie dwa katalogi - bieżący (przez co zakładam, że masz na myśli katalog, który faktycznie zawiera php.ini) i / php / zawiera? Gdzie jest / php / obejmuje (jeśli chodzi o tę ścieżkę)? Wewnątrz bieżącego katalogu? Lub gdzie indziej?
EmmyS,

Prawie, . jest bieżącym katalogiem względem każdego konkretnego pliku php, a nie php.ini. / php / zawiera ścieżkę bezwzględną, oczekując najwyższego poziomu folderu „php” w twoim systemie plików (na tym samym poziomie co / usr, / etc)
misterben

7

.:jest właściwie tylko .(ponieważ :jest słowem kluczowym oddzielającym wiele ścieżek), co oznacza, że ​​bieżący folder, w którym wykonywany jest skrypt, jest uwzględniony jako część ścieżki_włączenia. W ten sposób, gdy masz dwa pliki w tym samym katalogu:

index.php
include-me.php

Możesz dołączyć drugi w PHP z include('include-me.php');. Bez .bycia na drodze nie byłbyś w stanie tego zrobić.

Tak więc, aby zakończyć instalację, jak wspomniano, musisz albo umieścić zawartość /librarytego samego folderu, w którym znajduje się skrypt, nad którym pracujesz - lub /php/includeswewnątrz (pod warunkiem, że usuniesz ;plik ini). Możesz także utworzyć inny katalog - polub /opt/Zend/libraryi dodaj /opt/Zend/librarydo instrukcji include path:include_path = ".:/php/includes:/opt/Zend/library"

Na koniec - ponieważ korzystasz z Ubuntu, zaleca się użycie zamiast tego konfiguracji LAMP Ubuntu (większość dokumentacji zakłada, że ​​używasz). Można to zainstalować, usuwając XAMPP i wykonując, sudo tasksel install lamp-serverktóry zainstaluje Apache 2.2, MySQL, PHP 5.3 w systemie. Jak opisano w Jaki jest najłatwiejszy sposób ustawienia stosu LAMP?


1
Jestem całkowicie zadowolony z Xamppa. Doceniam jednak inne informacje.
EmmyS,

@ EmmyS W porządku: D - w odpowiedzi umieściłem odpowiedź na Twój komentarz „Dlaczego”. Chcę tylko upewnić się, że jesteś informowany.
Marco Ceppi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.