Acabei de atualizar de 14.10 para 16.04 e não sei como configurar o PHP 7 no apache. Modifiquei o arquivo php7.0.conf para descomentar as últimas linhas, reiniciei o apache2 e não alterei.
Preciso alterar a configuração do apache2 para permitir o php?
O PHP funciona a partir da linha de comando, por isso tenho certeza de que o php está instalado corretamente.
Além disso, recebo um erro no phpadmin dizendo que o mbstring está ausente.
php
comando) é ortogonal às outras SAPIs do PHP (apache2, FPM, CGI, ...); portanto, o PHP de linha de comando do trabalho não diz nada sobre o trabalho do PHP no servidor HTTP.sudo apt-get install php-mbstring
(quem teria pensado, certo?)Respostas:
Assim como antes, você precisa instalar o PHP para Apache.
No Guia do servidor :
Esse comando instalará o PHP e o módulo PHP do Apache 2. Simplesmente configure o Apache como antes (
sudo a2enmod php7.0
acho que ligará o módulo).Seu
mbstring
problema é semelhante - você precisa instalar essa extensão:Para outros módulos ausentes, haverá coisas semelhantes a serem instaladas também.
fonte
sudo a2enmod php7.0
(ou pelo menos eu determinei desativando eConsidering conflict php5 for php7.0: Enabling module php7.0.
sudo a2enmod php
não vai funcionar, eu tentei. No entantosudo a2enmod php7.0
vai funcionar.Para configurar o php7 para rodar com o servidor, você precisa fazer algumas configurações:
1. Certifique-se de remover quaisquer vestígios de
php/php5
Abra um terminal Ctrl+ Alt+ Te:
A saída deve não conter qualquer
php5.conf
ouphp5.load
, mas se isso acontecer, faça o seguinte:Agora adicione o
php7.0.conf
e emphp7.0.load
vez disso:A saída de
ls -la php*
deve ficar assim:Depois de lidar com os módulos, chegamos agora ao
/etc/apache2/conf-enabled
diretório Remova todos os vestígios de php / php5 aqui também,sudo rm <name>
Então, se necessário, faça:
A saída de
ls -la php*
deve ficar assim:2. Reiniciando o Apache2
Antes de reiniciar o Apache, limpe o Apache
error.log
e reinicie:Agora, verifique a
error.log
emissãocat /var/log/apache2/error.log | less
(canalizar menos permite que você role facilmente para cima e para baixo,q
sai da saída).Se o seu
error.log
contém muitos (e eu literalmente quero dizer um monte ) de alguns,MIBS not found
faça o seguinte:Marque novamente a opção
error.log
agora deve conter apenas 3 linhas:Seu Apache com php7.0 agora deve estar configurado corretamente.
fonte
a2enmod
e ema2dismod
vez de mexer manualmente com os links emmods-available
/mods-enabled
(da mesma formaa2enconf
ea2disconf
paraconf-{available,enabled}
).a2enmod
ea2dismod
lembre-se do estado dos módulos no registro interno do pacote apache2, portanto, a criação / remoção manual de links pode danificar o sistema para futuras atualizações, pois os scripts de atualização examinam o estado desse banco de dados interno.Eu também tenho esse problema.
Isso me ajudou a excluir todo o PHP e reinstalar o php7.
Tudo o que era necessário era:
O php7 será excluído depois apenas para reinstalar:
fonte
sudo apt-get purge php*
também removerá o seu phpMyAdmin, se você tiver um.Eu sou o meu caso, não só o php não estava funcionando, mas phpmyadmin também fiz passo a passo assim
E então para:
Na última linha eu adiciono
Include /etc/phpmyadmin/apache.conf
Que fazem um acordo com todos os problemas
fonte
A solução que encontrei para esse problema foi a configuração padrão do PHP.INI para short_open_tag. Por padrão, isso está definido como 'Desligado'. Meu código PHP começou com
ao invés de
Se ativado, o short_open_tag (alterando 'Off' para 'On' no meu php.ini) e redefina o servidor apache (
sudo service apache2 restart
) e o PHP retornará vivo.fonte
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
fonte
Eu também poderia executar scripts php com sucesso a partir da linha de comando no Ubuntu 16.04, mas não em qualquer navegador. Na tentativa de resolver o problema, limpei minhas cópias existentes do php7.0 e do apache2. Posteriormente, reinstalei ambos a partir da linha de comando, incluindo a biblioteca php do apache2. A frustração se seguiu quando tentei executar o "a2enmod php7.0", que me informou que o módulo php7.0 não existia, apesar do fato de que mais uma vez eu era capaz de executar scripts php na linha de comando. O instinto começou. Ao abrir o Synaptic, descobri que quando instalei a biblioteca apache2 php a partir da linha de comando, instalei apenas libapache2-mod-php7.0 e também me esqueci de instalar o "wrapper", libapache2-mod- php, sem o qual o primeiro não funcionará.
fonte