Prerequisites

Before we begin, ensure you have the following:

  • PHP installed on your machine (version 5.4 or higher).
  • Basic knowledge of command-line operations.
  • A text editor or IDE for writing PHP code.

Starting the Built-in Web Server

To start the built-in web server, navigate to your project directory in the terminal and run the following command:

php -S localhost:8000

This command tells PHP to start a web server on localhost at port 8000. You can replace 8000 with any available port number if needed.

Directory Structure

For demonstration purposes, let's create a simple directory structure for our PHP project:

/my-php-app
    ├── index.php
    └── about.php

Creating Sample PHP Files

  1. index.php

Create an index.php file in the my-php-app directory with the following content:

<?php
echo "<h1>Welcome to My PHP App</h1>";
echo "<p>This is the home page.</p>";
echo "<a href='about.php'>Go to About Page</a>";
?>
  1. about.php

Next, create an about.php file with the following content:

<?php
echo "<h1>About Us</h1>";
echo "<p>This page provides information about our application.</p>";
echo "<a href='index.php'>Back to Home</a>";
?>

Accessing the Application

With the built-in server running, open your web browser and navigate to http://localhost:8000. You should see the content of index.php. Clicking the link will take you to the about.php page.

Advantages of Using PHP's Built-in Web Server

FeatureDescription
SimplicityEasy to set up and requires no additional configuration.
PortabilityIdeal for local development and testing without installing a full server.
LightweightConsumes fewer resources compared to traditional web servers.
IntegratedComes bundled with PHP, ensuring compatibility.

Configuring the Built-in Server

You can customize the built-in server's behavior using various options. For example, you can specify a document root or enable error reporting:

php -S localhost:8000 -t public

In this command, -t public sets the document root to the public directory. This is useful for projects with a specific structure.

Handling URL Routing

PHP's built-in server does not support URL rewriting out of the box. However, you can create a simple router using PHP. Here's a basic example:

  1. router.php

Create a router.php file in the my-php-app directory with the following content:

<?php
$request = $_SERVER['REQUEST_URI'];

switch ($request) {
    case '/':
        include 'index.php';
        break;
    case '/about':
        include 'about.php';
        break;
    default:
        http_response_code(404);
        echo "<h1>404 Not Found</h1>";
        break;
}
?>
  1. Starting the Server with the Router

Start the server with the router:

php -S localhost:8000 router.php

Now, you can access the home page at http://localhost:8000/ and the about page at http://localhost:8000/about.

Best Practices for Using PHP's Built-in Server

  1. Use for Development Only: The built-in server is not recommended for production use due to performance and security concerns.
  2. Error Reporting: Enable error reporting during development to catch issues early:
   error_reporting(E_ALL);
   ini_set('display_errors', 1);
  1. Environment Configuration: Use environment variables to manage different configurations for development and production.

Conclusion

PHP's built-in web server is a powerful tool for local development, offering simplicity and ease of use. By following the steps outlined in this tutorial, you can quickly set up a local environment for testing your PHP applications. Remember to adhere to best practices to ensure a smooth development experience.

Learn more with useful resources