Apache no ejecuta archivos PHP, pero me hace descargarlos

15

Así que configuré mi servidor usando este tutorial, y cuando el archivo test.php funciona sin problemas cuando ingreso la dirección usando la IP de mi servidor como

http://1.2.3.4/test.php

Sin embargo, si uso virtualhosts, el navegador solo ofrece descargar el archivo en lugar de ejecutarlo. Así que esto:

http://blog.mydomain.com/test.php

ofrece descargar el archivo en lugar de ejecutar el script.

El código que uso en /etc/apache2/apache2.conf para hosts virtuales es el siguiente:

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

Aunque tengo que decir que cuando reinicio el servidor apache2 recibo un mensaje de advertencia:

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
El físico cuántico
fuente
¿Eres consciente de que es un servidor LAMP?
Braiam
@Braiam para ser honesto, estoy perdido entre LAMP y Apache ... No sé la diferencia ... sin embargo, ¿tienes una respuesta a mi pregunta?
El físico cuántico
¿Dónde encuentro este directorio? no funciona para mi ¿por favor ayuda? ¿Cómo recargo el terminal vhost vie?
Dios mundo
@Godworld ¿Qué directorio? Los archivos de configuración de Apache están en /etc/apache2/.
The Quantum Physicist
1
Posible duplicado del script PHP que no se ejecuta en el servidor Apache
Florian Diesch

Respuestas:

19

Lo tengo para trabajar con la línea:

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

sudo service apache2 restart
Alastair Mason
fuente
Gracias por nombrar esta biblioteca. Sabía que tenía que instalar una biblioteca para solucionar esto, pero no sabía el nombre.
Rahul Prasad
El libapache2-mod-php7.0paquete no existe en el repositorio principal de Ubuntu. No hasta que se lance 16.04. Deberías usar libapache2-mod-php5en su lugar.
Dan
4

A veces pueden suceder cosas aún peores ... Olvidé instalar php

Tebe
fuente
55
No creo que esto pueda llamarse una respuesta real, pero supongo que sí.
Seth
3
Cuando tiene un número razonable de máquinas y es razonablemente tarde en la noche, esta es definitivamente una respuesta válida.
Avio
1
Una respuesta válida de hecho. Tuve un problema haciendo malabares con php5, php5-cli, php5-fpm y php-whatnot. A Apache le faltaba el paquete correcto .
famousgarkin
0

Encontré la solución aquí . Resulta que tuve que habilitar algunos módulos ...


Tomado de esta respuesta de desbordamiento de pila por el usuario1075581 :

Esto finalmente me puso en el camino correcto:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

Aquí está la solución:

En la <Directory>sección, incluí estas líneas:

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

O una copia / pegado redactada de la solución en mi servidor:

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>
El físico cuántico
fuente
0

Estuve buscando esto durante mucho tiempo y acabo de encontrar una solución que funciona en mi caso. Había puesto mi archivo ( processorder.php5) en el directorio /var/wwwen una instalación estándar de ubuntu. Pensé que este era el lugar que parecía php. Pero para html (o archivos php que probablemente se consideran lo mismo) buscó /var/www/html, es decir, el htmlsubdirectorio de /var/www.

Cuando moví mi archivo a un directorio, funcionó. Sospecho porque no creo haber visto esto documentado en ningún lado

Craig Smilovitz
fuente
0

problemas de permisos también pueden conducir a este comportamiento extraño

chmod -R u=rwX,go=rX my_publishing_directory

eliminará los problemas de permisos (644 en archivos y 755 en directorios)

baobab33
fuente