Parece que Apache2 no se inicia

Parece que Apache2 no se inicia

Lo siento, pero soy nuevo en el mundo de Sysadmin y realmente nuevo en Linux (gran novato), así que les pido ayuda porque no tengo idea de qué está causando esto (como ya dije, soy realmente nuevo en Linux). Accidentalmente eliminé (por suerte...) cosas con taskel mientras intentaba instalar la GUI y luego reinstalé algunas de ellas (al menos las que podía recordar). Lo que tengo ahora es que Apache2 no se inicia:

no puede comenzar

y el error de sintaxis en la línea 146 de /etc/apache2/apache2.conf parece

este

El tercer error en /etc/apache2/mods-enabled/php7.1.load parece

este De hecho, no existe un archivo como "libphp7.1" en /usr/lib/apache2/modules/ solo "libphp8.1" (perdón por las capturas de pantalla nuevas aquí). ¿Alguien puede decirme qué debo hacer ahora? ¿Cambiar el archivo de configuración de 7.1 a 8.1 o simplemente instalar 7.1?

Respuesta1

Lo más probable es que tu versión de php haya cambiado en tu sistema (aplicable para Debian/Ubuntu y derivados, en otras distros algunas rutas pueden variar), pero no en tu configuración de Apache, ejecuta:

php -v 

Verifique qué versión se está cargando ejecutando:

ls -l /etc/apache2/mods-enabled/php*

entonces, si su versión difiere de la que carga Apache, suponiendo que el resultado sea

lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.conf -> ../mods-available/php7.4.conf
lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.load -> ../mods-available/php7.4.load

y su nueva versión ahora es 8.1, verifique qué módulos están disponibles para ejecutar:

ls -l /etc/apache2/mods-available/

-rw-r--r-- 1 root root  855 jun 13 08:43 php7.4.conf
-rw-r--r-- 1 root root  102 jun 13 08:43 php7.4.load
-rw-r--r-- 1 root root  855 ago 15 07:24 php8.1.conf
-rw-r--r-- 1 root root  101 ago 15 07:24 php8.1.load

en la lista aparecen los antiguos (que no funcionan) y los nuevos php8.1, ejecute lo siguiente para crear nuevos enlaces simbólicos a esos módulos de nueva versión

sudo ln -s /etc/apache2/mods-available/php8.1.conf  /etc/apache2/mods-enabled/php8.1.conf
sudo ln -s /etc/apache2/mods-available/php8.1.load  /etc/apache2/mods-enabled/php8.1.load

eliminar enlaces simbólicos antiguos

sudo rm /etc/apache2/mods-enabled/php7.4.*

y reinicia Apache

sudo service apache2 restart

Respuesta2

libphp-7.1.sofalta en su sistema o está en un lugar no configurado de manera que Apache pueda encontrarlo. Probablemente se eliminó durante una actualización de algo, pero es difícil saberlo.

Estás descubriendo que PHP es un desastre de mantener en un servidor Linux. Especialmente en algo como Ubuntu LTS (que puede ser o no tu distribución, esta es sólo mi perspectiva) donde obtienes la estabilidad de LTS, pero luego te encuentras atrapado en una situación que te obliga a quedarte meses o años detrás de las nuevas versiones de otros. software que depende de la funcionalidad más nueva del "paquete X" para funcionar correctamente. A continuación se muestra cómo lo manejo en Ubuntu. Si ejecuta Redhat, Slack, SuSE o Yggdrasil Linux, esto no será de mucha ayuda.

No se puede simplemente instalar una versión más nueva de PHP sin, en algún momento, encontrarse con problemas de dependencia con el software del sistema operativo. A veces, estas dependencias pueden chocar con la funcionalidad de MySQL/MariaDB, lo que al final puede ser un problema tipo píldora roja súper enredado. Como una persona comentó anteriormente, a veces la versión de PHP incluida con el sistema operativo estándar está tan desactualizada que no es razonable usarla (que definitivamente es el caso con cualquier versión inferior a PHP 8.0, y ciertamente incompleta con 7.4, a partir del 29/3). /22). También es confuso para los nuevos administradores porque"¿Por qué su sistema operativo tendría software disponible que está tan desactualizado?", ¿bien? Ubuntu aparentemente soporta problemas de seguridad en las versiones LTS, pero se necesita bastante investigación paraverificarun CVE determinado en realidad está parcheado en los paquetes LTS. A veces habrá una solución disponible y ya implementada en el repositorio tarball/git de un paquete determinado, pero el parche/backport todavía está esperando que un mantenedor de Ubuntu lo incluya en el paquete deb para que pueda instalarlo. Salir de banda e instalar software sin un repositorio es traicionero desde una perspectiva de seguridad porque entonces dependes de un proceso manual para recordar actualizar ese paquete OOB y nunca funciona. Los administradores se van, la gente se olvida.

Afortunadamente, existe este mantenedor de Debian, Ondřej Surý (más bien un mago, en realidad) de la República Checa que se encargó de publicar un repositorio que incluye todos los fundamentos para actualizar PHP en el sistema Debian/Ubuntu. Puedeconfiguraresta maravillosarepositorioy actualizar PHP y aún tenerlo mantenible. Como beneficio adicional, puedes actualizarNginXyapachea través de su repositorio también, ya que algunas de las funciones PHP más nuevas requieren cambios en esos paquetes. Probablemente pueda encontrar algunas instrucciones mejores en uno de los enlaces anteriores, pero hay varios sitios que puedenguiarte a través de elloAdemás, junto con cualquier cambio necesario en la pila de Nginx o Apache.

Una advertencia: antes de instalar el repositorio de Ondřej Surý, obtenga una lista detodolos paquetes PHP/NginX/Apache actualmente instalados (por ejemplo: dpkg -l | egrep -i '(apache|nginx|php)'(o algún encantamiento similar de apt aptitude apt-get). Los nombres de estos paquetes SÍ cambian a veces, y las dependencias a veces traen una mezcla de versiones de los paquetes PHP. Por ejemplo, había algo eso pasó con elcadenambpaquete hace un par de versiones de PHP. requirió algunosintervención manual

Por supuesto, todo esto a veces se puede evitar con una actualización del sistema operativo (por ejemplo: "Crazy Camel" -> "Damaged Dingo") pero incluso entonces, es posible que a la última versión de LTS le falten funciones de vanguardia que algunas pilas de terceros necesitan y usted Todavía estamos en el mismo barco.

De cualquier manera, ¡buena suerte y no olvides tomar una instantánea de tu VM antes de hacer cualquier cosa!

información relacionada