PHP는 PHP 파일을 분석하고 실행하기 위해 PHP 인터프리터가 필요한 스크립팅 언어입니다. 웹 요청을 처리하기 위해 PHP를 CGI로 사용하는 경우 일종의 웹 서버에 내장되어야 하며, 가장 일반적으로 Apache 또는 IIS에 통합됩니다. 즉, PHP를 사용하기 전에 Apache 또는 IIS를 설치하고 올바르게 구성해야 합니다. 및 PHP 통합 매개변수. 이 구성은 표준화되어 있고 문서가 매우 풍부하지만 Apache와 PHP의 통합을 설치할 때 여전히 문제가 발생하는 경우가 있습니다. 또한 때로는 간단한 PHP 기능을 테스트하고 Apache 서비스를 설치 및 시작하고 싶지 않은 경우도 있습니다. 이 목적을 위해.
그러나 공식 문서에 따르면 이 내장 웹 서버는 개발 및 테스트 전용이며 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 왜냐하면 이 서버는 요청을 순차적으로 받아들이고 처리하지만 동시에 처리할 수는 없기 때문입니다.
이 내장 웹 서버는 사용이 매우 편리하며 다음 명령만 실행하면 됩니다.
$ php -S localhost:8000
그런 다음 액세스할 수 있습니다. 이렇게 시작한 후 기본 웹 서비스 디렉터리는 명령이 실행되는 현재 디렉터리가 됩니다. 현재 디렉터리를 사용하지 않으려면 -t 매개 변수를 사용하여 지정해야 합니다.
예시 #1 웹 서버 시작
$ cd ~/public_html
$ php -S localhost:8000
단말기 출력 정보:
2011년 7월 21일 목요일 10:43:28에 PHP 5.4.0 개발 서버 시작
localhost:8000에서 듣기
문서 루트는 /home/me/public_html
종료하려면 Ctrl-C를 누르세요
http://localhost:8000/ 및 http://localhost:8000/myscript.html 주소가 요청되면 터미널에서는 다음과 유사한 정보를 출력합니다.
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 Listening on localhost:8000 Document root is /home/me/public_html Press Ctrl-C to quit. [Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read [Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read [Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read [Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read [Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
예시#2 웹 서버 시작 시 문서의 루트 디렉터리를 지정
$ cd ~/public_html
$ php -S localhost:8000 -t foo/
단말기 표시 정보:
2011년 7월 21일 목요일 10:50:26에 PHP 5.4.0 개발 서버 시작
localhost:8000에서 듣기
문서 루트는 /home/me/public_html/foo
종료하려면 Ctrl-C를 누르세요
시작 명령줄에 PHP 스크립트 파일을 추가하면 이 파일은 "라우터" 스크립트로 처리됩니다. 이 스크립트는 모든 HTTP 요청을 담당합니다. 이 스크립트가 실행될 때 FALSE를 반환하면 요청된 리소스가 정상적으로 반환됩니다. FALSE가 아닌 경우 이 스크립트에 의해 생성된 콘텐츠가 브라우저에 표시됩니다.
예시 #3 라우터 스크립트 사용
이 예에서 이미지를 요청하면 해당 이미지가 반환되지만 HTML 파일을 요청하면 "Welcome to PHP"가 표시됩니다.
<?php // router.php if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) { return false; // serve the requested resource as-is. } else { echo "<p>Welcome to PHP</p>"; } ?>
$ php -S localhost:8000 router.php
예시 #4 내장 웹 서버를 사용하고 있는지 확인
프로그램 판단을 사용하여 내장 웹 서버와 프로덕션 서버에서 동일한 PHP 라우터 스크립트의 다양한 동작을 조정합니다.
<?php // router.php if (php_sapi_name() == 'cli-server') { /* route static assets and return false */ } /* go on with normal index.php operations */ ?>
$ php -S localhost:8000 router.php
이 내장 웹 서버는 확장자가 .css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg 및 .txt인 일부 표준 MIME 유형 리소스를 인식합니다. .htm 및 .svg 확장자에 대한 지원은 PHP 5.4.4 이후에만 지원됩니다.
예시 #5 지원되지 않는 파일 형식 처리
이 웹 서버가 지원되지 않는 MIME 파일 형식을 올바르게 처리하도록 하려면 다음을 수행하십시오.
<?php // router.php $path = pathinfo($_SERVER["SCRIPT_FILENAME"]); if ($path["extension"] == "ogg") { header("Content-Type: video/ogg"); readfile($_SERVER["SCRIPT_FILENAME"]); } else { return FALSE; } ?> $ php -S localhost:8000 router.php
이 내장 웹 서버에 원격으로 액세스하려면 시작 명령을 다음과 같이 변경해야 합니다.
예 #6 이 내장 웹 서버에 원격으로 액세스
$ php -S 0.0.0.0:8000
이런 방식으로 포트 8000을 통해 내장된 웹 서버에 원격으로 접속할 수 있습니다
위 글의 내용은 모두의 공부에 도움이 되길 바랍니다.