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教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Présentation de l'audit de sécurité et de la gestion des journaux d'événements des serveurs Web construits sur CentOS Avec le développement d'Internet, l'audit de sécurité et la gestion des journaux d'événements des serveurs Web sont devenus de plus en plus importants. Après avoir configuré un serveur Web sur le système d'exploitation CentOS, nous devons prêter attention à la sécurité du serveur et protéger le serveur contre les attaques malveillantes. Cet article explique comment effectuer un audit de sécurité et la gestion des journaux d'événements, et fournit des exemples de code pertinents. Audit de sécurité L'audit de sécurité fait référence à une surveillance et une inspection complètes de l'état de sécurité du serveur pour découvrir rapidement les potentiels

Meilleures pratiques : Guide de réglage des performances pour la création de serveurs Web sur CentOS Résumé : Cet article vise à fournir quelques bonnes pratiques de réglage des performances aux utilisateurs créant des serveurs Web sur CentOS, dans le but d'améliorer les performances et la vitesse de réponse du serveur. Certains paramètres de réglage clés et méthodes d'optimisation couramment utilisées seront présentés, et quelques exemples de codes seront fournis pour aider les lecteurs à mieux comprendre et appliquer ces méthodes. 1. Désactivez les services inutiles lors de la création d'un serveur Web sur CentOS, certains services inutiles seront démarrés par défaut, ce qui occupera des ressources système.

Autorisations et stratégies de contrôle d'accès auxquelles vous devez prêter attention avant de créer un serveur Web sur CentOS Dans le processus de création d'un serveur Web, les autorisations et les stratégies de contrôle d'accès sont très importantes. La définition correcte des autorisations et des politiques de contrôle d'accès peut protéger la sécurité du serveur et empêcher les utilisateurs non autorisés d'accéder à des données sensibles ou de faire fonctionner le serveur de manière inappropriée. Cet article présentera les autorisations et les stratégies de contrôle d'accès auxquelles il faut prêter attention lors de la création d'un serveur Web sous le système CentOS, et fournira des exemples de code correspondants. Gestion des utilisateurs et des groupes Tout d'abord, nous devons créer un

Les cinq types de serveurs Web sont : 1. IIS, un serveur Web qui permet de publier des informations sur un intranet public ou sur Internet ; 2. Apache, un serveur Web open source d'Apache Software Foundation ; 3. WebSphere Application Server, une application Web ; serveur ; 4. Tomcat est un conteneur de logiciels d'application Web basé sur Java ; 5. Lighttpsd est un logiciel de serveur Web open source.

Tutoriel d'entrée de gamme : Un guide rapide pour créer un serveur Web sur CentOS Introduction : À l'ère d'Internet d'aujourd'hui, créer votre propre serveur Web est devenu un besoin pour de nombreuses personnes. Cet article vous expliquera comment créer un serveur Web sur le système d'exploitation CentOS et fournira des exemples de code pour aider les lecteurs à le mettre en œuvre rapidement. Étape 1 : Installer et configurer Apache Ouvrez le terminal et installez le serveur Apache via la commande suivante : sudoyuminstallhttpd Une fois l'installation terminée, démarrez Apac

Swoole est un framework de communication réseau open source hautes performances basé sur PHP. Il fournit la mise en œuvre d'un serveur et d'un client TCP/UDP, ainsi qu'une variété d'E/S asynchrones, de coroutines et d'autres fonctionnalités avancées. À mesure que Swoole devient de plus en plus populaire, de nombreuses personnes commencent à s'intéresser à l'utilisation de Swoole par les serveurs Web. Pourquoi les serveurs Web actuels (tels qu'Apache, Nginx, OpenLiteSpeed, etc.) n'utilisent-ils pas Swoole ? Explorons cette question.

Le langage Go est devenu un langage de développement populaire, notamment pour la programmation réseau. Lors de l'écriture d'un serveur Web dans Go, il existe de nombreuses bonnes pratiques pour garantir la sécurité, la maintenabilité et l'évolutivité du serveur. Voici quelques suggestions et pratiques qui peuvent vous aider à améliorer l'efficacité et la fiabilité de votre serveur Web Go. Utilisation de la bibliothèque standard Il existe de nombreux packages liés à la programmation réseau dans la bibliothèque standard du langage Go. Par exemple, le package net/http vous aide à écrire des serveurs HTTP et le package net vous aide à gérer les connexions réseau de bas niveau.

1. Introduction Nous diviserons le contenu de cet article dans les parties suivantes : 2. Concepts de base du serveur Web Serveur Web : un programme chargé de traiter la requête HTTP du client et de renvoyer une réponse. Requête HTTP : requête envoyée par le client (comme un navigateur) au serveur, comprenant la méthode de requête, l'URL, l'en-tête de la requête et d'autres informations. Réponse HTTP : données renvoyées par le serveur au client, y compris le code d'état, les en-têtes de réponse, le corps de la réponse et d'autres informations. 3. Bibliothèque de sockets de la bibliothèque de programmation réseau Python : l'une des bibliothèques standard de Python, elle fournit des fonctions de communication réseau sous-jacentes, y compris des opérations telles que la création de sockets, la liaison d'adresses et les ports d'écoute. Bibliothèque http.server : une des bibliothèques standard de Python, fournissant un
