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

Resuelto Daman asked hace 54 años • 0 respuestas

Soy nuevo en PHP y quería ejecutar PHP desde la línea de comandos. Instalé 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-> Escribir php -ay presiono enter, dice interactive mode enabled. Pero cuando escribo echo 'Hi';no muestra nada.

Ni siquiera veo nada como 'php >" cuando escribo php -ay presiono enter.

Daman avatar Jan 01 '70 08:01 Daman
Aceptado

La CLI de PHP como se llama (php para la interfaz de línea de comandos) se llama php.exe. Vive en c:\wamp\bin\php\php5.x.y\php.exe (donde xey son los números de versión de php que ha instalado)

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

Cree usted mismo un archivo por lotes como este, llamémoslo phppath.cmd:

PATH=%PATH%;c:\wamp\bin\php\phpx.y.z
php -v

Cambie x.y.za un nombre de carpeta válido para una versión de PHP que haya instalado en WAMPServer

Guarde esto en una de sus carpetas que ya esté en su RUTA, para que pueda ejecutarlo desde cualquier lugar.

Ahora, desde una ventana de comandos, acceda a su carpeta de origen y ejecute >phppath.

Entonces corre

php tu_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 * Search path by default
REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer
REM **************************************************************


set baseWamp=D:\wamp
set defaultPHPver=7.4.3
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=%baseWamp%%phpFolder%%phpver%
    set PHP_PEAR_INSTALL_DIR=%baseWamp%%phpFolder%%phpver%\pear
    set PHP_PEAR_DOC_DIR=%baseWamp%%phpFolder%%phpver%\docs
    set PHP_PEAR_BIN_DIR=%baseWamp%%phpFolder%%phpver%
    set PHP_PEAR_DATA_DIR=%baseWamp%%phpFolder%%phpver%\data
    set PHP_PEAR_PHP_BIN=%baseWamp%%phpFolder%%phpver%\php.exe
    set PHP_PEAR_TEST_DIR=%baseWamp%%phpFolder%%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=
set phpver=
set phpFolder=

Llame a este archivo de comando así 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
RiggsFolly avatar Apr 29 '2013 22:04 RiggsFolly

Recuerdo una vez que me encontré con este problema hace unos años, es porque Windows no tiene readline, por lo tanto, no tiene un shell interactivo. Para usar el modo interactivo de PHP sin soporte de readline, puedes hacer esto en su lugar:

C:\>php -a 
Interactive mode enabled 

<?php 
echo "Hello, world!"; 
?> 
^Z 
Hello, world!

Después de ingresar al modo interactivo, escriba usando la etiqueta php de apertura ( <?php) y cierre ( ?>), y finalice con el control Z ( ^Z), que indica el final del archivo.

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

O.O avatar Dec 13 '2013 01:12 O.O

Intente usar un archivo por lotes

  1. Abrir bloc de notas
  2. tipophp -S localhost:8000
  3. guardar el archivo como .batextensión,server.bat
  4. ahora haga clic en server.batel archivo en el que su servidor está listohttp://localhost:8000

Dependencia

Si obtiene el error php, no reconoce ningún comando interno o externo, vaya a la variable de entorno y edite la ruta a php.exe. "C:\wamp\bin\php\php5.4.3"

Nishchit avatar Oct 04 '2013 04:10 Nishchit

El problema que estás describiendo parece que a tu versión de PHP le puede faltar el módulo PHP readline, lo que hace que el shell interactivo no funcione. Me baso en este envío de error de PHP .

Intenta correr

php -m

Y vea si aparece "readline" en el resultado.

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

php file.php

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

Editar : según la documentación aquí , readlineno 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 comandos; esto debería funcionar bien
  • Intente hacer que phpsh funcione en Windows
driis avatar Mar 24 '2013 10:03 driis

Si simplemente 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 etiquetas de script<?..?>

James avatar Aug 06 '2014 10:08 James