Cómo ejecutar PHP desde la línea de comandos de Windows en WAMPServer

Soy nuevo en php y quería ejecutar php desde línea de comandos. He instalado WAMP y configuré las “Variables del sistema” en mi carpeta php (que es C:\wamp\bin\php\php5.4.3 ).

Cuando voy a Run -> CMD -> Escriba php -a y presiono enter, dice que interactive mode enabled . Pero cuando escribo el echo 'Hi'; no muestra nada

Incluso no veo nada como ‘php>’ cuando escribo php -a y pulso enter.

La CLI de PHP como se denomina (php para Command Line Interface) se llama php.exe. Vive en c:\wamp\bin\php\php5.xy\php.exe (donde xey son los números de versión de php que has instalado)

Si desea crear scripts PHP para ejecutar desde la línea de comandos, entonces es fácil y muy útil.

Cree usted mismo un archivo por lotes como este, vamos a llamarlo phppath.cmd :

 PATH=%PATH%;c:\wamp\bin\php\php5.xy php -v 

Guárdelo en una de sus carpetas que ya está en su RUTA, para que pueda ejecutarlo desde cualquier lugar.

Ahora, desde una ventana de comandos, copie en su carpeta fuente y ejecute> phppath.

Entonces corre

php your_script.php

Debería funcionar como un sueño.

Aquí hay un ejemplo que configura PHP Composer y PEAR si es necesario y existen

 @echo off REM ************************************************************** REM * PLACE This file in a folder that is already on your PATH REM * Or just put it in your C:\Windows folder as that is on the REM * Serch path by default REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer REM ************************************************************** set baseWamp=D:\wamp set defaultPHPver=7.1.9 set composerInstalled=%baseWamp%\composer set phpFolder=\bin\php\php if %1.==. ( set phpver=%baseWamp%%phpFolder%%defaultPHPver% ) else ( set phpver=%baseWamp%%phpFolder%%1 ) PATH=%PATH%;%phpver% php -v echo --------------------------------------------------------------- REM IF PEAR IS INSTALLED IN THIS VERSION OF PHP IF exist %phpver%\pear ( set PHP_PEAR_SYSCONF_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_INSTALL_DIR=D:\wamp\bin\php\php%phpver%\pear set PHP_PEAR_DOC_DIR=D:\wamp\bin\php\php%phpver%\docs set PHP_PEAR_BIN_DIR=D:\wamp\bin\php\php%phpver% set PHP_PEAR_DATA_DIR=D:\wamp\bin\php\php%phpver%\data set PHP_PEAR_PHP_BIN=D:\wamp\bin\php\php%phpver%\php.exe set PHP_PEAR_TEST_DIR=D:\wamp\bin\php\php%phpver%\tests echo PEAR INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- ) else ( echo PEAR DOES NOT EXIST IN THIS VERSION OF php echo --------------------------------------------------------------- ) REM IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM ************************************************************** REM * IF A GLOBAL COMPOSER EXISTS ADD THAT TOO REM * REM * This assumes that composer is installed in /wamp/composer REM * REM ************************************************************** IF EXIST %composerInstalled% ( ECHO COMPOSER INCLUDED IN THIS CONFIG echo --------------------------------------------------------------- set COMPOSER_HOME=%baseWamp%\composer set COMPOSER_CACHE_DIR=%baseWamp%\composer PATH=%PATH%;%baseWamp%\composer rem echo TO UPDATE COMPOSER do > composer self-update echo --------------------------------------------------------------- ) else ( echo --------------------------------------------------------------- echo COMPOSER IS NOT INSTALLED echo --------------------------------------------------------------- ) set baseWamp= set defaultPHPver= set composerInstalled= set phpFolder= 

Llame a este archivo de comando de esta manera para usar la versión predeterminada de PHP

 > phppath 

O para obtener una versión específica de PHP como esta

 > phppath 5.6.30 

Recuerdo que una vez, cuando me encontré con este problema hace unos años, es porque Windows no tiene línea de lectura, por lo tanto no hay shell interactivo, para usar el modo interactivo php sin soporte de lectura, puedes hacer esto en su lugar:

 C:\>php -a Interactive mode enabled  ^Z Hello, world! 

Después de ingresar al modo interactivo, escriba usando apertura ( ) y cerrando ( ?> ) Etiqueta php, y finalizando con control Z ( ^Z ) que denota el final del archivo.

También recuerdo que encontré la solución del comentario del usuario del sitio de php: http://www.php.net/manual/en/features.commandline.interactive.php#105729

El problema que está describiendo suena como que su versión de PHP puede estar perdiendo el módulo PHP de readline, haciendo que el shell interactivo no funcione. Baso esto en este envío de errores de PHP .

Prueba correr

 php -m 

Y vea si aparece “readline” en la salida.

Puede haber buenas razones para omitir readline de la distribución. PHP generalmente es ejecutado por un servidor web; por lo que no es realmente necesario para la mayoría de los casos de uso. Estoy seguro de que puede ejecutar código PHP en un archivo desde el símbolo del sistema, usando:

 php file.php 

También está el proyecto phpsh que proporciona un shell (mejor) interactivo para PHP. Sin embargo, algunas personas han tenido problemas al ejecutarlo en Windows (no lo intenté).

Editar : Según la documentación aquí , readline no es compatible con Windows:

Nota: Esta extensión no está disponible en plataformas Windows.

Entonces, si eso es correcto, tus opciones son:

  • Evite el shell interactivo y simplemente ejecute código PHP en archivos desde la línea de comando; esto debería funcionar bien.
  • Intenta conseguir que phpsh funcione en Windows

Intenta usar el archivo por lotes

  1. Abrir el bloc de notas
  2. tipo php -S localhost:8000
  3. guardar archivo como extensión .bat , server.bat
  4. ahora haga clic en el archivo server.bat su servidor está listo en http://localhost:8000

Dependencia

si tienes el error php no reconoce ningún comando interno o externo, ve a la variable de entorno y edita la ruta a php.exe "C:\wamp\bin\php\php5.4.3"

Si solo desea ejecutar un fragmento de código rápido, puede usar la opción -r:

 php -r "echo 'hi';" 

-r permite ejecutar código sin utilizar tags de script

Puede ejecutar páginas php usando php.exe crear algún archivo php con código php y en el cmd escribir "[PATH to php.ext]\php.exe [path_to_file]\file.php"

ACTUALIZADO Después de algunas investigaciones, la mejor solución fue usar esa información con otro hilo de stackoverflow para evitar la entrada ctrl + z y también desde la salida de scree. Entonces, en lugar de php -a debes usar la call "php.exe" -f NAMED_SCRIPT.php

OLD Readline no es posible en Windows, por lo que ninguno de los shells php existentes escritos en php funcionará. Pero hay una solución alternativa que utiliza un modo interactivo.

2 problemas comunes aquí. No puede ver el resultado hasta que ejecute el comando CTRL Z para indicar el final del código / archivo como EOF. Cuando lo haga, el resultado en la mayoría de los casos es el resultado impreso y la ventana cerrada rápida. De todos modos, serás devuelto a cmd no el -a modo interactivo.

Guarde este contenido en un archivo .bat, y defina su PHP PATH en variables de Windows, o modifique php.exe a “ruta completa a exe” en su lugar:

 :: :: PHP Shell launch wrapper :: @ECHO off call "php.exe" -a echo. echo. call "PHP Shell.bat" 

Este es un simple lanzamiento por lotes -a modo de php.exe. Cuando se inicia php, stop script incluso no se escribe pausa porque está “en” la espera interactiva de entrada. Cuando presionas CTRL Z, obtiene SIGSTEP (siguiente paso) no el SIGSTOP (cerrar, CTRL + C por lo general), luego lee la siguiente instrucción, que es una llamada recursiva a .bat. Porque siempre estás en modo PHP -a, no hay comando de salida. Debe usar CTRL + C o golpear la cruz de salida con el mouse. (No alt + f4)

También puede usar el convertidor “Bat to Exe” para un uso fácil.

La siguiente solución es específicamente para entornos de wamp:

Esto me enloqueció por un tiempo, probé todas las otras sugerencias, $ PATH, etc. incluso busqué en el registro de Windows en busca de pistas:

La GUI (wampmanager) indica que tengo la versión 7 seleccionada y sí, si phpinfo () en una página en el navegador me dirá su versión 7.xx, pero php -v en el símbolo del sistema informa un 5.xx

Si hace clic con el botón derecho del mouse en el encabezado de wampmanager, vaya a ícono-> herramientas-> elimine las versiones no utilizadas y elimine la versión anterior, deje que reinicie los servicios y luego el símbolo del sistema devolverá un 7.xx

Esta solución significa que ya no tiene la versión anterior si desea cambiar entre las versiones de php, pero hay un archivo de configuración en C: \ wamp64 \ wampmanager.conf que parece especificar la versión que se usará con CLI (el parámetro se llama phpCliVersion) . Lo cambié, reinicié el servidor … pensé que lo había resuelto, pero no había efecto, tal vez estaba un poco impaciente, así que tengo la sensación de que puede haber algo de kilometraje en eso.

Espero que ayude a alguien

Eso es porque estás en ‘Modo interactivo’ donde php evalúa todo lo que escribes. Para ver el resultado final, haz ‘ctrl + z’ y Enter. Debería ver el resultado evaluado ahora 🙂

ps ejecuta el cmd como administrador!

En Windows, coloque su archivo php.exe en Windows / System32 o en cualquier otra carpeta ejecutable del sistema y luego vaya a la línea de comandos y escriba php y presione Enter, si no genera ningún error, estará listo para usar PHP en la línea de comandos. . Si ha configurado su php.exe en otro lugar que no sean las carpetas de sistema predeterminadas, entonces debe establecer su ruta en las variables de entorno. Puedes llegar al siguiente camino …

panel de control -> Sistema -> Edith las variables de entorno de su cuenta -> Entorno Vaiables -> ruta -> editar luego configure la ruta absoluta de su php.exe allí y siga el mismo procedimiento que en el primer párrafo, si nada en el error departamento, entonces estás listo para usar php desde la línea de comando!

Intereting Posts