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 esas últimas líneas, reinicié apache2 y no cambié.
¿Necesito cambiar la configuración de apache2 para permitir php?
PHP funciona desde la línea de comandos, así que estoy seguro de que el php está instalado correctamente.
Además, recibo un error en phpadmin que dice que falta el mbstring.
php
comando) es ortogonal a los otros SAPI de PHP (apache2, FPM, CGI, ...), por lo que la línea de comando de trabajo PHP no dice nada acerca de trabajar PHP en el servidor HTTP.sudo apt-get install php-mbstring
(¿quién habría pensado, ¿verdad?)Respuestas:
Al igual que antes, debe instalar PHP para Apache.
De la Guía del servidor :
Ese comando instalará PHP y el módulo PHP Apache 2. Simplemente configure Apache como antes (
sudo a2enmod php7.0
creo que activará el módulo).Su
mbstring
problema es similar: necesita instalar esa extensión:Para otros módulos faltantes, también habrá que instalar cosas similares.
fuente
sudo a2enmod php7.0
(o eso determiné al deshabilitar y volver a habilitar en mi computadora). Interesante, recibí este mensaje:Considering conflict php5 for php7.0: Enabling module php7.0.
sudo a2enmod php
no funcionará, lo probé. Sin embargosudo a2enmod php7.0
funcionará.Para configurar php7 para que se ejecute con su servidor, necesita hacer alguna configuración:
1. Asegúrese de eliminar cualquier rastro de
php/php5
Abra una terminal Ctrl+ Alt+ Ty:
La salida no debe contener ninguno
php5.conf
ophp5.load
, pero si lo hace, haga lo siguiente:Ahora agregue el
php7.0.conf
y en suphp7.0.load
lugar:La salida de
ls -la php*
debería verse así:Después de ocuparnos de los módulos, ahora llegamos al
/etc/apache2/conf-enabled
directorio. Elimine cualquier rastro de php / php5 aquí también porsudo rm <name>
Entonces, si es necesario, haga lo siguiente:
La salida de
ls -la php*
debería verse así:2. Reiniciar Apache2
Antes de reiniciar Apache, asegúrese de limpiar Apache y
error.log
luego reinicie:Ahora verifique
error.log
emitiendocat /var/log/apache2/error.log | less
(canalizar menos le permite desplazarse fácilmente hacia arriba y hacia abajo,q
sale de la salida).Si su
error.log
contiene muchos (y quiero decir literalmente un montón de) algunosMIBS not found
hacen lo siguiente:La comprobación de nuevo
error.log
ahora solo debe contener 3 líneas:Su Apache con php7.0 ahora debería estar configurado correctamente.
fuente
a2enmod
y ena2dismod
lugar de jugar manualmente con enlaces enmods-available
/mods-enabled
(de manera similara2enconf
ya2disconf
paraconf-{available,enabled}
).a2enmod
ya2dismod
recordar el estado de los módulos en el registro de paquete apache2 interna, por lo que hacer / eliminación de los enlaces manualmente podrían hacer que su sistema roto para futuras actualizaciones como los scripts de actualización examina el estado de esta base de datos interna.Tengo este problema también.
Me ayudó a eliminar todo PHP y reinstalar php7.
Todo lo que se necesitaba era:
php7 se eliminará, luego solo para reinstalar:
fuente
sudo apt-get purge php*
también eliminará su phpMyAdmin, si tiene uno.En mi caso, no solo el php no estaba funcionando, sino también phpmyadmin, lo hice paso a paso así
Y luego a:
En la última línea agrego
Include /etc/phpmyadmin/apache.conf
Eso hace un trato con todos los problemas
fuente
La solución que encontré para este problema fue la configuración predeterminada de PHP.INI para short_open_tag. Por defecto, esto está configurado en 'Off'. Mi código PHP comenzó con
en lugar de
Si se habilita short_open_tag (cambiando 'Off' a 'On' en mi php.ini) y restablece el servidor apache (
sudo service apache2 restart
) y PHP vuelve a aparecer vivo.fuente
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
fuente
Yo también podría ejecutar scripts php con éxito desde la línea de comandos en Ubuntu 16.04, pero no en ningún navegador. En un intento por resolver el problema, purgué mis copias existentes de php7.0 y apache2. Posteriormente reinstalé tanto desde la línea de comandos como desde la biblioteca php de apache2. La frustración siguió cuando intenté ejecutar "a2enmod php7.0", que me informó que el módulo php7.0 no existía a pesar de que una vez más pude ejecutar scripts php desde la línea de comandos. El instinto comenzó. Al abrir Synaptic, descubrí que cuando instalé la biblioteca apache2 php desde la línea de comandos, instalé solo libapache2-mod-php7.0, y me había olvidado de instalar también el "envoltorio", libapache2-mod- php, sin el cual el primero no funcionará.
fuente