14
votes

I'm hoping that this will be a useful page for getting started running php code as well as solve the current problem I'm having some very simple code as follows:

<html>
<head>
<title> Practice</title></head>
<body>
This is HTML
<?php
echo "This is PHP";
?>
</body>
<html>

This is uploaded on an ec2 website which has apache running. The code isn't interpreted, and when you view source of the page it shows the php code.

You can see the page.

Any ideas? The php code is so basic that I think it might have to do with the apache configuration. Please let me know any additional information you need and I'll provide it, hopefully tell me how to get it to.

6
do you have php installed on that server? And if you create a page phpinfo.php with phpinfo() in it, do you get any results?Wouter J
ec2-184-72-69-40.compute-1.amazonaws.com/phpinfo.php <-- requested page. No, I do not.Mark

6 Answers

10
votes

Are you sure you have php installed? If it is you need to make sure that apache is associating .php files with the php handler. Look for an entry similar to the following in /etc/apache/apache.conf

 LoadModule php5_module modules/libphp5.so

and

 application/x-httpd-php        php php5

upon changing the file you will need to restart apache via sudo service httpd restart

11
votes

You can install libapache2-mod-php5 using

apt-get install libapache2-mod-php5

Worked for me.

3
votes

You probably need addHandler or addType in either the .htaccess file or Apache config itself: e.g. AddType application/x-httpd-php .php

3
votes

If you are using php7 make sure you installed this module.

sudo apt-get install libapache2-mod-php7.0

Replace 7.0 with the version of php you are using.

To find version of php, use

php -v 
1
votes

In my case I had the /var/www/ folder with wrong permissions.

I had to run:

sudo chown -R www-data /var/www/
sudo chgrp -R www-data /var/www/
0
votes

If you have the contents of the web page in user directory like:

/home/*/public_html

Then you need to enable executing those, it's disabled by default:

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

Just comment out this piece of code located in the file:

/etc/apache2/mods-enabled/php7.3.conf

Adjust the path and file name to your system, PHP version, etc.