Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have to set up PHP on an existing web host. I have made a virtual host entry, but for some reason Apache is sending the PHP to the browser instead of parsing.. from googling around it looks like it's a problem with the mimetypes, but I'm not an Apache expert by any means, so if anyone could help it would be appreciated...

I have the following in my httpd.conf:

AddHandler php5-script php

DirectoryIndex index.html index.phtml index.php index.phps

AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

The PHP module is loaded into Apache:

/usr/sbin/apachectl -M

Loaded Modules:

core_module (static)

mpm_prefork_module (static)

http_module (static)

so_module (static)

auth_basic_module (shared)

auth_digest_module (shared)

authn_file_module (shared)

authn_alias_module (shared)

authn_anon_module (shared)

authn_dbm_module (shared)

authn_default_module (shared)

authz_host_module (shared)

authz_user_module (shared)

authz_owner_module (shared)

authz_groupfile_module (shared)

authz_dbm_module (shared)

authz_default_module (shared)

ldap_module (shared)

authnz_ldap_module (shared)

include_module (shared)

log_config_module (shared)

logio_module (shared)

env_module (shared)

ext_filter_module (shared)

mime_magic_module (shared)

expires_module (shared)

deflate_module (shared)

headers_module (shared)

usertrack_module (shared)

setenvif_module (shared)

mime_module (shared)

dav_module (shared)

status_module (shared)

autoindex_module (shared)

info_module (shared)

dav_fs_module (shared)

vhost_alias_module (shared)

negotiation_module (shared)

dir_module (shared)

actions_module (shared)

speling_module (shared)

userdir_module (shared)

alias_module (shared)

rewrite_module (shared)

proxy_module (shared)

proxy_balancer_module (shared)

proxy_ftp_module (shared)

proxy_http_module (shared)

proxy_connect_module (shared)

cache_module (shared)

suexec_module (shared)

disk_cache_module (shared)

file_cache_module (shared)

mem_cache_module (shared)

cgi_module (shared)

version_module (shared)

fcgid_module (shared)

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

ssl_module (shared)

And this is my virtual host entry:




UseCanonicalName Off

DocumentRoot /var/www/vhosts/

CustomLog /var/www/vhosts/ common

ErrorLog /var/www/vhosts/

DirectoryIndex index.php index.html

<IfModule sapi_apache2.c>

php_admin_flag engine on

php_admin_flag safe_mode on


<IfModule mod_php5.c>

php_admin_flag engine on

php_admin_flag safe_mode on


AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps


Please help, my head is so sore from banging it against the table and the wall!

Thanks for responding.. :)

i have added your suggestion

[warn] module php5_module is already loaded, skipping

Stopping httpd: [ OK ] Starting httpd: [Mon May 24 15:02:27 2010] [warn] module php5_module is already loaded, skipping[ OK ]

but the server is still sending a application/a-httpd-php file to the browser..

the url is and a local hosts file entry needs:

thanks :)

share|improve this question

migrated from May 24 '10 at 13:41

This question came from our site for professional and enthusiast programmers.

2 Answers 2

add the lines belove to your httpd.conf or apache2.conf

<IfModule mod_php5.c>
  AddType application/x-httpd-php .php .phtml .php3

& remove the addhandler line AddHandler php5-script php

then restart apache.

apache will understand php engine will be used for .php extensions by this line application/"x-httpd-php"

share|improve this answer
yup! Good answer. –  pbr Oct 14 '10 at 8:19

Did you make any changes to the Apache config file without restarting Apache?

# /etc/init.d/httpd restart

Also, try adding this line (although the PHP module seems to be loaded):

LoadModule php5_module modules/

You might have to replace modules/ with an absolute path to the PHP module.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.