PHP 명령줄 모드 소개

풀어 주다: 2023-04-08 13:08:02
앞으로
2293명이 탐색했습니다.

PHP 명령줄 모드 소개

php 풀 세트 라인 모드, 즉 php-cli는 공식 문서: CLI SAPI(서버 애플리케이션 프로그래밍 인터페이스, 서버 애플리케이션 프로그래밍 포트)에서 호출됩니다. 꽤 복잡해 보입니다. 사실 이 이름은 php가 원래 서버측 스크립트 언어라는 사실에서 유래되었습니다.

서버 모드와의 차이점

서버 모드는 주로 웹 서버 모드 또는 CGI 실행 프로그램으로 작동합니다. 전자는 Apache의 모듈(예: php5apache2.dll)로 작동합니다. ; 후자는 php-cig와 같은 실행 가능한 프로그램입니다. 현재 대체 프로그램은 php-fpm(FastCGI 프로세스 관리자)입니다.

php-fpm 구성을 살펴보세요. 서버에 콘텐츠가 포함된 스크립트 파일을 넣으세요:

<?php
phpinfo();
?>
로그인 후 복사

출력:

...
Server API	FPM/FastCGI
Virtual Directory Support	disabled
Configuration File (php.ini) Path	/etc/php7
Loaded Configuration File	/etc/php7/php.ini
Scan this dir for additional .ini files	/etc/php7/conf.d
...
로그인 후 복사

지침: 구성 파일은 /etc/php7/php.ini의 /etc/php7/conf.d

cli 모드 구성 파일을 살펴보세요.

php -r "phpinfo();"
로그인 후 복사

-r을 실행합니다. 이는 전체 세트를 실행하는 것을 의미합니다. 출력은 다음과 같습니다.

...
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d
Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-opcache.ini,
...
로그인 후 복사

구성 파일 경로는 /etc/php/7.0/cli/php.ini와 php-fpm이 다릅니다.

PHP는 임시 서버 스크립트로만 사용할 수 있고 장기적인 작업에는 사용할 수 없으며 보안 구성이 명령줄 등에 영향을 미친다는 말을 자주 듣습니다. 이는 분명히 잘못된 것입니다.

기타 차이점

cli 모드는 다음과 같은 세 가지 상수 STDIN, STDOUT, STDERR을 정의합니다. $stderr = fopen('php://stderr', 'w');

CLI SAPI는 현재 변경 사항을 변경하지 않습니다.

php를 쉘 스크립트로

php 스크립트를 스크립트와 같은 쉘 스크립트로 사용하는 방법에는 두 가지가 있습니다.
hello.php

<?php
echo "hello world!";
var_dump($argv);
?>
로그인 후 복사

방법 1, php 스크립트 매개변수

~php hello.php -s &#39;me&#39;
hello world
array(3) {
  [0]=>
  string(9) "hello.php"
  [1]=>
  string(2) "-s"
  [2]=>
  string(2) "me"
}
로그인 후 복사

방법 2, php 파일 헤더에

#!/usr/bin/php
로그인 후 복사

를 추가한 다음 chmod u+x hello.php
execute ./hello.php

hello world
array(1) {
  [0]=>
  string(11) "./hello.php"
}
로그인 후 복사

관련 권장 사항:

PHP 비디오 튜토리얼: https: //www.php.cn /course/list/29/type/2.html

위 내용은 PHP 명령줄 모드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿