GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing www.php.net — PHP: Built-in web server - Manual Built-in web serverWarning
This web server is designed to aid application development. It may also be useful for testing purposes or for application demonstrations that are run in controlled environments. It is not intended to be a full-featured web server. It should not be used on a public network. The CLI SAPI provides a built-in web server. The web server runs only one single-threaded process, so PHP applications will stall if a request is blocked. URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root. If a URI request does not specify a file, then either index.php or index.html in the given directory are returned. If neither file exists, the lookup for index.php and index.html will be continued in the parent directory and so on until one is found or the document root has been reached. If an index.php or index.html is found, it is returned and $_SERVER['PATH_INFO'] is set to the trailing part of the URI. Otherwise a 404 response code is returned.
If a PHP file is given on the command line when the web server is
started it is treated as a "router" script. The script is run at
the start of each HTTP request. If this script returns
Standard MIME types are returned for files with extensions:
As of PHP 7.4.0, the built-in webserver can be configured to fork multiple workers in order to test code that requires multiple concurrent requests to the built-in webserver. Set the PHP_CLI_SERVER_WORKERS environment variable to the number of desired workers before starting the server.
Warning
This experimental feature is not intended for production usage. Generally, the built-in Web Server is not intended for production usage. Example #1 Starting the web server $ cd ~/public_html $ php -S localhost:8000 The terminal will show: 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 After URI requests for http://localhost:8000/ and http://localhost:8000/myscript.html the terminal will show something similar to: 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 Note that prior to PHP 7.4.0, symlinked statical resources have not been accessible on Windows, unless the router script would handle these. Example #2 Starting with a specific document root directory $ cd ~/public_html $ php -S localhost:8000 -t foo/ The terminal will show: 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 Using a Router Script In this example, requests for images will display them, but requests for HTML files will display "Welcome to PHP": $ php -S localhost:8000 router.php Example #4 Checking for CLI Web Server Use To reuse a framework router script during development with the CLI web server and later also with a production web server: $ php -S localhost:8000 router.php Example #5 Handling Unsupported File Types If you need to serve a static resource whose MIME type is not handled by the CLI web server, use: $ php -S localhost:8000 router.php Example #6 Accessing the CLI Web Server From Remote Machines You can make the web server accessible on port 8000 to any interface with: $ php -S 0.0.0.0:8000 Warning
The built-in Web Server should not be used on a public network.
+add a note
User Contributed Notes 9 notes
jonathan at reinink dot ca ¶
12 years ago
Mark Simon ¶
10 years ago
oan at vizrt dot com ¶
9 years ago
tamas at bartatamas dot hu ¶
12 years ago
Ivan Ferrer ¶
13 years ago
matthes at leuffen dot de ¶
10 years ago
deep at deepshah dot me ¶
6 years ago
aroian at naiora dot fr ¶
1 month ago
sony at sony-ak dot com ¶ 6 years ago
|
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |