¿Qué significa.: Significa en php include_path?

10

Estoy tratando de instalar Zend en una máquina que ejecuta xampp. El archivo de ayuda de Zend dice que para configurar las herramientas de línea de comandos, necesito asegurarme de que el contenido del directorio / library esté ubicado dentro de mi directorio especificado php include_path.

Cuando miro mi php.ini, include_path aparece comentado, pero el valor se ve así:

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

¿Dónde está apuntando exactamente el include_path? Soy bastante nuevo en Linux y nunca he visto.: Como parte de una ruta de archivo.

EmmyS
fuente
2
Usted mencionó "una máquina que ejecuta xampp" Es posible que desee eliminarlo e instalar lamp-server en su lugar, que es un paquete en Ubuntu
Marco Ceppi
1
¿Por qué? xampp funciona perfectamente bien.
EmmyS
2
El metapaquete de servidor de lámparas de Ubuntu (taskel → LAMP Server) es una distribución de la pila de lámparas que está diseñada para funcionar especialmente bien con ubuntu . Puede usar xampp, por supuesto, y funcionará bien, pero se recomienda la distribución (versión) de Ubuntu (y es necesaria si desea utilizar el soporte empresarial de canonical).
Stefano Palazzo

Respuestas:

4

: es un separador en la lista de directorios.

. significa el directorio actual

Entonces, cuando un script php busca un archivo de inclusión, lo buscará en el mismo directorio que el archivo php y / php / includes.

misterben
fuente
Entonces, la ruta actualmente incluye dos directorios: el actual (por el cual supongo que se refiere al directorio que realmente contiene php.ini) y / php / includes. ¿Dónde está / php / includes (en lo que respecta a esta ruta)? Dentro del directorio actual? ¿O en otra parte?
EmmyS
Casi, . es el directorio actual relativo a cada archivo php en particular, no el php.ini. / php / includes es una ruta absoluta, esperando una carpeta 'php' de nivel superior en su sistema de archivos (en el mismo nivel que / usr, / etc)
misterben
7

.:en realidad es solo .(ya que :es la palabra clave que separa varias rutas) lo que significa que la carpeta actual en la que se ejecuta el script se incluye como parte de include_path. De esa manera cuando tienes dos archivos en el mismo directorio:

index.php
include-me.php

Puede incluir el segundo en PHP con include('include-me.php');. Sin .estar en el camino no sería capaz de hacerlo.

Por lo tanto, para completar la instalación como se mencionó, deberá colocar el contenido /libraryen la misma carpeta en la que se encuentra el script en el que está trabajando, o en /php/includes(concedido que elimine el ;archivo ini). También puede crear otro directorio, como /opt/Zend/libraryagregar y agregar /opt/Zend/librarya su declaración de ruta de inclusión:include_path = ".:/php/includes:/opt/Zend/library"

Por último, dado que está ejecutando Ubuntu, se recomienda que utilice la configuración LAMP de Ubuntu en su lugar (la mayoría de la documentación asume que está utilizando). Esto se puede instalar eliminando XAMPP y realizando sudo tasksel install lamp-serverlo que instalará Apache 2.2, MySQL, PHP 5.3 en el sistema. Como se explica en ¿Cuál es la forma más fácil de configurar una pila LAMP?

Marco Ceppi
fuente
1
Estoy perfectamente feliz con xampp. Sin embargo, aprecio la otra información.
EmmyS
@EmmyS Está bien: D: acabo de incluir mi respuesta a tu comentario "Por qué" en mi respuesta. Solo quiero asegurarme de que estés informado.
Marco Ceppi