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

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
视觉化网页开发工具