As PHP version 5.5 is no longer supported by the community, we strongly recommend new apps use the PHP 7+ runtime.

Creating a Guestbook

This tutorial shows you how to implement a PHP application for App Engine—a simple guestbook that lets users post messages to a public message board.


  • Clone the tutorial project
  • Walk through the code samples to see how to integrate your application with Google accounts, handle web forms, and serve static files
  • Run, test, and deploy the project


There are no costs associated with running this tutorial. This application does not exceed the free quota.

Before you begin

  1. Create a new Cloud console project or retrieve the project ID of an existing project from the Google Cloud console:

    Go to the Projects page

    Tip: Retrieve a list of your existing project IDs with gcloud.

  2. Install and initialize the gcloud CLI:
    Download the gcloud CLI

Cloning the project from GitHub

  1. Clone the Guestbook application repository to your local machine:

    git clone
  2. Switch to the branch with the final version of the application:

    cd appengine-php-guestbook/
    git fetch
    git checkout phase3-staticfiles

The cloned project contains several branches. In this tutorial we will only cover the project in the branch named phase3-staticfiles.

Building and running locally

To build and run the sample locally:

  1. From the project appengine-php-guestbook in the branch phase3-staticfiles, invoke the following command, replacing /path/to/php-cgi with the appropriate value: ./ --php_executable_path=/path/to/php-cgi
  2. The development web server is now running. Navigate to http://localhost:8080

  3. The app serves a page inviting you to sign in. Try clicking the Sign in link, then sign in with any email address. The development server has only a very basic emulation of the Google Account sign-in process for testing purposes, so this accepts whatever email you supply, valid or not, and generates a fake user object based on that supplied value. This same code when deployed to production, requires a valid Google Account and email for the sign-in to work, and yields a valid user object.

  4. Stop the development server by pressing Control+C.

Understanding the code

To walk through the application code and see how it works, continue to the next page.