O Debian apache2 não está executando scripts php, em vez disso está mostrando a fonte

1

Eu sei que este é provavelmente o tema mais discutido online, eu pesquisei aqui e stackexchange e tentei várias respostas, mas nenhuma delas parece estar funcionando para mim, por isso estou postando isso.

Eu tenho um Debian com a pilha LAMP e recentemente tive que atualizar o php de 5.4 para 5.6 (mais recente).

Comecei removendo a versão antiga assim:

a2dismod php5

sudo apt-get --remove --purge libapache2-mod-php5filter libapache2-mod-php5 libphp5-embed php-pear php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql

Adicionei o seguinte ao meu arquivo /etc/apt/sources.list :

deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php56-zts all
deb-src http://packages.dotdeb.org wheezy-php56-zts all

E executei os seguintes comandos:

wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libapache2-mod-php5 php-pear php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql php5-mysqlnd

Então eu habilitei o php5 com este comando a2enmod php5 e reiniciei o apache2 com este comando service apache2 restart

Quando eu vou para um dos scripts PHP no site, estou vendo a fonte, o script não está sendo executado.

No servidor, posso ver que o PHP5.6 está instalado corretamente:

root@server:~# php -v
PHP 5.6.18-1~dotdeb+zts+7.1 (cli) (built: Feb  6 2016 23:39:42) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

E eu posso ver que o módulo PHP5 está habilitado no apache2:

Aquiestáoconteúdodessesarquivos:

Eu até tentei reiniciar o servidor inteiro, isso não ajuda. Eu verifiquei /var/log/apache2/error.log e não vejo nenhum erro. Tudo que vejo é:

[Tue Feb 09 12:52:09 2016] [notice] Digest: generating secret for digest authentication ...
[Tue Feb 09 12:52:09 2016] [notice] Digest: done
[Tue Feb 09 12:52:09 2016] [notice] Apache/2.2.22 (Debian) mod_ssl/2.2.22 OpenSSL/1.0.1e configured -- resuming normal operations

Eu uso o VirtualHost no apache2 para servir o site. Esta é a minha entrada:

<VirtualHost *:80>

    ServerAdmin [email protected]
    ServerName www.mydomain.com
    DocumentRoot /home/setup/public_html

    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    <Directory /home/setup/public_html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

Alguma ideia do porque o script PHP não está sendo executado? O que eu perdi? Qualquer ajuda seria muito apreciada.

    
por Latheesan 09.02.2016 / 14:05

1 resposta

0

Ok, eu consertei.

Eu removi o seguinte:

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

De /etc/apache2/mods-enabled/php5.conf e reiniciado, o apache e o PHP agora funcionam.

    
por 09.02.2016 / 15:01