Siempre puede ejecutar un programa desde el shell de comandos utilizando la ruta absoluta de de ese programa. Por ejemplo:
C:\> cd c:\wamp
C:\> bin\php\php.exe
Pero si ejecuta un comando en el intérprete de comandos sin nombrar la ruta completa al ejecutable, la cáscara trata de encontrar el programa ejecutable en uno de los directorios listados en la variable de entorno PATH
. Es decir, la ruta es una cadena con nombres de directorio separados por punto y coma. Para ejecutar un ejecutable, el shell intenta cada directorio en esa lista, en orden, como si tuviera
C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32
C:\> php.exe
...error that it cannot find php.exe...
Caso especial: correr php.exe
también funciona si el directorio de trabajo actual pasa a ser la ubicación de ese programa ejecutable. Pero eso es solo un ejemplo del uso de una ruta relativa, usando una ruta con cero niveles de directorio.
El segundo problema es que está ejecutando zf.bat
que es una secuencia de comandos que a su vez invoca php.exe
sin especificar una ruta. Supone que ha agregado la ubicación de php.exe
a su variable de entorno PATH
.
C:\> SET PATH=%PATH%;C:\wamp\bin\php
C:\> php.exe -v
PHP 5.3.1 (cli) (built: Nov 29 2009 13:59:20)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
El guión zf.bat
en sí también tiene que ser encontrado. Puede hacer esto agregando el directorio donde reside a su PATH
. Suponiendo que ha instalado Zend Framework bajo C:\zf
, por ejemplo:
C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32;C:\wamp\bin\php
C:\> zf.bat
...error that it cannot find zf.bat...
C:\> SET PATH=%PATH%;C:\zf\bin
C:\> zf.bat show version
Zend Framework Version: 1.10.0dev
También recomiendo que instale Zend Framework fuera su directorio htdocs
. Solo hay un archivo PHP que necesita en su htdocs
: ese es el único archivo de arranque que Zend Framework usa para instanciar el controlador frontal y enviar la solicitud.
Cuando utiliza zf.bat
para generar una aplicación de esqueleto para usted, crea un directorio public
con un script PHP index.php
dentro de ese directorio. Este archivo index.php
es el que necesita para estar en su directorio htdocs
. También necesita activos como CSS, Javascript e imágenes para estar bajo su htdocs
. El resto del código de la aplicación, y todo el Zend Framework en sí, debe ser fuera de su htdocs
. Especialmente cualquier archivo de configuración donde almacene datos confidenciales, como la contraseña de su base de datos, etc.
Puede editar el archivo index.php
. Puede definir una constante de PHP APPLICATION_PATH
, que es la ubicación del resto de su código de aplicación.
<?php
defined("APPLICATION_PATH")
|| define("APPLICATION_PATH", realpath(dirname(__FILE__) . "/../application"
));
Esa definición por defecto para APPLICATION_PATH
asume que su htdocs
es un directorio hermana para el resto de su código de aplicación generado por la herramienta zf.bat
. Sin duda, puede colocar el código de su aplicación en otro lugar, pero debe cambiar el código anterior para que lo encuentre el script index.php
.
También el script index.php
puede agregar la ubicación del código de la biblioteca a PHP INCLUDE_PATH
. Esto es útil si necesita hacer que la biblioteca Zend Framework pueda ser encontrada, o si usa otro código PHP de terceros en su aplicación. Asumiendo que instaló Zend Framework bajo C:\zf
, debe agregar su subdirectorio library
a su PHP INCLUDE_PATH
.
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
"C:/zf/library",
realpath(APPLICATION_PATH . "/../library"),
get_include_path()
)));
Las plantillas de código generados por el script zf.bat
tratan de hacer conjeturas defecto sensata acerca de dónde se encuentra su código, pero su entorno es su propia, y es fácil de editar estas secuencias de comandos para especificar la verdadera ubicación donde se ha instalado su código y bibliotecas.
Me alegra que haya encontrado una solución que funcione para usted. ¡Diviértete con PHP! –
Me gustaría agregar que una vez que configure su variable de entorno para incluir php.exe, zf.bat y la biblioteca ZF, deberá reiniciar el símbolo del sistema para que las rutas surtan efecto. Parece que una vez que hace clic en "Aceptar", los cambios en las rutas se emiten a través de Windows, pero tendrá que reiniciar su aplicación para que tenga efecto en esa aplicación. – musicliftsme