Why does my website show <?php ... ?> instead of my content?

Linode Staff

When I browse my website, instead of my page I see something that looks like:


What is happening here and how do I fix it?

1 Reply

When this occurs, you are looking at the actual script or program that is supposed to make the page you want instead of the actual page.

There are lots of ways this can happen. In general these problems fall in to a few categories:

  • php is not installed

  • php is not set to run at startup (it wasn't enabled)

  • php is not currently running (somebody stoppped it)

  • Your webserver is not configured properly

  • Your php file is missing it's .php extension or had a hidden .txt extension appended to it when editing it on a Windows system

How to ask for help

To make things more confusing this can happen with more than one kind of web server, so to detangle what is happening for YOU, we will first need to figure out which software is involved and where it is put on your system so you can ask the appropriate questions when seeking help:

There are too many ways to run php to cover them all here, but to get the answers you need you will want to be able to provide specifics.

We want to find out:

  • How we are running or want to run php

  • Which web server we are using

  • Which Linux distribution we are using so we can learn how to install things if needed

To find out some of this info, we will need to login to your Linode first so we can run commands on the server. You can use the following guide to get to your console:

  • https://www.linode.com/docs/networking/using-the-linode-shell-lish/

This post assumes that you are either logged in as root or as a user that can run commands as root with the sudo command.

Which Web Server are We Using?

The two most popular web servers that could be running on your Linode are Apache and nginx.

To find out which web server is serving your page, you can run (replace example.com with your own website):

curl -I example.com

Server: nginx

If you do not have curl installed on your Linode, you can use sudo netstat -tpln (The flags mean, t=show tcp, p=show process information, l=only show listening processes, n=disable hostname lookup) and look for which programs are associated with ports :80 and :443.

Determining your Linux Distribution

Another piece of useful information is knowing which Linux distribution you are running. You can usually find this out by running:

sudo cat /etc/*release

Ways of running php

Here are some of the more more common ways php is run.

  • mod_php (Apache)

This is probably the most common way php is run. It is built into the very common Apache web server

  • CGI (Apache)

  • FastCGI (nginx or Apache)

  • PHP-FPM (nginx or Apache)

Further Reading

  • https://secure.php.net/manual/en/install.php


Please enter an answer

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct