PHP 54 内置Web服务器 web服务器排名 web服务器原理 简单的web服务器
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教程有兴趣的朋友有所帮助。

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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