2011-06-05 23 views
33

En mi nuevo sistema Ubuntu, he logrado conseguir Apache 2 en funcionamiento para desarrollar mis aplicaciones Web ZendFramework ...apache2 en Ubuntu - la descarga de archivos php

Tengo mi available-sites configuración de funcionar correctamente porque puedo solicitar localhost y servidores el correcto index.html desde mi directorio especificado.

Problema: si solicito index.php, firefox intenta descargar el archivo en lugar de ejecutar el script.

¿Alguna idea de por qué esto sucedería?

He agregado lo siguiente a httpd.conf pero no ha ayudado.

AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml 

AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml 
+0

¿Usted ha reiniciado después de cambiar Apache httpd.conf? Aparte de eso, no veo un problema. (Mi servidor solo tiene 'AddType', pero no estoy seguro de que importe). – andrewdski

+0

Gracias por su respuesta. Resulta que solo había instalado el servidor Apache, y no PHP. Supuse que estaba empaquetado y que lo instalarían juntos ... Ya sabes lo que dicen sobre la suposición ... ¡Ja! – shane

+0

Si alguien tiene el problema, y ​​el 'libapache2-mod-php5' ya está instalado. Entonces, si está experimentando el problema en una de las carpetas de 'public-html', ejecute'/etc/apache2/mods-available/php5.conf' - tiene una sección que desactiva PHP para las carpetas de inicio (por alguna razón) ' php_admin_value engine Off ...' –

Respuesta

66

si firefox descarga sus archivos php significa que su servidor no tiene instalados php o apache php module.

¿ha instalado apache php module? si no, entonces instalarlo, escribiendo esto en un terminal:

sudo apt-get install libapache2-mod-php5 

y en caso afirmativo, ¿tiene su index.php encuentra en /var/www/?

Asegúrese de habilitar PHP con el comando

sudo a2enmod php5 
+1

¡Ja! ¡Gracias! (Funcionó) ¿Esto significa que necesito instalar mysql por separado también? alguna posibilidad de ayudarme con el comando? Muchas gracias – shane

+0

@shane 'sudo apt-get install mysql-server' – damianb

+0

Su a gent, gracias. Actualmente estoy en migración desde el desarrollo en Windows. ¿La instalación de mysql también me dará phpmyadmin? – shane

3

Necesita habilitar la extensión PHP. Haga esto con el comando sudo a2enmod php.

2

Vamos a suponer que ha instalado PHP ya e instalado el módulo de PHP para Apache aquí ...

¿Ha reiniciado Apache? Si no: sudo service apache2 restart

Asegúrese de que su archivo httpd.conf también se está ejecutando. Si es necesario, reinícielo después de realizar una edición que causaría un error al cargar. Si no se reinicia, no ejecuta el archivo .conf.

Si el problema continúa, cierre el explorador, vuélvalo a abrir y borre la caché. Puede ser el navegador que almacena en caché la respuesta de la página.

12

Si está utilizando userdir (http: // localhost/~ user/phpinfo.php) tendrá que:

vi /etc/apache2/mods-enabled/php5.conf 

Cambio

<IfModule mod_userdir.c> 
    <Directory /home/*/public_html> 
     php_admin_value engine Off 
    </Directory> 
</IfModule> 

a comentar el php_admin_value

<IfModule mod_userdir.c> 
    <Directory /home/*/public_html> 
     #php_admin_value engine Off 
    </Directory> 
</IfModule> 

continuación

service apache2 restart 
+0

I Estoy perplejo de que esta es una solución. Específicamente, parece problemático mencionar 'php_admin_value engine' sin importar si está configurado en' On' o 'Off'. ¿Por qué sería ese el caso? ¿Se ignora una directiva vacía? – valid

4

Para mí, la solución fue crear el siguiendo 2 enlaces simbólicos:

ln -s /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php5.conf 
ln -s /etc/apache2/mods-available/php5.load /etc/apache2/mods-enabled/php5.load 

y reiniciar Apache:

/etc/init.d/apache2 restart 

Golpear el archivo http://my_server/test.php, que tiene contenidos:

<?php 
    phpinfo(); 
?> 

llegó justo, y el navegador no intentaron descargar el php archivo. No tuvo que reiniciar el navegador tampoco.

+3

puede crear los enlaces simbólicos con 'a2enmod php5' –

+1

+1 Exactamente mi problema, gracias por la solución – infinity

0

Instalé php 7.0 y obtengo el dailog box. He instalado el módulo apache php para la versión 7.0 y solucionó mi problema.

sudo apt-get install libapache2-mod-php7.0

Cuestiones relacionadas