PHP 에서 CLI

1 minute read

  • PHP CLI
  • 언제 쓸까?
  • crontab 등에서 php 를 사용해서 처리하게 하는 경우.
  • 복잡한 콘솔 작업을 할 경우.
  • 뭐, 파이썬이나 펄을 쓸 수도 있지만, 웹 쪽 php소스를 그대로 가져다가 콘솔에서 사용할 수도 있으니깐.

  • 커맨드라인에서 PHP를 사용하는 것을 의미.
  • CLI = command line interface
  • PHP는 보통 웹서버와 연동해서 사용하지만, 도스의 명령어 처럼 콘솔창에서도 사용이 가능하다.

  • http://php.net/manual/kr/features.commandline.php
  • php.net 의 관련 매뉴얼
  • 주요부분 
  • 윈도우용이라면 경로만 잘 확인해주면 된다.
  • 그외 OS라면 설치시  –enable-cli 를 해주었는지 확인하자.
  • MAMP로 설치시 php파일 위치.
  • $ which php  //which 는 명령 파일의 위치를 알아내는 명령어.
    /usr/bin/php //이곳에 php명령어 파일이 위치함.(보통 비슷한 곳에 위치함)

  • 사용가능한지 확인
  • $ php –help //도움말 출력
  • $ php -version //버전 확인
    PHP 5.5.31 (cli) (built: Apr 22 2016 21:05:13)
    Copyright (c) 1997-2015 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

  • 기본 사용법
  • $ php {파일명} 
    $ php -f {파일명} 
  • 해당 php파일을 실행한다.

  • $ php -r {<?,?>가 없는 소스코드}
  • 해당 소스 코드를 실행한다.
  • 1줄짜리 php소스 동작용으로 좋다.
  • ex> $ php -r “echo ‘test’;”

  • 버그?
  • 윈도우에서 CLI로 동작시킬 경우 php파일을 실행후 끝나는데 시간이 조금 걸린다.
  • 왜 그러는지 모르겠다.
  • 테스트환경우 autoset 7 에서 php-cli로 명령을 실행하였다.

  • CLI 모드 체크
  • 웹 환경 + CLI 환경 두군데 모두 사용하는 PHP소스가 있을 경우
    두 환경을 구분해야하는 경우가 있을 수 있다.
  • (PHP 4 >= 4.0.1, PHP 5, PHP 7)
    php_sapi_name — 웹 서버와 PHP 사이의 인터페이스 형식을 반환
  • if(php_sapi_name() ==’cli’) { ~~~  }

🔗original-link

Updated: