O Apache não executa arquivos PHP, mas me faz baixá-los

15

Portanto, configurei meu servidor usando este tutorial e, quando o arquivo test.php funciona sem problemas, quando digito o endereço usando o IP do meu servidor como

http://1.2.3.4/test.php

No entanto, se eu usar virtualhosts, o navegador oferece apenas o download do arquivo, em vez de executá-lo. Então, é isso:

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

oferece baixar o arquivo em vez de executar o script.

O código que eu uso no /etc/apache2/apache2.conf para hosts virtuais é o seguinte:

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

Embora eu tenha que dizer que, quando reinicio o servidor apache2, recebo uma mensagem de aviso:

[....] 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
O físico quântico
fonte
Você está ciente de que esse é um servidor LAMP?
Braiam
@Braiam, para ser sincero, estou perdido entre o LAMP e o Apache ... não sei a diferença ... no entanto, você tem uma resposta para a minha pergunta?
A Quantum Físico
onde encontro esse diretório? Isto não funciona para mim. por favor ajude? como recarrego o terminal vhost vie?
Deus mundo
@ Godworld Que diretório? Arquivos de configuração do Apache estão em /etc/apache2/.
A Quantum físico
11
Possível duplicado de script PHP não execução no servidor Apache
Florian Diesch

Respostas:

19

Eu consegui trabalhar com a linha:

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

sudo service apache2 restart
Alastair Mason
fonte
Obrigado por nomear esta biblioteca. Eu sabia que tinha que instalar uma biblioteca para corrigir isso, mas não sabia o nome.
Rahul Prasad
O libapache2-mod-php7.0pacote não existe no repositório principal do Ubuntu. Não até 16.04 ser lançado. Você deve usar em seu libapache2-mod-php5lugar.
21416 Dan
4

Às vezes, coisas ainda piores podem acontecer .... Esqueci de instalar o php

Tebe
fonte
5
Eu dificilmente acho que isso possa ser chamado de resposta real, mas acho que sim.
Seth
3
Quando você tem um número razoável de máquinas e é razoavelmente tarde da noite, essa é definitivamente uma resposta válida.
Avio
11
Uma resposta válida, de fato. Eu tive um problema ao manipular php5, php5-cli, php5-fpm e php-whatnot. O Apache estava faltando o pacote certo .
Famosasfamkin
0

Encontrei a solução aqui . Acontece que eu tive que habilitar alguns módulos ...


Retirado desta resposta de estouro de pilha pelo user1075581 :

Isso finalmente me colocou no caminho certo:

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

Aqui está a solução:

Na <Directory>seção, incluí estas linhas:

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

Ou, uma cópia / pasta editada da solução no meu 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>
O físico quântico
fonte
0

Estou pesquisando isso há muito tempo e encontrei uma solução que funciona no meu caso. Eu coloquei meu arquivo ( processorder.php5) no diretório /var/wwwem uma instalação padrão do ubuntu. Eu pensei que este era o lugar que o php parecia. Mas para html (ou arquivos php que provavelmente são considerados a mesma coisa) ele procurou /var/www/html, ou seja, o htmlsubdiretório /var/www.

Quando movi meu arquivo para um diretório, ele funcionou. Suspeito porque acho que não vi isso documentado em nenhum lugar

Craig Smilovitz
fonte
0

problemas de permissão também podem levar a esse comportamento estranho

chmod -R u=rwX,go=rX my_publishing_directory

irá se livrar dos problemas de permissão (644 nos arquivos e 755 nos diretórios)

baobab33
fonte