Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am not much into linux. I am trying to setup a server through ssh. I installed apache php and mysql through this command.

sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server

but I think php is not enabled on the server.

when I run command I receive response as below

$ which apache2ctl
/usr/sbin/apache2ctl

but when i check $ which php i receive no response.

$ locate php5
/etc/apparmor.d/abstractions/php5
/usr/share/ubuntu-serverguide/html/C/php5.html

available apache2 modules alt text

aptitude package manager alt text

share|improve this question

migrated from stackoverflow.com Nov 23 '09 at 12:37

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

up vote 9 down vote accepted

On Debian (and thus Ubuntu), the Apache configuration files are stored under /etc/apache2. In that directory, there are 2 sub-directories for configuring modules: mods-available and mods-enabled. When you install an Apache module (ie: foo), it will put foo.load (and possibly foo.conf) into the /etc/apache2/mods-available directory. When you enable an Apache module using a2enmod, it will create a symbolic link in /etc/apache2/mods-enabled for each of the matching files from /etc/apache2/mods-available.

Thus for an Ubuntu server with PHP5 enabled, you should see something like this:

$ cd /etc/apache2
$ ls -l mods-*/*php*
-rw-r--r-- 1 root root 133 2008-02-27 15:49 mods-available/php5.conf
-rw-r--r-- 1 root root  59 2008-02-27 15:49 mods-available/php5.load
lrwxrwxrwx 1 root root  27 2009-02-05 07:30 mods-enabled/php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root  27 2009-02-05 07:30 mods-enabled/php5.load -> ../mods-available/php5.load

If the php5 configuration files aren't shown in the mods-enabled directory, enable them as follows:

$ sudo a2enmod php5
$ sudo /etc/init.d/apache2 restart

Once you've done that, in order to test that PHP5 is configured, create /var/www/test.php as follows:

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/test.php
$ sudo chown www-data:www-data /var/www/test.php
$ sudo chmod 755 /var/www/test.php

Once that's done, you should be able to browse to /test.php on that server and see the PHP configuration data.

share|improve this answer
    
This method fix me. Thank you very much.!!! – Wilf Jan 7 at 17:46
    
I am getting permission denied for this line $ sudo echo "<?php phpinfo(); ?>" > /var/www/test.php. – 151291 Feb 23 at 4:49
    
@151291, try echo "<?php phpinfo(); ?>" | sudo tee /var/www/test.php instead. – Craig Trader Feb 24 at 12:55

Use the phpinfo() function. Create a .php file that Apache will serve up and include the following:

<?php

phpinfo();

?>

When you navigate to the .php file, and php is installed, it should give you a whole lot of information about the php version you have installed.

share|improve this answer

I believe the php binary is part of a separate package called php5-cli which you don't seem to have installed.

share|improve this answer
2  
This is correct, but just to clarify: php5-cli is the commandline version, which you don't need if you're using it with apache. – Brendan Long Nov 22 '09 at 10:19

In aptitude do /^php5$ and see if you have that package. If not, install it - that's the core package.

share|improve this answer
    
any command line that covers all php5 with cgi and so.? – Shishant Nov 22 '09 at 9:56
    
Do you have the php5 package installed? – meder omuraliev Nov 22 '09 at 10:05
    
yes it has [i] in front of them – Shishant Nov 22 '09 at 10:08
1  
Did you restart apache? – meder omuraliev Nov 22 '09 at 10:10
    
What does which php5 return? Did you try making a .php page with phpinfo();? Did you enable your site with a2ensite? – meder omuraliev Nov 22 '09 at 10:11

a2dismod disable apache modules and when executed without arguments displays the list of enabled modules:

Your choices are: alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi deflate dir env mime mod-evasive mod-security negotiation php5 rewrite scgi setenvif ssl status unique_id

Which module(s) do you want to disable (wildcards ok)?

if php5 is in the list it's installed and enabled. (CTRL-C to discard the command)

share|improve this answer

Request the following URI from your server:

/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42

You should get the PHP logo. If you do, PHP is working

share|improve this answer
    
No i am not getting any response – Shishant Nov 22 '09 at 10:22
    
not working on my ubuntu with php enabled.. – RC Nov 22 '09 at 10:23
    
That URI only works if the root page is interpreted by PHP; if the URI isn't processed by PHP, nothing will happen. – Craig Trader Nov 22 '09 at 11:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .