I have a local LAMP server set up on my Ubuntu laptop for testing various PHP scripts.
Sometimes, when I do something wrong, instead of getting an error, the script I'm testing is offered for download. Why is that and how can it be fixed?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
The server does not recognize the script as something to execute locally, and as such it offers it as a file instead.
These lines should be present in your Apache config. Note that the path may need to be changed for the .so modules, depending on your configuration:
# -- if you're using PHP 5, uncomment this line to activate it #LoadModule php5_module libexec/libphp5.so # -- if you're using PHP 4, uncomment this line to activate it #LoadModule php4_module libexec/libphp4.so AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps
Follow up with a restart of the Apache service and php should load into Apache to run just fine.
Some reasons I have found that this happens:
One test I use is to make a file in the same directory (verify.php) that contains:
<?php phpinfo(); ?>
If that file executes in my browser, it the first 3 points are ok
Also note that if you have a .htaccess file in the same folder as your php script, it could be the reason for some execution problems.
For example, if you got a copy of the site files from another server, your htaccess file could have a line like:
AddHandler x-httpd-php5-3 .php
But in your actual server you may be running another version of PHP. So it would not excecute right.