WAMPServer의 Windows 명령 줄에서 PHP를 실행하는 방법
PHPWAMPServer의 Windows 명령 줄에서 PHP를 실행하는 방법
나는 PHP에 익숙하지 않고 명령 행에서 PHP를 실행하고 싶다. WAMP를 설치하고 "PHP"폴더 (C : \ wamp \ bin \ php \ php5.4.3)에 "시스템 변수"를 설정했습니다.
실행 -> CMD -> 유형 php -a로 이동하여 Enter 키를 누르면 대화식 모드가 활성화됩니다. 하지만 에코 '하이'를 쓸 때; 그것은 아무것도 보여주지 않습니다.
나는 심지어 php -a를 입력하고 엔터를 칠 때 "php>"와 같은 것을 보지 못한다.
해결법
-
==============================
1.PHP CLI (php : 명령 행 인터페이스)는 php.exe라고 불립니다. 그것은 c : \ wamp \ bin \ php \ php5.x.y \ php.exe에 있습니다 (여기서 x와 y는 설치된 php의 버전 번호입니다)
PHP CLI (php : 명령 행 인터페이스)는 php.exe라고 불립니다. 그것은 c : \ wamp \ bin \ php \ php5.x.y \ php.exe에 있습니다 (여기서 x와 y는 설치된 php의 버전 번호입니다)
커맨드 라인에서 실행하는 PHP 스크립트를 만들고 싶다면 쉽고 유용합니다.
이런 배치 파일을 만들어 phppath.cmd라고 부르 자.
PATH=%PATH%;c:\wamp\bin\php\php5.x.y php -v
이 파일을 이미 PATH에있는 폴더 중 하나에 저장하면 어디서나 실행할 수 있습니다.
이제 명령 창에서 원본 폴더로 cd하고> phppath를 실행하십시오.
그런 다음 실행
그것은 꿈처럼 작동해야합니다.
다음은 필요시 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 * 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=
기본 PHP 버전을 사용하려면 다음과 같은 명령 파일을 호출하십시오.
> phppath
또는 이와 같은 PHP의 특정 버전을 얻으려면
> phppath 5.6.30
-
==============================
2.나는이 문제를 몇 년 전에 우연히 만났던 한 번 기억한다. 윈도우가 readline을 가지지 않기 때문에, 대화식 쉘을 사용하지 않기 때문에 readline을 지원하지 않는 PHP 대화식 모드를 사용할 수있다.
나는이 문제를 몇 년 전에 우연히 만났던 한 번 기억한다. 윈도우가 readline을 가지지 않기 때문에, 대화식 쉘을 사용하지 않기 때문에 readline을 지원하지 않는 PHP 대화식 모드를 사용할 수있다.
C:\>php -a Interactive mode enabled <?php echo "Hello, world!"; ?> ^Z Hello, world!
대화 형 모드로 들어간 다음, 열기 ( php) 및 닫기 (?>) php 태그를 사용하여 입력하고 파일 끝을 나타내는 컨트롤 Z (^ Z)로 끝냅니다.
나는 또한 php의 사이트 사용자 코멘트에서 해결책을 찾았습니다. http://www.php.net/manual/en/features.commandline.interactive.php#105729
-
==============================
3.PHP 버전과 같은 문제가 발생하면 readline PHP 모듈이 누락되어 대화 형 쉘이 작동하지 않을 수 있습니다. 나는이 PHP 버그 제출에 기반한다.
PHP 버전과 같은 문제가 발생하면 readline PHP 모듈이 누락되어 대화 형 쉘이 작동하지 않을 수 있습니다. 나는이 PHP 버그 제출에 기반한다.
실행 해보기
php -m
출력에 "readline"이 나타나는지 확인하십시오.
배포본에서 readline을 생략하는 데는 충분한 이유가있을 수 있습니다. PHP는 일반적으로 웹 서버에 의해 실행됩니다. 그래서 대부분의 유스 케이스에는 꼭 필요한 것은 아니다. 명령 프롬프트에서 다음을 사용하여 PHP 코드를 파일에서 실행할 수 있다고 확신합니다.
php file.php
PHP를위한 더 나은 대화 형 쉘을 제공하는 phpsh 프로젝트도 있습니다. 그러나 일부 사람들은 Windows에서 실행하는 데 문제가있었습니다 (시도하지 않았습니다. 이 자신).
편집하다: 여기에있는 문서에 따르면 Windows에서는 readline이 지원되지 않습니다.
그래서 그것이 맞다면 옵션은 다음과 같습니다.
-
==============================
4.배치 파일을 사용해보십시오
배치 파일을 사용해보십시오
오류가 있으면 내부 또는 외부 명령을 인식하지 못합니다. 그런 다음 환경 변수로 가서 php.exe에 대한 경로를 편집하십시오. "C : \ wamp \ bin \ php \ php5.4.3"
-
==============================
5.빠른 코드 스 니펫을 실행하려면 -r 옵션을 사용할 수 있습니다.
빠른 코드 스 니펫을 실행하려면 -r 옵션을 사용할 수 있습니다.
php -r "echo 'hi';"
-r 스크립트 태그를 사용하지 않고 코드를 실행할 수 있습니다. ..?>
-
==============================
6.php.exe를 사용하여 PHP 페이지를 실행할 수 있습니다. PHP 코드로 PHP 파일을 만들고 cmd에 "[php.ext 로의 경로] \ php.exe [경로 _ 파일] \ file.php"
php.exe를 사용하여 PHP 페이지를 실행할 수 있습니다. PHP 코드로 PHP 파일을 만들고 cmd에 "[php.ext 로의 경로] \ php.exe [경로 _ 파일] \ file.php"
-
==============================
7.업데이트 됨 몇 가지 연구 후 최상의 솔루션은 그 정보를 다른 stackoverflow 스레드를 사용하여 ctrl + z 입력을 피하기 위해 그리고 scree 출력에서도 사용했습니다. 따라서 php -a 대신 "php.exe"를 사용해야합니다. -f NAMED_SCRIPT.php
업데이트 됨 몇 가지 연구 후 최상의 솔루션은 그 정보를 다른 stackoverflow 스레드를 사용하여 ctrl + z 입력을 피하기 위해 그리고 scree 출력에서도 사용했습니다. 따라서 php -a 대신 "php.exe"를 사용해야합니다. -f NAMED_SCRIPT.php
늙은 Windows에서는 readline을 사용할 수 없기 때문에 PHP로 작성된 기존의 PHP 쉘은 작동하지 않습니다. 그러나 대화식 모드를 사용하는 경우 해결 방법이 있습니다.
여기에 2 개의 공통 문제가 있습니다. CTRL Z 명령을 실행하여 EOF와 같은 코드 / 파일의 마지막을 나타낼 때까지는 결과를 볼 수 없습니다. 그렇게하면 대부분의 경우 결과가 인쇄되고 창을 닫을 수 있습니다. 어쨌든 -a 대화식 모드가 아닌 cmd로 돌아갑니다.
이 내용을 .bat 파일에 저장하고 Windows 변수에 PHP PATH를 정의하거나 php.exe를 "exe 전체 경로"로 수정하십시오.
:: :: PHP Shell launch wrapper :: @ECHO off call "php.exe" -a echo. echo. call "PHP Shell.bat"
이것은 간단한 배치 실행 - php.exe의 모드입니다. php를 시작하면 입력을 기다리는 대화 형으로 들어가기 때문에 일시 정지도 쓰지 않습니다. CTRL Z를 누르면 SIGSTOP (다음 단계)가 아닌 SIGSTOP (일반적으로 CTRL + C를 닫음)을 가져온 다음 .bat 자체에 대한 재귀 호출 인 다음 intruction을 읽습니다. 왜냐하면 항상 PHP -a 모드이기 때문에 exit 명령을 사용하지 않기 때문입니다. CTRL + C를 사용하거나 마우스로 출구 교차점을 눌러야합니다. (아니 alt + f4)
"Bat to Exe"변환기를 사용하여 쉽게 사용할 수도 있습니다.
-
==============================
8.다음 솔루션은 특히 습기가 많은 환경을위한 것입니다.
다음 솔루션은 특히 습기가 많은 환경을위한 것입니다.
이것은 잠시 동안 나를 비웃었고, 다른 모든 제안을 시도했다. $ PATH 등은 단서를 찾기 위해 Windows 레지스트리를 검색했다.
GUI (wampmanager)는 내가 버전 7을 선택했음을 나타내고 브라우저의 페이지에서 phpinfo ()를 사용하면 버전 7.x.x를 알려줄 것입니다. 그러나 명령 프롬프트에서 php -v는 5.x.x를보고합니다.
wampmanager를 마우스 오른쪽 버튼으로 클릭하여 아이콘 -> 도구 -> 사용하지 않는 버전을 삭제하고 이전 버전을 제거한 다음 서비스를 다시 시작하면 명령 프롬프트에서 7.x.x
이 솔루션은 php 버전 사이를 전환하려는 경우 이전 버전을 사용하지 않고 C : \ wamp64 \ wampmanager.conf에 CLI에서 사용할 버전을 지정하는 구성 파일 (phpCliVersion이라는 매개 변수가 있음)이 있음을 의미합니다. . 나는 그것을 바꿨고, 서버를 재시작했다. .. 내가 그것을 해결했다라고하는 생각 그러나 어떤 효과가 아마 나는 조금 참을성이 없었다. 그래서 나는 약간의 주행 거리가 있을지도 모른다라고하는 감각을 가지고있다.
희망은 누군가를 돕는다.
-
==============================
9.왜냐하면 php가 입력하는 모든 것을 평가하는 '대화식 모드'에 있기 때문입니다. 최종 결과를 보려면 'Ctrl + Z'를 입력하고 Enter를 누르십시오. 이제 평가 결과를 볼 수 있습니다 :)
왜냐하면 php가 입력하는 모든 것을 평가하는 '대화식 모드'에 있기 때문입니다. 최종 결과를 보려면 'Ctrl + Z'를 입력하고 Enter를 누르십시오. 이제 평가 결과를 볼 수 있습니다 :)
추신. 관리자로 cmd를 실행하십시오!
-
==============================
10.창에서 php.exe 파일을 windows / system32 또는 다른 시스템 실행 폴더에 넣은 다음 명령 행으로 이동하여 PHP를 입력하고 다음에 입력하십시오. 오류가 발생하지 않으면 명령 행에서 PHP를 사용할 준비가되었습니다. . 기본 시스템 폴더가 아닌 php.exe를 설정 한 경우 환경 변수에 경로를 설정해야합니다! 당신은 다음 경로에 거기에 도착할 수 있습니다 ....
창에서 php.exe 파일을 windows / system32 또는 다른 시스템 실행 폴더에 넣은 다음 명령 행으로 이동하여 PHP를 입력하고 다음에 입력하십시오. 오류가 발생하지 않으면 명령 행에서 PHP를 사용할 준비가되었습니다. . 기본 시스템 폴더가 아닌 php.exe를 설정 한 경우 환경 변수에 경로를 설정해야합니다! 당신은 다음 경로에 거기에 도착할 수 있습니다 ....
제어판 -> 시스템 -> Edith 환경 변수 -> 환경 변수 -> 경로 -> 편집을 클릭 한 다음 php.exe의 절대 경로를 설정하고 첫 번째 단락과 동일한 절차를 따르십시오. 오류가없는 경우 부서, 그럼 당신은 명령 줄에서 PHP를 사용할 준비가되었습니다!
from https://stackoverflow.com/questions/15597067/how-to-run-php-from-windows-command-line-in-wampserver by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
다차원 배열의 데이터 임플리트 (0) | 2018.09.11 |
---|---|
cURL을 사용하여 $ _POST 값 전달 (0) | 2018.09.11 |
PHP에서 두 문자열 사이에서 부분 문자열을 얻는 방법은 무엇입니까? (0) | 2018.09.11 |
unserialize () [function.unserialize] : 오프셋시 오류 (0) | 2018.09.11 |
PHP에서 XML을 JSON으로 변환 (0) | 2018.09.11 |