PHP 에서 CLI
- 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’) { ~~~ }