LAMP stack's PHP not working (Ubuntu 13.10 / Apache 2.4.6)
Solution 1
Just had the same problem. You have to use <?PHP
instead of <?
or change the following config:
/etc/php5/apache2/php.ini
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = On
Solution 2
Check if you have these lines in your httpd.conf:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Also make sure your php module is loaded:
LoadModule php5_module modules/mod_php55.so
After that, restart apache and clear your browser's cache before retrying.
Related videos on Youtube
Comments
-
xiaose almost 2 years
Having problems with PHP on my LAMP stack: PHP scripts aren't being parsed at all. I setup Ubuntu 13.10 on clear machine... And I see now there only clear HTML from page but PHP tags are just like text
Actually, what I have:
$ /usr/sbin/apache2ctl status | grep Version
Server Version: Apache/2.4.6 (Ubuntu) PHP/5.5.3-1ubuntu2.1
$ tail -n 1 /var/log/apache2/error.log
[Sat Dec 14 19:33:16.307184 2013] [core:notice] [pid 15457] AH00094: Command line: '/usr/sbin/apache2'
$ apache2ctl -S
VirtualHost configuration: *:80 is a NameVirtualHost default server videosurgeon.ll (/etc/apache2/sites-enabled/vs.conf:1) port 80 namevhost videosurgeon.ll (/etc/apache2/sites-enabled/vs.conf:1) port 80 namevhost videosurgeon.ll (/etc/apache2/sites-enabled/vs.conf:1) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www" Main ErrorLog: "/var/log/apache2/error.log" Mutex default: dir="/var/lock/apache2" mechanism=fcntl Mutex mpm-accept: using_defaults Mutex watchdog-callback: using_defaults Mutex rewrite-map: using_defaults PidFile: "/var/run/apache2/apache2.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="www-data" id=33 not_used Group: name="www-data" id=33 not_used
$ apache2ctl -M | grep php
php5_module (shared)
$ cat /work/VS/httpdocs/test.php
<? phpinfo(); ?>
$ cat /etc/apache2/sites-enabled/vs.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName videosurgeon.ll DirectoryIndex index.php index.html index.htm DocumentRoot /work/VS/httpdocs/ <Directory /work/VS/httpdocs/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit,alert, emerg. LogLevel notice CustomLog /var/log/apache2/access.log combined </virtualHost>
$ /usr/bin/php --version
PHP 5.5.3-1ubuntu2.1 (cli) (built: Dec 12 2013 04:22:11) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
UPD.1: it's mine apache2.conf : http://ge.tt/6Yd8Jj91/v/0
UPD.2: Today I умут tried to remove everything and just re-install LAMP. The result is exactly the same: PHP does not works.
sudo apt-get install lamp-server^
But also interesting that phpmyadmin works fine. I just install it as:
sudo apt-get install php5 php5-cgi phpmyadmin
It turns out that there (in phpmyadmin) are some settings that give it to use PHP...
-
Admin over 10 yearsAre you hure modphp is installed. You could conceivably have installed a non-apache version of php: try
apt-get install -y apache2-mod-php5 ; service apache2 restart
-
-
xiaose over 10 yearsthere is no httpd.conf at all
-
xiaose over 10 yearsthere is apache2.conf
-
UrbenLegend over 10 yearsApache does not use httpd.conf in Debian-based installs. They have a site-based configuration located in /etc/apache2/sites-enabled that allows you to use a2ensite and a2dissite to enable/disable configuration files for certain virtual hosts. They also have a central configuration file called apache2.conf. Either try putting what Sebas has listed in apache2.conf or in the relevant site configuration file in sites-enabled.