Cosa significa.: Significa in php include_path?


10

Sto cercando di installare Zend su una macchina che esegue xampp. Il file di aiuto di Zend dice che per configurare gli strumenti da riga di comando, devo assicurarmi che il contenuto della directory / library sia inserito nella mia directory php include_path specificata.

Quando guardo il mio php.ini, include_path viene commentato, ma il valore è simile al seguente:

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

Dove punta esattamente il include_path? Sono abbastanza nuovo su Linux e non ho mai visto.: Come parte di un percorso di file.


2
Hai citato "una macchina che esegue xampp" Potresti volerlo rimuovere e installare lamp-server invece che è un pacchetto in Ubuntu
Marco Ceppi

1
Perché? xampp funziona perfettamente.
EmmyS,

2
Il metapacchetto lamp-server di Ubuntu (taskel → LAMP Server) è una distribuzione dello stack di lampade su misura per funzionare particolarmente bene con Ubuntu . Ovviamente puoi usare xampp - e funzionerà bene, ma la distribuzione (versione) di Ubuntu è consigliata (e richiesta se vuoi usare il supporto aziendale di canonical).
Stefano Palazzo

Risposte:


4

: è un separatore nell'elenco di directory.

. indica la directory corrente

Quindi, quando uno script php è alla ricerca di un file include, lo vedrà nella stessa directory del file php e / php / include.


Quindi il percorso include attualmente due directory: quella attuale (con la quale suppongo che intendi la directory che contiene effettivamente php.ini) e / php / include? Dov'è / php / include (per quanto riguarda questo percorso)? All'interno della directory corrente? O altrove?
EmmyS,

Quasi, . è la directory corrente relativa a ciascun particolare file php, non php.ini. / php / Includes è un percorso assoluto, in attesa di una cartella 'php' di livello superiore nel tuo filesystem (allo stesso livello di / usr, / etc)
misterben

7

.:è in realtà solo .(poiché :è la parola chiave che separa più percorsi), il che significa che la cartella corrente in cui viene eseguito lo script è inclusa come parte di include_path. In questo modo quando hai due file nella stessa directory:

index.php
include-me.php

Puoi includere il secondo in PHP con include('include-me.php');. Senza .essere in cammino non saresti in grado di farlo.

Quindi, al fine di completare l'installazione, come detto, è necessario inserire il contenuto /librarynella stessa cartella in cui si trova lo script su cui si sta lavorando o in /php/includes(Concesso di rimuovere il ;file dal file ini). Puoi anche creare un'altra directory simile a quella /opt/Zend/librarye aggiungerla /opt/Zend/libraryall'istruzione include path:include_path = ".:/php/includes:/opt/Zend/library"

Infine, poiché si utilizza Ubuntu, si consiglia di utilizzare l'installazione LAMP di Ubuntu (la maggior parte della documentazione presuppone che si stia utilizzando). Questo può essere installato rimuovendo XAMPP ed eseguendo sudo tasksel install lamp-serverche installerà Apache 2.2, MySQL, PHP 5.3 sul sistema. Come spiegato in Qual è il modo più semplice per impostare uno stack LAMP?


1
Sono perfettamente contento di xampp. Apprezzo comunque le altre informazioni.
EmmyS,

@EmmyS Va bene: D - Ho appena incluso la mia risposta al tuo commento "Why" nella mia risposta. Voglio solo assicurarti di essere informato.
Marco Ceppi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.