Heim Backend-Entwicklung PHP-Tutorial PHP 54 内置Web服务器 web服务器排名 web服务器原理 简单的web服务器

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

Jul 29, 2016 am 08:50 AM
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>
Nach dem Login kopieren

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

例 #1 启动Web服务器

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 </span></li>
</ol>
Nach dem Login kopieren

终端输出信息:

<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>
Nach dem Login kopieren

当请求了 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>
Nach dem Login kopieren

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

<ol>
<li><span><span>$ cd ~/public_html  </span></span></li>
<li><span>$ php -S localhost:8000 -t foo/ </span></li>
</ol>
Nach dem Login kopieren

终端显示信息:

<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>
Nach dem Login kopieren

如果你在启动命令行后面附加一个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>
Nach dem Login kopieren
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

例 #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>
Nach dem Login kopieren
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

这个内置的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>
Nach dem Login kopieren
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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

<ol><li><span><span>$ php -S 0.0.0.0:8000 </span></span></li></ol>
Nach dem Login kopieren

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

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sicherheitsüberprüfung und Ereignisprotokollverwaltung von Webservern, die auf CentOS basieren Sicherheitsüberprüfung und Ereignisprotokollverwaltung von Webservern, die auf CentOS basieren Aug 05, 2023 pm 02:33 PM

Überblick über die Sicherheitsüberprüfung und Ereignisprotokollverwaltung von Webservern, die auf CentOS basieren. Mit der Entwicklung des Internets sind Sicherheitsüberprüfung und Ereignisprotokollverwaltung von Webservern immer wichtiger geworden. Nach dem Einrichten eines Webservers unter dem CentOS-Betriebssystem müssen wir auf die Sicherheit des Servers achten und den Server vor böswilligen Angriffen schützen. In diesem Artikel wird die Durchführung von Sicherheitsüberprüfungen und der Verwaltung von Ereignisprotokollen vorgestellt und relevante Codebeispiele bereitgestellt. Sicherheitsaudit Unter Sicherheitsaudit versteht man die umfassende Überwachung und Überprüfung des Sicherheitsstatus des Servers, um Potenziale rechtzeitig zu erkennen

Best Practices: Leitfaden zur Leistungsoptimierung zum Erstellen eines Webservers unter CentOS Best Practices: Leitfaden zur Leistungsoptimierung zum Erstellen eines Webservers unter CentOS Aug 04, 2023 pm 12:17 PM

Best Practices: Leitfaden zur Leistungsoptimierung zum Erstellen von Webservern unter CentOS Zusammenfassung: Dieser Artikel soll einige Best Practices zur Leistungsoptimierung für Benutzer bereitstellen, die Webserver unter CentOS erstellen, um die Leistung und Reaktionsgeschwindigkeit des Servers zu verbessern. Es werden einige wichtige Optimierungsparameter und häufig verwendete Optimierungsmethoden vorgestellt und einige Beispielcodes bereitgestellt, um den Lesern zu helfen, diese Methoden besser zu verstehen und anzuwenden. 1. Schalten Sie unnötige Dienste aus. Beim Erstellen eines Webservers unter CentOS werden standardmäßig einige unnötige Dienste gestartet, die Systemressourcen belegen.

Was sind die fünf gängigen Webserver? Was sind die fünf gängigen Webserver? Aug 25, 2022 pm 02:03 PM

Die fünf Arten von Webservern sind: 1. IIS, ein Webserver, der die Veröffentlichung von Informationen in einem öffentlichen Intranet oder Internet ermöglicht; 2. Apache, ein Open-Source-Webserver der Apache Software Foundation; 3. WebSphere Application Server, eine Webanwendung; 4. Tomcat ist ein Java-basierter Webanwendungssoftware-Container. 5. Lighttpsd ist eine Open-Source-Webserversoftware.

Berechtigungen und Zugriffskontrollstrategien, auf die Sie achten müssen, bevor Sie einen Webserver unter CentOS erstellen Berechtigungen und Zugriffskontrollstrategien, auf die Sie achten müssen, bevor Sie einen Webserver unter CentOS erstellen Aug 05, 2023 am 11:13 AM

Berechtigungen und Zugriffskontrollstrategien, auf die Sie achten müssen, bevor Sie einen Webserver unter CentOS erstellen. Beim Aufbau eines Webservers sind Berechtigungen und Zugriffskontrollstrategien sehr wichtig. Durch das korrekte Festlegen von Berechtigungen und Zugriffskontrollrichtlinien kann die Sicherheit des Servers geschützt und verhindert werden, dass unbefugte Benutzer auf vertrauliche Daten zugreifen oder den Server nicht ordnungsgemäß betreiben. In diesem Artikel werden die Berechtigungen und Zugriffskontrollstrategien vorgestellt, auf die beim Aufbau eines Webservers unter dem CentOS-System geachtet werden muss, und entsprechende Codebeispiele bereitgestellt. Benutzer- und Gruppenverwaltung Zuerst müssen wir eine dedizierte erstellen

Einführungs-Tutorial: Eine Kurzanleitung zum Einrichten eines Webservers unter CentOS Einführungs-Tutorial: Eine Kurzanleitung zum Einrichten eines Webservers unter CentOS Aug 04, 2023 pm 06:04 PM

Einsteiger-Tutorial: Eine Kurzanleitung zum Aufbau eines Webservers unter CentOS Einführung: Im heutigen Internetzeitalter ist der Aufbau eines eigenen Webservers für viele Menschen zu einem Bedürfnis geworden. In diesem Artikel erfahren Sie, wie Sie einen Webserver auf dem CentOS-Betriebssystem erstellen und Codebeispiele bereitstellen, um den Lesern bei der schnellen Implementierung zu helfen. Schritt 1: Apache installieren und konfigurieren Öffnen Sie das Terminal und installieren Sie den Apache-Server mit dem folgenden Befehl: sudoyuminstallhttpd Starten Sie Apac nach Abschluss der Installation

Lassen Sie uns diskutieren, warum Webserver kein Swoole verwenden Lassen Sie uns diskutieren, warum Webserver kein Swoole verwenden Mar 27, 2023 pm 03:29 PM

Swoole ist ein Open-Source-Framework für die leistungsstarke Netzwerkkommunikation, das auf PHP basiert. Es bietet die Implementierung von TCP/UDP-Servern und -Clients sowie eine Vielzahl asynchroner E/A-, Coroutine- und anderer erweiterter Funktionen. Da Swoole immer beliebter wird, interessieren sich viele Menschen für die Verwendung von Swoole durch Webserver. Warum verwenden aktuelle Webserver (wie Apache, Nginx, OpenLiteSpeed ​​usw.) Swoole nicht? Lassen Sie uns dieser Frage nachgehen.

Best Practices zum Schreiben von Webservern in Go Best Practices zum Schreiben von Webservern in Go Jun 18, 2023 pm 07:38 PM

Die Go-Sprache ist zu einer beliebten Entwicklungssprache geworden, insbesondere für die Netzwerkprogrammierung. Beim Schreiben eines Webservers in Go gibt es viele Best Practices, um die Sicherheit, Wartbarkeit und Skalierbarkeit des Servers zu gewährleisten. Hier finden Sie einige Vorschläge und Vorgehensweisen, die Ihnen dabei helfen können, die Effizienz und Zuverlässigkeit Ihres Go-Webservers zu verbessern. Verwenden der Standardbibliothek In der Standardbibliothek der Go-Sprache gibt es viele Pakete, die sich auf die Netzwerkprogrammierung beziehen. Beispielsweise hilft Ihnen das Paket „net/http“ beim Schreiben von HTTP-Servern und das Paket „net“ hilft bei der Handhabung von Netzwerkverbindungen auf niedriger Ebene.

So implementieren Sie einen einfachen Webserver mit Python So implementieren Sie einen einfachen Webserver mit Python May 04, 2023 pm 02:19 PM

1. Einleitung Wir werden den Inhalt dieses Artikels in die folgenden Teile unterteilen: 2. Grundkonzepte des Webservers Webserver: ein Programm, das für die Verarbeitung der HTTP-Anfrage des Clients und die Rückgabe einer Antwort verantwortlich ist. HTTP-Anfrage: Eine vom Client (z. B. einem Browser) an den Server gesendete Anfrage, einschließlich Anfragemethode, URL, Anfrageheader und anderen Informationen. HTTP-Antwort: Die vom Server an den Client zurückgegebenen Daten, einschließlich Statuscode, Antwortheader, Antworttext und andere Informationen. 3. Python-Netzwerkprogrammierbibliothek Socket-Bibliothek: Eine der Standardbibliotheken von Python. Sie stellt zugrunde liegende Netzwerkkommunikationsfunktionen bereit, einschließlich Vorgängen wie dem Erstellen von Sockets, dem Binden von Adressen und dem Abhören von Ports. http.server-Bibliothek: Eine der Standardbibliotheken von Python, die eine grundlegende H

See all articles