itsource

WAMPServer의 Windows 명령줄에서 PHP를 실행하는 방법

mycopycode 2023. 1. 15. 17:21
반응형

WAMPServer의 Windows 명령줄에서 PHP를 실행하는 방법

php는 php를 사용합니다.를「System 폴더( 「WAMP」 「System Variables」)로했습니다.C:\wamp\bin\php\php5.4.3를 참조해 주세요.

★★★★★★★★★★★★★★★★★에 가면,Run->CMD -> 입php -a해 주세요, 라고 있습니다.interactive mode enabled 내가 '아예'라고 쓸echo 'Hi';이치노

'php >'라고 '>' 안 요.php -a라고 입력합니다.

)는 php, PHP CLI(명령줄 인터페이스용 php)에 .c:\wamp\bin\php\php5.x.y\php.exe 와y 는 한 의 입니다). (x 와 y 、 numbers php 、 스 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 。

명령줄에서 실행할 php Scrips를 만들고 싶다면 쉽고 매우 유용합니다.

을 직접 보세요. .phppath.cmd:

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

x.y.zWAMPServer WAMPServer 에 되어 있는 PHP 합니다.

PATH에 이미 있는 폴더 중 하나에 저장하면 어디에서나 실행할 수 있습니다.

이제 명령 창에서 소스 폴더에 cd를 입력하고 > phppath를 실행합니다.

그럼 달려라

php your_script.php

꿈처럼 잘 될 거야

필요에 따라 PHP Composer와 PEAR를 설정하는 예를 다음에 나타냅니다.

@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=

기본 버전의 PHP를 사용하려면 이 명령 파일을 이렇게 호출하십시오.

> phppath

또는 이와 같은 특정 버전의 PHP를 얻으려면

> phppath 5.6.30

몇 년 전 우연히 이 문제를 발견했을 때 윈도우에 리드라인이 없기 때문에 인터랙티브 셸이 없기 때문에 리드라인 지원 없이 php 인터랙티브 모드를 사용할 수 있습니다.대신 이 작업을 수행할 수 있습니다.

C:\>php -a 
Interactive mode enabled 

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

모드로 후opening을 합니다( opening ) 。<?php ) 및 닫힘 ( )?> 태그를 Z php로 .^Z는 파일의 는 파일의 끝을 나타냅니다.

또한 php의 사이트 사용자 코멘트 http://www.php.net/manual/en/features.commandline.interactive.php#105729에서 솔루션을 찾은 것도 기억합니다.

배치 파일 사용 시도

  1. 메모장 열기
  2. 「」라고 입력합니다.php -S localhost:8000
  3. 을 저장하다.bat " " ",server.bat
  4. " " 를 합니다.server.bat 파일http://localhost:8000

의존

와 php php로의 를 다시 연결하지 ."C:\wamp\bin\php\php5.4.3"

당신이 설명하고 있는 문제는 당신의 PHP 버전이 Readline PHP 모듈이 없어 인터랙티브 셸이 작동하지 않는 것처럼 들립니다.이 PHP 버그에 근거하고 있습니다.

실행해 보다

php -m

출력에 "readline"이 표시되는지 확인합니다.

배포에서 readline을 생략하는 데는 충분한 이유가 있을 수 있습니다.PHP는 일반적으로 웹 서버에 의해 실행되므로 대부분의 사용 사례에서는 필요하지 않습니다.명령 프롬프트에서 다음 명령을 사용하여 파일 내의 PHP 코드를 실행할 수 있습니다.

php file.php

PHP를 위한 (더 나은) 인터랙티브 셸을 제공하는 phpsh 프로젝트도 있습니다.그러나 Windows에서 실행하는 데 문제가 있는 사람도 있습니다(제가 직접 실행한 것은 아닙니다).

편집: 여기 설명서에 따르면readline는 Windows에서는 되지 않습니다.Windows에서는 지원되지 않습니다.

주의: 이 확장자는 Windows 플랫폼에서는 사용할 수 없습니다.

올바른 경우 다음 옵션을 사용할 수 있습니다.

  • 인터랙티브 셸을 피하고 명령줄에서 파일 내의 PHP 코드를 실행하기만 하면 됩니다.
  • Windows에서 phpsh를 작동시켜 보십시오.

간단한 코드 스니펫을 실행하는 경우 -r 옵션을 사용할 수 있습니다.

php -r "echo 'hi';"

-r을 하지 않고 할 수 .<?..?>

php할 수 파일에는 cmd write php.exe 가 포함되어 cmd write php.exe에 있습니다."[PATH to php.ext]\php.exe [path_to_file]\file.php"

업데이트 몇 가지 조사 후 최선의 해결책은 다른 스택오버플로우 스레드를 사용하여 ctrl+z 입력 및 screw 출력으로부터 정보를 얻는 것입니다.그래서 대신php -a도 이렇게 써야 요.call "php.exe" -f NAMED_SCRIPT.php

Windows에서는 OLD Readline이 불가능하기 때문에 php로 작성된 기존 php 쉘은 작동하지 않습니다.그러나 대화형 모드를 사용하는 해결 방법이 있습니다.

통신에 관한 2가지 문제EOF와 같은 코드/파일의 마지막을 나타내기 위해 CTRL Z 명령을 실행할 때까지 결과를 볼 수 없습니다.이 경우 대부분의 경우 결과가 인쇄되고 창이 빠르게 닫힙니다.어쨌든 -a 대화형 모드가 아닌 cmd로 돌아갑니다.

이 내용을 .bat 파일에 저장하고 PHP PATH를 Windows 변수에 정의하거나 대신 php.exe를 "exe 전체 경로"로 수정하십시오.

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

echo.
echo.

call "PHP Shell.bat"

이것은 php.exe의 -a 모드인 간단한 일괄 실행입니다.php 를 기동하면, 인터랙티브하게 입력을 대기하고 있기 때문에, 일시정지 스크립트는 써지지 않습니다.CTRL Z를 누르면 SIGSTOP(닫기, 보통 CTRL+C)이 아닌 SIGSTEP(다음 단계)가 표시되고 다음 명령을 읽습니다.wich는 .bat 자체에 대한 재귀 호출입니다.항상 PHP -a 모드이기 때문에 종료 명령어는 없습니다.CTRL+C를 사용하거나 마우스로 종료 십자 기호를 눌러야 합니다.(alt+f4 없음)

또, 「Bat to Exec」컨버터를 사용해 간단하게 사용할 수도 있습니다.

이는 php가 입력하는 모든 것을 평가하는 '인터랙티브 모드'이기 때문입니다.최종 결과를 보려면 'ctrl+z'와 Enter를 수행합니다.평가 결과가 표시됩니다. : )

p.s. cmd를 Administrator로 실행합니다!

다음 솔루션은 WAMP 환경 전용입니다.

이것은 잠시 동안 나를 당황하게 했고, 다른 모든 제안을 시도했다. $PATH 등은 단서를 찾기 위해 윈도우 레지스트리를 검색하기도 했다.

GUI(wampmanager)는 버전7이 선택되어 있으며 브라우저 페이지에서 phpinfo()를 실행하면 버전7.x.x 가 표시되지만 명령 프롬프트에서는 php-v 가 5.x.x.x 가 보고됩니다.

wampmanager 헤드를 우클릭하여 아이콘->tools-> 사용하지 않는 버전을 삭제하고 이전 버전을 삭제한 후 서비스를 재시작하면 명령 프롬프트는 7.x.x를 반환합니다.

이 솔루션은 php 버전 간에 전환하는 경우 이전 버전을 더 이상 가지고 있지 않지만 C:\wamp64\wampmanager.conf에 CLI에서 사용할 버전을 지정하는 설정 파일이 있음을 의미합니다(파라미터는 phpCliVersion).변경해서 서버를 다시 시작했는데...해결했다고 생각했는데 효과가 없는 것 같아서 조금 성급했던 것 같아서 뭔가 마일리지가 있는 것 같아요.

누군가에게 도움이 되었으면 좋겠다.

이전 php 버전이 필요 없는 경우 다음 단계를 수행합니다.

  • wamp를 열고 wamp manager than go를 우클릭합니다: tools / php CLI Version을 클릭합니다.
  • 다음에 wamp manager를 오른쪽 클릭하여 go: tools/unuserd 버전을 삭제하고 시스템에서 pc php 버전이라고 주장하는 가장 오래된 버전을 삭제합니다.
  • 제어판/사용자 계정으로 이동하거나 환경변수를 변경하고 PATH 변수에서 편집을 클릭하여 wamp 서버 bin 폴더에 있는 최신 php 버전 경로를 추가합니다.
  • 모든 명령줄 또는 IDE를 닫고 재시작한 후 php - v를 확인합니다.

이것은 잘 작동한다

윈도에서는 php.exe 파일을 windows/system32 또는 다른 시스템 실행 가능 폴더에 넣은 후 명령줄로 이동하여 php를 입력하고 Enter 키를 눌러 오류가 발생하지 않으면 명령줄에서 PHP를 사용할 준비가 됩니다.기본 시스템 폴더가 아닌 다른 곳에 php.exe를 설정한 경우 환경변수로 경로를 설정해야 합니다.다음과 같은 경로로 갈 수 있습니다.

제어판 -> System -> Environment Vaiables -> path -> edit 계정의 환경변수를 편집하여 php.exe의 절대경로를 설정하고 첫 번째 단락과 같은 절차를 수행합니다.오류 부문에 아무것도 없으면 명령줄에서 php를 사용할 수 있습니다.

위의 Riggs Folly 스크립트는 다음과 같이 설정하면 약간 개선됩니다.

PATH=%phpver%;%PATH%

처음에 새로운 PHP ver 경로를 추가합니다.이것에 의해, 환경 설정으로 디폴트 패스를 설정할 수 있습니다.다른 버전으로 변경할 경우에만 이 스크립트가 필요합니다.

또, 나처럼 이것을 git bash 쉘로 실행하고 싶다면, bash 스크립트를 호출하여 .bat 파일을 호출하면 됩니다.

#!/bin/bash
eval phppath.bat $1

언급URL : https://stackoverflow.com/questions/15597067/how-to-run-php-from-windows-command-line-in-wampserver

반응형