백엔드 개발 PHP 튜토리얼 PHP 54 内置Web服务器 web服务器排名 web服务器原理 简单的web服务器

PHP 54 内置Web服务器 web服务器排名 web服务器原理 简单的web服务器

Jul 29, 2016 am 08:50 AM
웹 서버

PHP是一种脚本语言,它需要PHP解释器来分析运行PHP文件。当把PHP做为CGI服务Web请求时,它需要被嵌入到某种Web服务器里,最常见的是集成到Apache或IIS里,这就是说,在使用PHP前,你需要安装Apache或IIS,并且正确的配置它们和PHP集成的参数。虽然这种配置已经很规范,文档非常丰富,但我们还是经常在安装Apache和PHP集成时遇到问题,而且,有时候我们只想测试一个简单的PHP特征,不想就为此安装、启动Apache服务。

但据官方文档上说,这个内置的Web服务器只是提供开发测试使用,不推荐使用中生产环境中。因为这个服务器接受处理请求时顺序执行的,不能并发处理。

这个内置的web服务器使用起来非常的方便,你只需要执行下面的命令:

<ol><li><span><span>$ php -S localhost:8000 </span></span></li></ol>
로그인 후 복사

然后就可以访问了。这样启动后,默认的web服务目录是执行命令的当前目录,如果不想使用当前目录,你需要使用 -t 参数来指定。

例 #1 启动Web服务器

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 </span></li>
</ol>
로그인 후 복사

终端输出信息:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html  </span></li>
<li><span>Press Ctrl-C to quit </span></li>
</ol>
로그인 후 복사

当请求了 http://localhost:8000/ 和 http://localhost:8000/myscript.html 地址后,终端输出类似如下的信息:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html  </span></li>
<li><span>Press Ctrl-C to quit.  </span></li>
<li><span>[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read  </span></li>
<li><span>[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read </span></li>
</ol>
로그인 후 복사

例 #2 启动web服务器时指定文档的根目录

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 -t foo/ </span></li>
</ol>
로그인 후 복사

终端显示信息:

<ol>
<li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011  </span></span></li>
<li><span>Listening on localhost:8000  </span></li>
<li><span>Document root is /home/me/public_html/foo  </span></li>
<li><span>Press Ctrl-C to quit </span></li>
</ol>
로그인 후 복사

如果你在启动命令行后面附加一个php脚本文件,那这个文件将会被当成一个“路由器”脚本。这个脚本将负责所有的HTTP请求,如果这个脚本执行时返回FALSE,则被请求的资源会正常的返回。如果不是FALSE,浏览里显示的将会是这个脚本产生的内容。

例 #3 使用路由器脚本

在这个例子中,对图片的请求会返回相应的图片,但对HTML文件的请求会显示“Welcome to PHP”:

<ol>
<li><span><span><?php  </span></span></span></li>
<li>
<span>// router.php </span><span> </span>
</li>
<li>
<span>if</span><span> (preg_match(</span><span>'/\.(?:png|jpg|jpeg|gif)$/'</span><span>, </span><span>$_SERVER</span><span>[</span><span>"REQUEST_URI"</span><span>])) {  </span>
</li>
<li>
<span>return</span><span> false;    </span><span>// serve the requested resource as-is. </span><span> </span>
</li>
<li>
<span>} </span><span>else</span><span> {  </span>
</li>
<li>
<span>echo</span><span> </span><span>"<p>Welcome to PHP</p>"</span><span>;  </span>
</li>
<li><span>}  </span></li>
<li><span>?> </span></li>
</ol>
로그인 후 복사
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
로그인 후 복사
로그인 후 복사
로그인 후 복사

例 #4 判断是否是在使用内置web服务器

通过程序判断来调整同一个PHP路由器脚本在内置Web服务器中和在生产服务器中的不同行为:

<ol>
<li><span><span><?php  </span></span></span></li>
<li>
<span>// router.php </span><span> </span>
</li>
<li>
<span>if</span><span> (php_sapi_name() == </span><span>'cli-server'</span><span>) {  </span>
</li>
<li>
<span>/* route static assets and return false */</span><span> </span>
</li>
<li><span>}  </span></li>
<li>
<span>/* go on with normal index.php operations */</span><span> </span>
</li>
<li><span>?> </span></li>
</ol>
로그인 후 복사
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
로그인 후 복사
로그인 후 복사
로그인 후 복사

这个内置的web服务器能识别一些标准的MIME类型资源,它们的扩展有:.css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg, and .txt。对.htm 和 .svg 扩展到支持是在PHP 5.4.4之后才支持的。

例 #5 处理不支持的文件类型

如果你希望这个Web服务器能够正确的处理不被支持的MIME文件类型,这样做:

<ol>
<li><span><span><?php  </span></span></span></li>
<li>
<span>// router.php </span><span> </span>
</li>
<li>
<span>$path</span><span> = </span><span>pathinfo</span><span>(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]);  </span>
</li>
<li>
<span>if</span><span> (</span><span>$path</span><span>[</span><span>"extension"</span><span>] == </span><span>"ogg"</span><span>) {  </span>
</li>
<li>
<span>header(</span><span>"Content-Type: video/ogg"</span><span>);  </span>
</li>
<li>
<span>readfile(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]);  </span>
</li>
<li><span>}  </span></li>
<li>
<span>else</span><span> {  </span>
</li>
<li>
<span>return</span><span> FALSE;  </span>
</li>
<li><span>}  </span></li>
<li><span>?> </span></li>
</ol>
로그인 후 복사
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
로그인 후 복사
로그인 후 복사
로그인 후 복사

如果你希望能远程的访问这个内置的web服务器,你的启动命令需要改成下面这样:

例 #6 远程访问这个内置Web服务器

<ol><li><span><span>$ php -S 0.0.0.0:8000 </span></span></li></ol>
로그인 후 복사

这样你就可以通过 8000 端口远程的访问这个内置的web服务器了

以上就介绍了PHP 54 内置Web服务器,包括了Web服务器方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CentOS 기반 웹 서버의 보안 감사 및 이벤트 로그 관리 CentOS 기반 웹 서버의 보안 감사 및 이벤트 로그 관리 Aug 05, 2023 pm 02:33 PM

CentOS 기반 웹 서버의 보안 감사 및 이벤트 로그 관리 개요 인터넷의 발달과 함께 웹 서버의 보안 감사 및 이벤트 로그 관리가 더욱 중요해지고 있습니다. CentOS 운영체제에 웹서버를 구축한 후에는 서버의 보안에 주의를 기울여 악의적인 공격으로부터 서버를 보호해야 합니다. 이 문서에서는 보안 감사 및 이벤트 로그 관리를 수행하는 방법을 소개하고 관련 코드 예제를 제공합니다. 보안감사 보안감사란 서버의 보안상태를 종합적으로 모니터링, 점검하여 잠재적인 가능성을 신속하게 발견하는 것을 말합니다.

모범 사례: CentOS에서 웹 서버 구축을 위한 성능 조정 가이드 모범 사례: CentOS에서 웹 서버 구축을 위한 성능 조정 가이드 Aug 04, 2023 pm 12:17 PM

모범 사례: CentOS에서 웹 서버 구축을 위한 성능 조정 가이드 요약: 이 문서의 목적은 서버의 성능과 응답 속도를 향상시키는 것을 목표로 CentOS에서 웹 서버를 구축하는 사용자에게 몇 가지 성능 조정 모범 사례를 제공하는 것입니다. 몇 가지 주요 튜닝 매개변수와 일반적으로 사용되는 최적화 방법을 소개하고, 독자가 이러한 방법을 더 잘 이해하고 적용할 수 있도록 일부 샘플 코드를 제공합니다. 1. 불필요한 서비스를 끄십시오. CentOS에서 웹 서버를 구축할 때 기본적으로 일부 불필요한 서비스가 시작되어 시스템 리소스를 차지하게 됩니다.

5가지 일반적인 웹 서버는 무엇입니까? 5가지 일반적인 웹 서버는 무엇입니까? Aug 25, 2022 pm 02:03 PM

5가지 유형의 웹 서버는 다음과 같습니다. 1. 공용 인트라넷 또는 인터넷에 정보를 게시할 수 있는 웹 서버 2. Apache Software Foundation의 오픈 소스 웹 서버인 Apache 3. 웹 애플리케이션인 WebSphere Application Server 4. Tomcat은 Java 기반 웹 애플리케이션 소프트웨어 컨테이너입니다. 5. Lighttpsd는 오픈 소스 웹 서버 소프트웨어입니다.

CentOS에서 웹 서버를 구축하기 전에 주의해야 할 권한 및 접근 제어 전략 CentOS에서 웹 서버를 구축하기 전에 주의해야 할 권한 및 접근 제어 전략 Aug 05, 2023 am 11:13 AM

CentOS에서 웹 서버를 구축하기 전에 주의해야 할 권한 및 접근 제어 전략은 웹 서버를 구축하는 과정에서 권한 및 접근 제어 전략이 매우 중요합니다. 권한 및 액세스 제어 정책을 올바르게 설정하면 서버 보안을 보호하고 권한 없는 사용자가 중요한 데이터에 액세스하거나 서버를 부적절하게 작동하는 것을 방지할 수 있습니다. 이번 글에서는 CentOS 시스템에서 웹 서버를 구축할 때 주의해야 할 권한 및 접근 제어 전략을 소개하고, 해당 코드 예제를 제공하겠습니다. 사용자 및 그룹 관리 먼저 전용 그룹을 만들어야 합니다.

입문 튜토리얼: CentOS에서 웹 서버 설정에 대한 빠른 가이드 입문 튜토리얼: CentOS에서 웹 서버 설정에 대한 빠른 가이드 Aug 04, 2023 pm 06:04 PM

초급 튜토리얼: CentOS에서 웹 서버를 구축하기 위한 빠른 가이드 소개: 오늘날 인터넷 시대에 자신만의 웹 서버를 구축하는 것은 많은 사람들에게 필수 사항이 되었습니다. 이 기사에서는 CentOS 운영 체제에서 웹 서버를 구축하는 방법을 소개하고 독자가 이를 빠르게 구현할 수 있도록 코드 예제를 제공합니다. 1단계: Apache 설치 및 구성 터미널을 열고 다음 명령을 통해 Apache 서버를 설치합니다. sudoyuminstallhttpd 설치가 완료된 후 Apac를 시작합니다.

웹 서버가 Swoole을 사용하지 않는 이유에 대해 논의해 보겠습니다. 웹 서버가 Swoole을 사용하지 않는 이유에 대해 논의해 보겠습니다. Mar 27, 2023 pm 03:29 PM

Swoole은 PHP를 기반으로 하는 오픈 소스 고성능 네트워크 통신 프레임워크로 TCP/UDP 서버 및 클라이언트 구현은 물론 다양한 비동기 IO, 코루틴 및 기타 고급 기능을 제공합니다. Swoole이 점점 대중화되면서 많은 사람들이 웹 서버에서 Swoole을 사용하는 것에 관심을 갖기 시작했습니다. 현재 웹 서버(예: Apache, Nginx, OpenLiteSpeed ​​등)가 Swoole을 사용하지 않는 이유는 무엇입니까? 이 질문을 살펴보겠습니다.

Go로 웹 서버를 작성하기 위한 모범 사례 Go로 웹 서버를 작성하기 위한 모범 사례 Jun 18, 2023 pm 07:38 PM

Go 언어는 특히 네트워크 프로그래밍에서 널리 사용되는 개발 언어가 되었습니다. Go로 웹 서버를 작성할 때 서버의 보안, 유지 관리성, 확장성을 보장하는 모범 사례가 많이 있습니다. 다음은 Go 웹 서버의 효율성과 안정성을 향상하는 데 도움이 될 수 있는 몇 가지 제안과 사례입니다. 표준 라이브러리 사용하기 Go 언어 표준 라이브러리에는 네트워크 프로그래밍과 관련된 많은 패키지가 있습니다. 예를 들어, net/http 패키지는 HTTP 서버 작성에 도움이 되고, net 패키지는 낮은 수준의 네트워크 연결 처리에 도움이 됩니다.

Python을 사용하여 간단한 웹 서버를 구현하는 방법 Python을 사용하여 간단한 웹 서버를 구현하는 방법 May 04, 2023 pm 02:19 PM

1. 소개 이 기사의 내용은 다음과 같은 부분으로 나누어집니다. 2. 웹 서버의 기본 개념 웹 서버: 클라이언트의 HTTP 요청을 처리하고 응답을 반환하는 프로그램입니다. HTTP 요청: 요청 방법, URL, 요청 헤더 및 기타 정보를 포함하여 클라이언트(예: 브라우저)가 서버에 보낸 요청입니다. HTTP 응답: 상태 코드, 응답 헤더, 응답 본문 및 기타 정보를 포함하여 서버가 클라이언트에 반환하는 데이터입니다. 3. Python 네트워크 프로그래밍 라이브러리 소켓 라이브러리: Python의 표준 라이브러리 중 하나이며 소켓 생성, 주소 바인딩 및 수신 포트와 같은 작업을 포함한 기본 네트워크 통신 기능을 제공합니다. http.server 라이브러리: Python의 표준 라이브러리 중 하나이며 기본 H를 제공합니다.

See all articles