zoukankan      html  css  js  c++  java
  • php CLI SAPI 内置Web Server

    PHP 5.4.0起, CLI SAPI 提供了一个内置的Web服务器。

    这个内置的Web服务器主要用于本地开发使用,不可用于线上产品环境。

    URI请求会被发送到PHP所在的的工作目录(Working Directory)进行处理,除非你使用了-t参数来自定义不同的目录。

    如果请求未指定执行哪个PHP文件,则默认执行目录内的index.php 或者 index.html。如果这两个文件都不存在,服务器会返回404错误。

    当你在命令行启动这个Web Server时,如果指定了一个PHP文件,则这个文件会作为一个“路由”脚本,意味着每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器。

    Example #1 启动Web服务器

    $ cd ~/public_html
    $ php -S localhost:8000

    终端窗口会显示:

    PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
    Listening on localhost:8000
    Document root is /home/me/public_html
    Press Ctrl-C to quit

    接着访问http://localhost:8000/和http://localhost:8000/myscript.html,窗口会显示:

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

    Example #2 启动时指定根目录

    $ cd ~/public_html
    $ php -S localhost:8000 -t foo/

    终端窗口显示:

    PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
    Listening on localhost:8000
    Document root is /home/me/public_html/foo
    Press Ctrl-C to quit

    Example #3 使用路由(Router)脚本

    请求图片直接显示图片,请求HTML则显示“Welcome to PHP”

    <?php
    // router.php
    if (preg_match('/.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"]))
        return false;    // 直接返回请求的文件
    else { 
        echo "<p>Welcome to PHP</p>";
    }
    ?>
    $ php -S localhost:8000 router.php

    执行之后终端显示:

    PHP 5.4.0 Development Server started at Thu Jul 21 10:53:19 2011
    Listening on localhost:8000
    Document root is /home/me/public_html
    Press Ctrl-C to quit.
    [Thu Jul 21 10:53:45 2011] ::1:55801 GET /mylogo.jpg - Request read
    [Thu Jul 21 10:53:52 2011] ::1:55803 GET /abc.html - Request read
    [Thu Jul 21 10:53:52 2011] ::1:55804 GET /favicon.ico - Request read
  • 相关阅读:
    安卓日志输出-logger
    RecyclerView的使用(3)之加入Header和Footer
    这些年我踩过的坑——Android
    精简点名IAP错误
    Android中BitmapFactory.Options详解
    在Android下通过ExifInterface类操作图片的Exif信息
    android 生成随机数
    JSON入门之二:org.json的基本使用方法
    Android中的各种访问权限Permission含义
    jar命令的用法详解
  • 原文地址:https://www.cnblogs.com/navysummer/p/10608365.html
Copyright © 2011-2022 走看看