Script PHP não executando no servidor Apache

54

Acabei de reinstalar o Apache e o PHP5, mas quando visito a raiz do meu documento, ele baixa um arquivo de "download". E quando eu tento documentroot /index.php, ele apenas baixa o arquivo PHP.

Eu tenho o PHP instalado, mas o Apache parece não querer executá-lo.
As pessoas sugeriram a adição de uma linha 'Load Module' ao meu, httpd.confmas eu não tenho esse arquivo.

user2919631
fonte

Respostas:

103

Digitando:

sudo apt-get install apache2 php5 libapache2-mod-php5

instalará tudo o que você precisa e iniciará o servidor apache com suporte para PHP.

Para verificar se o módulo php está carregado, digite:

a2query -m php5

se não estiver ativado, carregue com:

sudo a2enmod php5

e reinicie o apache:

sudo service apache2 restart

Atualização para php7.x (testada no Ubuntu 16.04, 16.10, 18.04, 18.10 )

Graças aos comentários, atualizo a resposta para php7.x.

Instalar:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

Verificar:

a2query -m php7.x

Carga:

sudo a2enmod php7.x

Reinicie o apache:

sudo service apache2 restart
girardengo
fonte
Seria melhor usar a2enmoddo que copiar o arquivo manualmente entre mods-available e mods-enabled. a2enmodcria um link simbólico e, portanto, você terá apenas uma cópia da configuração.
jkt123
@ jkt123 você está certo. obrigado pelo conselho, eu edito minha resposta.
Girardengo
No meu caso, ele diz "ERRO: o módulo php5 não existe!" ele está instalado
Marian Klühspies
3
para o Ubuntu 16.04 com php7 eu executar esses comandos em ordem apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
marlo
Para o Ubuntu 14.04: # a2query -m php7.0 php7.0 (habilitado pelo administrador do site) Ainda código php não está executando
Ashish Karpe
19

Outra causa comum é que as tags curtas do php <?não são ativadas pela configuração padrão do php.ini; portanto, após uma atualização ou reinstalação, essa configuração pode ser desativada e o código php pode depender dela. Tente substituir <?por <?php.

( Crédito )

tufelkinder
fonte
13

O Ubuntu 16.04 mudou para o PHP 7. Este comando único fará o trabalho para você:

sudo apt-get install apache2 php libapache2-mod-php

Aqui libapache2-mod-phpestá um meta-pacote que instala o libapache2-mod-php7.

daltonfury42
fonte
2

Abrir php.inicom nanono terminal:

sudo nano /etc/php/php5.6/apache2/php.ini

Então mude:

short_open_tag = Off

para

short_open_tag = On

Em seguida, salve e reinicie o apache2:

sudo systemctl restart apache2
Satrio Prasojo
fonte
11
Ou corrigir os scripts PHP :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Nicolas Raoul
1

Encontrei o mesmo problema, mas meu problema específico era único. Eu estava executando em um diretório de usuário (usando mod_userdir) - o que significa que você acessa minha página da web com http://host.name.com/~username/example.php

Isso está desativado por padrão no php * .conf no meu diretório ativado por mods. Eu tive que modificá-lo para comentar:

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

Isso foi uma dor de descobrir ..

Bem, duvido que alguém tenha ESTE problema em particular, mas imaginei que o adicionaria porque era desconcertante para mim e, talvez, alguém esteja fazendo a mesma coisa. Acho que ninguém usa mais ~ / usuário, exceto eu.

Você precisa reiniciar o apache depois disso, é claro.

Jiminy Idiot
fonte
0

Meu caso foi um pouco diferente. Eu atualizei do Ubuntu 19.04 para 19.10. Durante a atualização, instalou o php 7.3 (onde o php 7.2 já estava instalado). Com 2 versões instaladas, a2query -m php7.3 return Nenhum módulo corresponde ao php7.3 .

A solução que encontrei foi do how-to-install-php-7-3-on-ubuntu .

Para definir o PHP 7.0 como padrão, execute

update-alternatives --set php /usr/bin/php7.0

Para definir o PHP 7.2 como padrão, execute

update-alternatives --set php /usr/bin/php7.2

Para definir o PHP 7.3 como padrão, execute

update-alternatives --set php /usr/bin/php7.3

Antes de podermos configurar o Apache para usar o PHP 7.3, precisamos desativar a versão antiga do PHP 7.0 digitando

a2dismod php7.2

Agora ative a versão do PHP 7.3 recém-instalada com o seguinte comando:

a2enmod php7.3

Reinicie o servidor da web Apache para que as alterações entrem em vigor:

sudo systemctl restart apache2
Adeel Raza Azeemi
fonte