Actualice a 16.04. php7 no funciona en el navegador

Actualice a 16.04. php7 no funciona en el navegador

Acabo de actualizar de 14.10 a 16.04 y no estoy seguro de cómo configurar PHP 7 en Apache. Modifiqué el archivo php7.0.conf para descomentar las últimas líneas, reinicié Apache2 y no hubo cambios.

¿Necesito cambiar la configuración de Apache2 para permitir php?

PHP funciona desde la línea de comando, por lo que estoy seguro de que PHP está instalado correctamente.

Además, aparece un error en phpadmin que dice que falta el mbstring.

Respuesta1

Al igual que antes, debes instalar PHP para Apache.

Desde elGuía del servidor:

sudo apt install php libapache2-mod-php

Ese comando instalará PHP y el módulo PHP de Apache 2. Simplemente configure Apache como antes ( sudo a2enmod php7.0creo que activará el módulo).


Tu mbstringproblema es similar: necesitas instalar esa extensión:

sudo apt install php7.0-mbstring

Para otros módulos faltantes, también habrá que instalar cosas similares.

Respuesta2

Para configurar php7 para que se ejecute con su servidor, necesita realizar alguna configuración:

1. Asegúrese de eliminar cualquier rastro dephp/php5

Abra una terminal Ctrl+ Alt+ Ty:

cd /etc/apache2/mods-enabled
ls -la

La salida debenocontiene cualquiera php5.confo php5.load, pero si es así, haga lo siguiente:

# this is the proper way of disabling modules
sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
sudo rm php5.load
sudo rm php5.conf

Ahora agregue php7.0.confy php7.0.loaden su lugar:

# this is the proper way of enabling modules
sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
sudo ln -s php7.0.conf ../mods-available/php7.0.conf
sudo ln -s php7.0.load ../mods-available/php7.0.load

La salida de ls -la php*debería verse así:

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

Después de tratar con los módulos llegamos al /etc/apache2/conf-enableddirectorio. Elimine cualquier rastro de php/php5 aquí tambiénsudo rm <name>

Luego, si es necesario, haga:

# the proper way of enabling configs
sudo a2enconf php7.0-cgi
sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

La salida de ls -la php*debería verse así:

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0-fpm.conf

2. Reiniciar Apache2

Antes de reiniciar Apache, asegúrese de limpiar Apache error.logy luego reinicie:

sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

Ahora verifique error.logmediante emisión cat /var/log/apache2/error.log | less(la tubería a través de menos le permite desplazarse fácilmente hacia arriba y hacia abajo, qsale de la salida).

Si error.logcontiene muchos (y literalmente me refiero a unmontónde) algunos MIBS not foundhacen lo siguiente:

sudo apt install libsnmp-dev
sudo net-snmp-config --snmpconfpath
sudo apt-get install snmp snmp-mibs-downloader
sudo su
> /var/log/apache2/error.log
exit
sudo service apache2 restart

La verificación nuevamente error.logahora solo debería contener 3 líneas:

[Sat Apr 23 01:39:07.504005 2016] [mpm_prefork:notice] [pid 1647] AH00169: caught SIGTERM, shutting down
[Sat Apr 23 01:39:08.685774 2016] [mpm_prefork:notice] [pid 9590] AH00163: Apache/2.4.18 (Ubuntu) mod_perl/2.0.9 Perl/v5.22.1 configured -- resuming normal operations
[Sat Apr 23 01:39:08.685938 2016] [core:notice] [pid 9590] AH00094: Command line: '/usr/sbin/apache2'

Su Apache con php7.0 ahora debería estar configurado correctamente.

Respuesta3

Yo también tengo este problema.

Me ayudó a eliminar todo PHP y reinstalar php7.

Todo lo que se necesitaba era:

sudo apt-get purge php*

Se eliminará php7, luego solo hay que reinstalarlo:

sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi  php7.0 libapache2-mod-php7.0

Respuesta4

La solución que encontré para este problema fue la configuración predeterminada de PHP.INI para short_open_tag. De forma predeterminada, esto está configurado en "Desactivado". Mi código PHP comenzó con

   <?

en lugar de

   <?php

Si habilitó short_open_tag (cambiando 'Desactivado' a 'Activado' en mi php.ini) y restableció el servidor Apache ( sudo service apache2 restart) y PHP volvió a funcionar.

información relacionada