Web Server For Mac

Macintosh

Built-in web server

Warning

Running a Mac server isn't for everyone, but it can be useful. Jason Snell breaks down the reasons why you should consider it, and why you should skip it. Apache Server Info - Apple includes an install of Apache Web Server on all Mac OS X clients. This link will teach you more about the power that is Apache. DynDNS.com - Helping those with a Dynamic (changing) IP address still be seen from the web, this service will give you a free hostname to use instead of your ip. JBoss web server is certified, and entirely integrated collection of elements for Java web applications is hosting. It mixes the world’s most organized web server (for example, ApacheHTTP Server), load balancers (for example, modcluster and modjk), the most efficient servlet engine (for example, ApacheTomcat), plus the Tomcat Native collection, with the greatest support in middleware. Apache HTTP Server. This is the most popular web server in the world developed by the Apache.

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.

As of PHP 5.4.0, the CLISAPI 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 FALSE, then the requested resource is returned as-is. Otherwise the script's output is returned to the browser.

Standard MIME types are returned for files with extensions: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, and .zip.

Changelog: Supported MIME Types (file extensions)
VersionDescription
5.5.12 .xml, .xsl, and .xsd
5.5.7 .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx, and .zip
5.5.5 .pdf
5.4.11 .ogg, .ogv, and .webm
5.4.4 .htm and .svg
Changelog
VersionDescription
7.4.0 You can configure the built-in webserver 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. This is not supported on Windows.
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

The terminal will show:

Web Server For Mac

After URI requests for http://localhost:8000/ and http://localhost:8000/myscript.html the terminal will show something similar to:

Web Server For Mac

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

The terminal will show:

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
// router.php
if (preg_match('/.(?:png jpg jpeg gif)$/', $_SERVER['REQUEST_URI'])) {
return
false; // serve the requested resource as-is.
} else {
echo
'<p>Welcome to PHP</p>';
}
?>

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
// router.php
if (php_sapi_name() 'cli-server') {
/* route static assets and return false */
}
/* go on with normal index.php operations */
?>

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:

Apache Web Server For Mac

<?php
// router.php
$path = pathinfo($_SERVER['SCRIPT_FILENAME']);
if (
$path['extension'] 'el') {
header('Content-Type: text/x-script.elisp');
readfile($_SERVER['SCRIPT_FILENAME']);
}
else {
return
FALSE;
}
?>

Mac Os X Web Server

Example #6 Accessing the CLI Web Server From Remote Machines

You can make the web server accessible on port 8000 to any interface with:

Warning

The built-in Web Server should not be used on a public network.