I've installed an apache server on my raspberry pi and everything seems to be running fine unless I try to serve php.
/var/www/html/index.html serves fine /var/www/html/foo/index/index.html serves fines
But if I add index.php, let's say :
<?php echo "hello world"; ?>
I get 403 -Forbbiden by accessing /var/www/html but I can still access /var/www/html/foo/index.html (DirectoryIndex set to .php .html .htm).
And if I run
$php index.php : hello world
So, it does can serves .html, it can run .php but it cannot serve .php.
How can I fix this ? I found many solutions but none worked for me.
Note : I access the sites from the LAN. Server OS (uname -a) : Linux raspbian-AH 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux
As stated in the comments, we could easily deduce module is not loaded but I here it is :
pi@raspbian-AH:/etc/apache2/mods-available $ cat php5.conf <FilesMatch ".+\.ph(p?|t|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch ".+\.phps$"> SetHandler application/x-httpd-php-source # Deny access to raw php sources by default # To re-enable it's recommended to enable access to the files # only in specific virtual host or directory Require all denied </FilesMatch> # Deny access to files without filename (e.g. '.php') <FilesMatch "^\.ph(p?|t|tml|ps)$"> Require all denied </FilesMatch> # 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>
and the php5.load:
pi@raspbian-AH:/etc/apache2/mods-available $ cat php5.load LoadModule php5_module /usr/lib/apache2/modules/libphp5.so