I recently downloaded OpenSUSE OS version 11.4 from the site to use it as a server..In order to do that I downloaded the server edition that has Apache/2.2.17 and PHP5 downloaded by default.....Ok till now it is fine

Now I started the Apache successfully and put a test.php file in the documentRoot directory. test.php contain only <?php phpinfo() ?>

Then using my browser I typed http://localhost/test.php and here was the problem the browser didn't display what phpinfo() should display, instead it asked me whether I want to open or save test.php...which is driving me crazy.... I googled a lot but no solution

THis is /etc/apache2/conf.d/php5.conf

<IfModule mod_php5.c>
    AddHandler application/x-httpd-php .php4
    AddHandler application/x-httpd-php .php5
    AddHandler application/x-httpd-php .php
    AddHandler application/x-httpd-php-source .php4s
    AddHandler application/x-httpd-php-source .php5s
    AddHandler application/x-httpd-php-source .phps
    DirectoryIndex index.php4
    DirectoryIndex index.php5
    DirectoryIndex index.php
  • 1
    Is there a particular need for the excessive quantity of question marks? – Lightness Races in Orbit Jul 4 '11 at 17:57
  • Can you post your httpd.conf ? The part for PHP only not all of it. – Michael B. Jul 4 '11 at 17:58
  • ok just a minute – Ala ABUDEEB Jul 4 '11 at 18:00

One thing worth trying, is verifying that your project is not in a user dir (public_html folder), or that the configuration in php5.conf (/etc/apache2/mods-available/php5.conf for some configuration) allows such interpretation.

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
    SetHandler application/x-httpd-php
    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
    # 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_value engine Off
    #    </Directory>

You can check what's inside

nano /etc/apache2/mods-available/php5.conf

also you can check

sudo dpkg -S php5 | grep libapache2-mod-php5 

which shows whether you have php5.conf in mods-enabled

I've got there:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php

Note that this regexp matches .php5, but for some reason could not match .php.


apt-get remove libapache2-mod-php5 ; apt-get purge libapache2-mod-php5; apt-get install libapache2-mod-php5

then open

nano /etc/apache2/mods-enabled/php5.conf 
  1. and replace

    <FilesMatch ".+\.ph(p[345]?|t|tml)$">


    <FilesMatch ".+\.ph((p[345]?)|t|tml)$">
  2. or simply execute

    sudo perl -pe 's|\Q.ph(p[345]?\E|.ph((p[345]?)| if $. <= 3'  /etc/apache2/mods-available/php5.conf

and restart apache

sudo service apache2 restart

Take a look at PHP documentation and make sure the configuration is right


This should be in your httpd.conf

LoadModule php5_module modules/libphp5.so

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
  • I can't find libphp5.so on my whole system, but i found mod_php5.so – Ala ABUDEEB Jul 4 '11 at 18:12
  • @Ala ADUDEEB try with this. Make sure your file php5.conf is included in your default conf – Michael B. Jul 4 '11 at 18:23
  • php5.conf is in /etc/apache2/conf.d which is used by default by apache so this is not the problem – Ala ABUDEEB Jul 4 '11 at 18:34
  • @AlaABUDEEB are you sure using the right php5.conf file? try to find where it's. $ find / -iname php5.conf – Oğuz Çelikdemir Oct 28 '12 at 17:04

Probably you have no apache2-mod_php installed. Try to zypper install apache2-mod_php5 or whatever package name zypper search apache | grep php shows you.


sounds like mod_php5 is disabled somehow

try (as root)

a2enmod php5
service apache2 restart

Then try to access the pages again

  • I did, but it writes "php5 already exists" – Ala ABUDEEB Jul 4 '11 at 18:23

apache modules in suse/opensuse are enabled from /etc/sysconfig/apache2, include php module where needed, run SuSEconfig and restart apache2 service :)



I came up with the following solution to the same problem. Change the following directive in /etc/httpd/conf/httpd.conf. I still need to understand why this changed the behavior of Apache, but it worked for me.

Change this:

<Directory />
  Options FollowSymLinks
  AllowOverride None

To this:

<Directory />
  Options None
  AllowOverride None

I added php5 to a line thta starts with APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir reqtimeout authn_core authz_core" at /etc/sysconfig/apache2.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.