I just set up a local web server on a new Mac running 10.6 (Apache2 / PHP / Mysql). Everything seems to be working fine except when I navigate to SOME (not most) pages Apache downloads php files instead of executing them.
I thought this might have something to do with the time it takes php to execute the script so I increased my "max_execution_time" but it didn't help.
I wish I could give more details but the error logs don't output anything so I really have no idea why this is happening. One thing that might be of significance is that only pages that don't query the database seem to work every time.
UPDATE:
Just discovered something strange that might give more insite into the problem. If I type the following URLs:
localhost/index.php // the home page is served up correctly
localhost/index.php?page=1 // the home page is served up correctly
localhost/index.php?page=home // ERROR: index.php is downloaded !!!!!!!!!!
localhost/index.php?page=contact // the contact page is served up correctly
localhost/index.php?page=blog // ERROR: index.php is downloaded
localhost/index.php?page=10 // the blog page is served up correctly
Uncommenting the following line in /etc/apache2/httpd.conf fixed the problem for me:
LoadModule php5_module libexec/apache2/libphp5.so
You could try adding this to your conf or htaccess:
AddType application/x-httpd-php .php
I know that this was asked a long time ago, but I just encountered this problem so I thought I'd post what the cause was for me.
Make sure that you don't have...
AddHandler application/x-httpd-php5 .php
...in BOTH your .htaccess file and your httpd.conf file. Check your .htaccess file, comment it out, restart Apache, and try again. That is most likely your problem since Apache renders php for some sites but not others. It has to be at the directory level, which would point to a .htaccess file setting.
I stumbled upon this problem after upgrading php to 5.5 and reinstalling apache.
Finally,this fixed it, in case someone else needs it.
apt-get install libapache2-mod-php5
(here's the answer)
Related
I have a windows7 64bit, I tried to run php and my IE browser was asking me for to download the file instead of executing it. Someone told me to download apache, so i downoaded wamp2.5-32bit version, installed it well, and also chose Firefox as default for wamp. But still when I double click php files in www directory of wamp, firefox asks me to download it instead of running it.
I have tried adding these lines in httpd.conf but no change;
LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5apache2_4.dll"
#PHPIniDir c:/wamp/bin/php/php5.5.12
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType text/html .php
LoadModule php5_module modules/mod_php55.so
This wamp option also seems like a tag of war, I am going around editting notepad files and its now lots of hours gone. Is there another option?
Matt,
If you look through httpd.conf you will find all of those lines you say you have added already exist in there proper place already.
Assuming you have also done some other changes you have forgotten about or not mentioned I would suggest you Uninstall WAMPServer (using the standard windows uninstall mechanism )
Then manually delete c:\wamp as any files you have edited will not be removed by the uninstall.
Now reinstall WAMPServer.
Once you have a fresh install and WAMPServer's wampmanager icon is green enter this in your browser.
http://localhost
If you see the WAMPServer homepage then PHP is working, as this page is written in PHP.
Now you say you are double clicking a filename in the \wamp\www folder, by this I assume you mean you are using Explorer and double clicking a filename! DONT DO THAT That will just launch this file in the browser but will not run the file through Apache. That method is ok if you just have a HTML & Javascript page, but it will not compile and run a PHP script.
To get a PHP script to run you must run the page through Apache so it can spot the <?php tag. Apache then knows to pass the script through PHP so it can be interpreted and executed.
So to make this happen you enter the url into the browsers address bar like you would to launch the StackOverflow page like so :-
localhost/project1/text.php
Did you check the PHP-server is running? Apache can run, but PHP is another service.
Right click on the WAMP icon in you taskbar en check that. Good luck!
php is not working in my computer. I have installed Apache server and save the file with .php extension in htdocs but still its not working.
I have written these code:
<?php
echo "Hello World!";
?>
it shows nothing. I have opened .htaccess file and got,
# This folder does not require access over HTTP
# (the following directive denies access by default)
Order allow,deny
what can I do now.please help me.
Open the Apache server log and take a good look at it. That's what it's there for. It logs everything. Is in /logs in your Apache programs directory.
You either don't have php installed into Apache correctly (likely), don't have Apache set up correctly, or don't have PHP set up correctly.
You'll want to look at conf/httpd.conf for Apache configuration, and php.ini for php configuration.
Sort out Apache first. Try to serve a simple .htm or .html page. i.e. put a simple text file with .htm file extension, e.g. myfile.htm, in your DocumentRoot (see conf/httpd.conf) and see if you can browse to it.
You might want to set 'ServerName localhost', and then browse to localhost/myfile.htm
From the Apache log you will also be able to tell if php is loading correctly. If not comment out the list of extensions, e.g. extension=php_gd2.dll, and try it again. I've had it not load because some of the libraries were not present. If you get it to work with all commented out, then one way or another figure out which ones are causing the trouble and leave them out.
Important: You must shutdown Apache and restart it after any configuration changes. (Not re-boot, but rather the Apache server monitor widget.)
Also did you install 32 bit versions of both Apache and php? If you try to mix x64 with x32 it won't work. And as I recall there are specific recommendations about which versions to use with which at the php download site. Pay attention to the details there.
I recomend you to add the php module to apache
a.Running PHP 5 as an Apache Module
To configure Apache to load PHP as a module to parse your PHP scripts, use an ASCII text editor to open the Apache configuration file, "httpd.conf". If you use Apache 1.x, the file is found in "c:\Program Files\Apache Group\Apache\conf\". Apache 2.0.x users can find it in "C:\Program Files\Apache Group\Apache2\conf\" while Apache 2.2.x users can find it in "C:\Program Files\Apache Software Foundation\Apache2.2\conf\". Basically, it's in the "conf" folder of wherever you installed Apache.
Search for the section of the file that has a series of "LoadModule" statements. Statements prefixed by the hash "#" sign are regarded as having been commented out.
If you are using Apache 1.x, add the following line after all the LoadModule statements:
LoadModule php5_module "c:/php/php5apache.dll"
If you are using Apache 2.0.x, add the following line after all the LoadModule statements:
LoadModule php5_module "c:/php/php5apache2.dll"
If you are using Apache 2.2.x, add the following line instead:
LoadModule php5_module "c:/php/php5apache2_2.dll"
This steps can be found on this link
Thank you everybody who tried to give my answer and helped me. It was a surprising experience for me that how quick you answered my question!! It was my ignorance to follow your suggestions. I've solved the problem by installing xampp. Now php is running fine in my computer.I am new in PHP programming and I will ask your help in future also. So be helpful to me always. I will be grateful to you. Thanks again.
Kallol Das,
Bangladesh.
But however after changing the "httpd.conf" directory from
index.html -> index.php I got this:
http://i.imgur.com/L291njR.png
Then I tried using XAMPP and even after that I've gotten that screen.
Could someone tell me what I might be doing wrong?
Computer OS: Windows XP
Full Screen dump:
http://pastebin.com/Zbbxvxib
Your problem is (as suggested in the comments) Apache has no idea "how" to run php, so it is just giving you the raw php files. You need to install PHP if you haven't, otherwise, if you have installed php you need to configure apache to use it.
If PHP is NOT installed
Go ahead and google it, there are a ton of resources out there explaining how to do it.
A good thing to look for is the WAMP stack. Which stands for Windows, Apache, MySQL & PHP. There are many places showing you how to install each of these individual components.
If PHP is installed
The httpd.conf file needs to be modified to include PHP.
Add the following line after all of the LoadModule statements:
LoadModule php5_module "[PathToPHP]/php5apache2_2.dll"
Search for AddType, and add the following after the last AddType line:
AddType application/x-httpd-php .php
Add the PHP location to the end of the httpd.conf file. For example, at the end of the file, add the following:
PHPIniDir "[PathToPHP]"
I am a new guy in web programming who still learning new stuff.
I am creating a web form that consist of one INPUT. I connected the form in the HTML file to the php file. I am using a localhost MAMP that I recently installed on my MacBook.
The Problem : When I open the HTML file on a webpage and type something on the input box and hit submit, the browser ask me to download the php file rather processing it.
I don’t think the problem is related to mysql or apache since when I run the MAMP it give me green signs next to the apache and mysql.
Do anyone know how I can fix this problem and the let the php file open and transfer inputs to the database?
You'll want to make sure that Apache has been told that .php files should be treated as PHP scripts. That means one of the following:
LoadModule php5_module modules/libphp5.so # on windows, this'd be a .dll instead
AddHandler php5-script php
and/or
AddType application/x-httpd-php php
in your httpd.conf file.
open your file from virtual web-server, not filesystem.
you have to type something like
http://localhost/form.html
in your browser's address bar
Did you checked out http://www.mamp.info/en/documentation/faq.html#q8 ?
Maybe you didn't put your site into the folder "htdocs"?
PHP won't be parsed unless it is located in that folder or a subfolder.
That would explain the fact that your browser downloads the php file instead of getting the parsed php from apache.
This error is not only about php but general. The file that the browser suggets to down load is simply the script name, php or not.
I'm trying to setup an Apache/PHP/Postgresql server locally on my machine. I'm using Windows vista business 32bit. I tried to install everything manually (one thing at a time, apache, postgresql and php (all the latest stable releases)) and after I get everything up and running.
Whenever I try to run a script on my machine, I get a "What do you want to do with the *.php file?" dialog. The dialog is the browser's open/save dialog
I'm just trying to get the output of phpinfo() to make sure everything is up and running...
I already tried to mess around a bit with the Apache conf file, but since I don't know much about what I'm doing, I reinstalled everything again and the problem is still there. I kinda get the feeling it must have something to do with the PHP thingy isn't correctly installed.
When i try to get the output of phpinfo as in:
<pre><?php
phpinfo();
?></pre>
I get the browser's "Open/Save" dialog for the *.php file.
You should have something like this in your httpd.conf file:
LoadModule php5_module "c:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "c:/php"
Make sure that's in place, and don't forget to restart apache!
In Windows, the default location for your conf file is C:\Program Files\Apache Group\Apache2\conf\httpd.conf
You can also have a look at the official page of PHP in the install section.
There is a closer link if you are on Windows.
And you can also use some precompiled installer for this like XAMMP and install Postgres after all is set up and running with the web server and php.
are you on Windows?
I use Wamp server, which is an excellent way of getting Apache, MySQL and PHP installed and configured without any hassle on Windows.
If you want to use Postgres instead, provided that you've got it installed separately it will work fine. (one great thing you can do with Wamp is add and remove PHP extensions via a GUI pretty much on-the-fly, and pgsql is one of them).
Maybe somebody can help, but you'd be much better off if you'd provide some relevant details.
What sort of system are you using? Be specific.
What do you mean by "everything up and running"?
What are you doing when you "try to run a script"?
What installation procedures did you use? (If you were following them off a script or how-to, we at least need to know where to find the script or how-to.)
We don't automatically know these things. What seems obvious to you may not be clear to us, and what seems irrelevant to you may turn out to be crucial.
In httpd.conf, make sure the PHP module is being loaded and that that line isn't commented out. (Comments in httpd.conf starts with #.)
Also what OS are you running?
I had the same problem, You need to configure apache and add the php module...
e.g I compiled the php from source as well as the apache. After doing so I then copied the libphp5.so from php/lib dir in to the apache/modules dir. Than you have to add php in the http.conf
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
you can then restart apache....it's not the most elegant of solutions but it works.