Estoy intentando actualizar Discourse pero está fallando en este comando
I, [2024-10-01T23:08:46.462452 #1] INFO -- : > apt-get install -y php7.4 php7.4-curl php7.4-fpm php7.4-mbstring
E: El paquete 'php7.4' no tiene un candidato para la instalación
E: No se puede localizar el paquete php7.4-curl
E: No se pudo encontrar ningún paquete por glob 'php7.4-curl'
E: No se pudo encontrar ningún paquete por regex 'php7.4-curl'
E: El paquete 'php7.4-fpm' no tiene un candidato para la instalación
E: No se puede localizar el paquete php7.4-mbstring
E: No se pudo encontrar ningún paquete por glob 'php7.4-mbstring'
E: No se pudo encontrar ningún paquete por regex 'php7.4-mbstring'
I, [2024-10-01T23:08:47.335246 #1] INFO -- : Leyendo listas de paquetes...
Construyendo árbol de dependencias...
Leyendo la información de estado...
El paquete php7.4 no está disponible, pero es referenciado por otro paquete.
Esto puede significar que el paquete falta, ha sido obsoleto, o
solo está disponible desde otra fuente
El paquete php7.4-fpm no está disponible, pero es referenciado por otro paquete.
Esto puede significar que el paquete falta, ha sido obsoleto, o
solo está disponible desde otra fuente
FAILED
--------------------
Pups::ExecError: apt-get install -y php7.4 php7.4-curl php7.4-fpm php7.4-mbstring falló con el retorno #<Process::Status: pid 2912 exit 100>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in spawn'
exec falló con los parámetros "apt-get install -y php7.4 php7.4-curl php7.4-fpm php7.4-mbstring"
falló el arranque con el código de salida 100
** FALLÓ EL ARRANQUE ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
d87ce61f0dbfc527ede7d3c09e222eff42934608174066401b2317d05193786b
root@htd-9-feb-22-live:/var/discourse#
Discourse está instalado usando NGINX interno.
Así que estoy intentando actualizar Discourse, que tiene 2 años, de la versión 3.2 a la 3.4, creo.
Así que ejecuté los siguientes comandos:
1465 cd /var/discourse
1466 git pull
1467 ./launcher bootstrap web_only && ./launcher destroy web_only && ./launcher start web_only
El archivo YAML se ve así, he eliminado la información personal:
# IMPORTANTE: ESTABLECE UNA CONTRASEÑA SECRETA en Postgres para el Usuario de Discourse
# TODO: cambia SOME_SECRET en esta plantilla
templates:
- "templates/web.template.yml"
#- "templates/web.ratelimited.template.yml"
- "shared/web-only/amp/web.amp.template.yml"
#- "shared/web_only/amp/templates/web.amp.template.yml"
## Descomenta estas dos líneas si deseas añadir Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para obtener detalles
expose:
- "80:80" # http
- "443:443" # https
# Usa la clave 'links' para enlazar contenedores, es decir, usar el flag --link de Docker.
links:
- link:
name: data
alias: data
# ¿Algún argumento adicional para Docker?
# docker_args:
params:
## ¿Qué revisión de Git debe usar este contenedor? (por defecto: tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
#EMBER_CLI_PROD_ASSETS: 1
# DISCOURSE_DEFAULT_LOCALE: en
# Límites de tasa globales que deshabilitan los límites de tasa para permitir que la corrección de SEO rastree y elimine el error de solicitud 429 demasiado frecuente
DISCOURSE_MAX_REQS_PER_IP_MODE: none
## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
## se establecerá automáticamente mediante bootstrap según las CPU detectadas, o puedes anularlo
UNICORN_WORKERS: 32
## TODO: El nombre de dominio al que responderá esta instancia de Discourse
#DISCOURSE_HOSTNAME: hidden
DISCOURSE_HOSTNAME:hidden
## Descomenta si deseas que el contenedor se inicie con el mismo
## nombre de host (-h option) que se especifica arriba (por defecto "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
## en el registro inicial, por ejemplo 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: "hidden"
## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
# DIRECCIÓN SMTP, nombre de usuario y contraseña son requeridos
# ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas.
DISCOURSE_SMTP_ADDRESS: hidden
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: hidden
DISCOURSE_SMTP_PASSWORD: "hidden"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, por defecto true)
DISCOURSE_SMTP_DOMAIN: hidden
DISCOURSE_NOTIFICATION_EMAIL: hidden
## Si añadiste la plantilla Lets Encrypt, descomenta abajo para obtener un certificado SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: hidden
## TODO: configurar la conectividad a las bases de datos
#ljlsdfj;sdfj;lkdsfj
DISCOURSE_DB_SOCKET: ""
#DISCOURSE_DB_USERNAME: hidden
DISCOURSE_DB_PASSWORD: hidden
DISCOURSE_DB_HOST: data
DISCOURSE_REDIS_HOST: data
## La dirección CDN http o https para esta instancia de Discourse (configurada para tirar)
## consulta https://meta.discourse.org/t/14857 para obtener detalles
## La clave de la API de geolocalización Maxmind para la búsqueda de direcciones IP
## consulta https://meta.discourse.org/t/-/137387/23 para obtener detalles
volumes:
- volume:
host: /var/discourse/shared/web-only
guest: /shared
- volume:
host: /var/discourse/shared/web-only/log/var-log
guest: /var/log
## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para obtener detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
#- git clone https://github.com/discourse/discourse-sitemap.git
#- git clone https://github.com/discourse/discourse-math.git # plugin personalizado para soporte de JAX matemático
#- git clone https://github.com/discourse/discourse-solved.git # plugin personalizado para preguntas y respuestas y elección de la mejor respuesta
#- git clone https://github.com/discourse/discourse-voting.git # plugin personalizado para votar solo en temas
#- git clone https://github.com/discourse/discourse-yearly-review.git # plugin personalizado para publicar automáticamente un tema anual de actividad del foro
#- git clone https://github.com/discourse/discourse-user-notes.git # plugin personalizado para permitir al personal añadir notas sobre un usuario
#- git clone https://github.com/paviliondev/discourse-question-answer.git # plugin personalizado no oficial para votación de estilo SO en publicaciones
#- git clone https://github.com/discourse/discourse-adplugin.git # plugin oficial personalizado para anuncios
#- git clone https://github.com/discourse/discourse-whos-online.git # plugin personalizado para ver quién está en línea
#- git clone https://github.com/paviliondev/discourse-topic-previews.git # plugin personalizado para mostrar vistas previas de temas de forma agradable
#- git clone https://github.com/paviliondev/discourse-ratings.git # plugin personalizado para permitir la calificación de temas por parte del usuario
#- git clone https://github.com/discourse/discourse-cakeday.git # plugin oficial para celebraciones de cumpleaños y fechas de unión
#- git clone https://github.com/discourse/discourse-saved-searches.git # plugin oficial para notificaciones de búsqueda guardada
#- git clone https://github.com/paviliondev/discourse-follow.git # plugin personalizado para permitir que los usuarios se sigan mutuamente
- git clone https://github.com/FaizanZahid/discourse-amp-htd-plugin.git # soporte AMP personalizado para HTD
#- git clone https://github.com/discourse/discourse-assign.git # personalizado para asignar temas al personal
#- git clone https://github.com/paviliondev/x-discourse-tlp-thumbnail.git # plugin personalizado para mostrar miniaturas de imágenes CDN
#- git clone https://github.com/discourse/discourse-prometheus.git # plugin personalizado para monitoreo de velocidad lenta
#- git clone https://github.com/discourse/discourse-push-notifications.git # plugin para notificaciones push
## Recuerda, esto es sintaxis YAML - solo puedes tener un bloque con el nombre worker_conn era 3000
run:
- exec: echo "Comienzo de comandos personalizados"
- replace:
filename: "/etc/nginx/nginx.conf"
from: "worker_connections 768"
to: "worker_connections 4000"
- replace:
filename: "/etc/nginx/nginx.conf"
from: "worker_processes auto"
to: "worker_processes 16"
## Si deseas configurar el inicio de sesión con contraseña para root, descomenta y cambia:
## Usa solo una de las siguientes líneas:
#- exec: /usr/sbin/usermod -p 'HASH_DE_CONTRASEÑA' root
#- exec: /usr/sbin/usermod -p "$(mkpasswd -m sha-256 'CONTRASEÑA_CRUDA')" root
## Si deseas autorizar usuarios adicionales, descomenta y cambia:
#- exec: ssh-import-id username
#- exec: ssh-import-id anotherusername
- exec: echo "Fin de comandos personalizados"
- exec: awk -F\\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Claves SSH autorizadas para este contenedor:"; } NF>=2 {print $NF;}'
¿Alguien puede ayudarme a arreglarlo ya que mi sitio está caído ahora?
También estaba pensando en hacer
./launcher rebuild data
No hay nginx ni PHP instalados en mi servidor, esto significa que está usando nginx interno y PHP interno. Entonces, ¿qué hago para arreglarlo y actualizar mi contenedor de Discourse y datos?