Aumentar el puto tamaño de los putos archivos que se suben al puto moodle usando el puto docker para versiones viejas de moodle(usando el puto container de bitnami/moodle)
En un equipo tengo unos moodles corriendo en un esquema heredado y que están des-actualizados. Uso la imagen de bitnami/moodle pero al no ser nueva esta des-actualizada. Y el requerimiento de esta gente era poder subir el peso de los archivos de backup de los cursos. Según la documentación oficial hay un enlace que es el siguiente.
https://docs.bitnami.com/aws/apps/moodle/administration/increase-upload-limit-php/
En donde se hace la modificacion ingresando al contenedor. Para ingresar seria algo similar a esto
sudo docker exec -i -t nombre-del-contenedor /bin/bash
Y una ves dentro hacer la modificación del archivo
vi /opt/bitnami/php/etc/php.ini
# Las variables aparecen dos veces cada uno modificar ambas
; Maximum size of POST data that PHP will accept.
post_max_size = 300M
; Maximum allowed size for uploaded files.
upload_max_filesize = 300M
Dato de importancia(estas variables suelen aparecer en dos ocasiones ambas, así que hay que cambiar ambas)
Ahora el tutorial menciona que luego de ese cambio hay que correr un script que es el siguiente
sudo /opt/bitnami/ctlscript.sh restart
Pero en esta versión no existe, así que la solución es reiniciar el contenedor primero saliendo del mismo y luego haciendo.
sudo docker-compose restart
Y con eso estaría.
Tengo que aprender a armar mi imagen propia para no depender de los demás, es un bardo cada ves que cambian algo es un volver a empezar de nuevo.
Aumentar el puto tamaño de los archivos que uno sube en el puto wordpress funcionando detrás del puto docker.
Tengo un wordpress corriendo en docker que se llama wp_wordpress_1
# Ingreso al contenedor
docker exec -i -t wp_wordpress_1 /bin/bash
# Edito el archivo .htaccess
vim .htaccess
# y en el espacio antes de la ultima linea pongo
php_value upload_max_filesize 270M
php_value post_max_size 270M
El puto docker y su puta limitación de cantidad de bridges que puede otorgar
En un equipo en donde tenia muchos(36 creo) contenedores funcionando al querer crear un par mas me tope con un error de docker que me decía que no tenia forma de crear mas bridge(el error hablaba de solapamiento de ipv4) pero en si es lo mismo. La posible solución(esto lo probé solo localmente tengo que intentar en donde me surgió el problema para decir que esta solucionado) es rehusar el mismo bridge para varios contenedores. El bridge en si levanta una red, y solo por la forma en la que lo usamos estamos dedicando una red completa a un mismo contenedor. Esto seria algo como lo que explica la gente en el siguiente link. https://tjtelan.com/blog/how-to-link-multiple-docker-compose-via-network/ # Creo una red si no existe docker network create external-example # y en cada docker-compose defino el uso de la misma red networks: default: external: name: external-example
lvm
# Tengo el vg
vf_srv
# Según esta gente
https://access.redhat.com/documentation/es-es/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/vg_grow
# Así agregamos al volumen físico un disco
vgextend vg1 /dev/sdf1
# Así lo agrego
vgextend vf_srv /dev/sdb
# Asi veo que aparece
sudo vgdisplay
# Si quiero agregar otros discos mas hago lo mismo
sudo vgextend vf_srv /dev/sdc
sudo vgextend vf_srv /dev/sdd
# Para ver los volúmenes lógicos que hay hago
sudo lvdisplay
# Voy a agregar espacio a un volumen existente /dev/vf_srv/lv-rz
# Segun
https://nebul4ck.wordpress.com/2015/10/16/administrar-lvm-22-redimensionar-volumen-logico/
# Se hace así
sudo lvextend -L +9,9GB /dev/mapper/myvolgrp-lvhome
# Asi lo haria yo
sudo lvextend -L +10GB /dev/vf_srv/lv-rz
sudo lvextend -L +3,99GB /dev/vf_srv/lv-sw
Yo Ozan te Maldigo ” Maldito seas Puto Moodle bajo Container de Docker por los años que me haces perder como un infeliz esperando a que levante. Te maldigo”
En esta perdición me baso en la siguiente guía
# https://techexpert.tips/moodle/moodle-docker-installation/
# Creo la red necesaria para conectar los contenedores
docker network create moodle-network
# Me traigo una imagen del contenedor de mariadb
docker pull mariadb
# Una del puto moodle que consume tu tiempo de vida miserablemente
docker pull bitnami/moodle
# Creo un volumen para mariadb
docker volume create mariadb-data
# Levanto la imagen de la db poniendo claves y usuarios(recomendable poner otra cosa ahi)
docker run -d --name moodledb -v mariadb-data:/var/lib/mysql --network moodle-network -e "MYSQL_ROOT_PASSWORD=kamisama123" -e MYSQL_USER=moodle -e "MYSQL_PASSWORD=kamisama123" -e "MYSQL_DATABASE=moodle" mariadb
# Creo el volumen de la data de moodle
docker volume create moodle-data
# Levanto moodle y comienzo a perder tiempo de mi vida esperando a que ande todo
docker run -d --name moodle -p 80:8080 -p 443:8443 -v moodle-data:/bitnami/moodle --network moodle-network -e MOODLE_DATABASE_HOST=moodledb -e MOODLE_DATABASE_USER=moodle -e MOODLE_DATABASE_PASSWORD=kamisama123 -e MOODLE_DATABASE_NAME=moodle bitnami/moodle:latest
# Véanse una buena serie onda "Gambito de dama" o la de "American gods" y cuando terminen ambas prueben si pueden ingresar por navegador al moodle. Sino hay que seguir esperando.
Instalar el puto Mantis en Debian Buster. Sin ponerle sal a las papas fritas.
# Instalar mantis en debian buster
https://www.osradar.com/install-mantis-bug-tracker-debian-10/
# La parte lamp de aca
How to install LAMP on Debian 10?
# Instalo apache y wget
sudo apt install apache2 wget
# Habilito apache
sudo systemctl enable apache2
# Inicio apache
sudo systemctl start apache2
# Instalo parte de php
sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-zip
# Instalo mariadb y segurizo la instalacion
sudo apt install mariadb-server
sudo mysql_secure_installation
# Me conecto como root a la db
sudo mysql -u root -p
# Creo la db mantisdb
CREATE DATABASE mantisdb;
# Asigno privilegios a mantisuser sobre esa db y le doy una clave bien pedorra(cambien eso)
GRANT ALL PRIVILEGES ON mantisdb.* TO 'mantisuser'@'localhost' IDENTIFIED BY 'mantispss';
FLUSH PRIVILEGES;
exit;
# Bajo los source de mantis
wget https://sourceforge.net/projects/mantisbt/files/mantis-stable/2.24.4/mantisbt-2.24.4.zip
# instalo unzip
sudo apt install unzip
$ Descomprimo los source
unzip mantisbt-2.24.4.zip
# Los muevo a la carpeta srv
sudo mv mantisbt-2.24.4/ /srv/
# Cambio el dueño y grupo de la carpeta a www-data
sudo chown -R www-data:www-data /srv/mantisbt-2.24.4/
# Cambio los permisos de la carpeta
sudo chmod -R 777 /srv/mantisbt-2.24.4/
# Creo la configuracion de mantis en el apache
sudo nano /etc/apache2/sites-enabled/mantis.conf
<VirtualHost *:80>
DocumentRoot "/srv/mantisbt-2.24.4/"
ErrorLog "/var/log/apache2/mantisbt-error_log"
TransferLog "/var/log/apache2/mantisbt-access_log"
<Directory "/srv/mantisbt-2.24.4/">
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride None
Require all granted
Options MultiViews FollowSymlinks
</Directory>
</VirtualHost>
# Reinicio apache
sudo systemctl restart apache2
Instalar el Puto OJS en el Puto Debian Buster
# Los pasos generales estan aca
https://ukblow.info/chart/ojs-instalacion-paso-a-paso-en-debian-8-linux/jqGqk96qatjaisY.html
# Necesito Lamp andando y me guio de aca
https://www.cyberciti.biz/faq/how-to-install-lamp-on-debian-10-buster/
# Hago una actualizacion
sudo apt update && sudo apt upgrade
# Instalo Apache2
sudo apt install apache2
# Instalo algunas cosas de mysql y apache y php
sudo apt install php libapache2-mod-php php-gd php-mysql
sudo apt install php-mysql php-gd
sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php php-pecl-http mcrypt
# Habilito modulos en apache2
sudo a2enmod mpm_prefork
# Reinicio apache
sudo systemctl restart apache2.service
# Instalo mariadb
sudo apt install mariadb-server
# Segurizo la instalacion
sudo mysql_secure_installation
# La parte de la db
sudo mariadb -u root
create database ojs;
create user ojs@localhost identified by 'tuclave';
grant all privileges on ojs.* to ojs@localhost;
# Tengo que descargar los fuentes y aca los descomprimo en la carpeta del apache
sudo tar xvf ojs-3.2.1-2.tar.gz
# Le cambio el nombre a la carpeta
sudo mv ojs-3.2.1-2 ojs
# Se require esta carpeta para los archivos
sudo mkdir /var/www/files/
# Les doy permisos necesarios a ambas carpetas
sudo chown -R www-data:www-data /var/www/files/
sudo chown -R www-data:www-data /var/www/html/
Moodle detrás de dos servidores web con apache un HaProxy que balancea carga entre los dos equipos, una db en postgres remoto y un servidor samba que comparte los archivos. Y sino te gusta anda a comprar un kilo de helado.
El esquema es mas o menos así
########################################################################
haproxy
192.168.0.13
########################################################################
Apache va a estar en dos equipos instalo en uno y clono en otro
192.168.0.12
192.168.0.17
########################################################################
Samba comparte en
192.168.0.10
########################################################################
Postgres tiene su db en
192.168.0.11
########################################################################
########################################################################
Servidor con samba 192.168.0.10
########################################################################
# Guia
https://www.server-world.info/en/note?os=Debian_10&p=samba&f=2
# Instala Samba
sudo apt -y install samba
# Creo un grupo al que voy a asociar los usuarios que usen este recurso
sudo groupadd recursos
# Creo la carpeta que voy a poner a disponibilidad del grupo
sudo mkdir /home/recursos
# Cambio el grupo al que pertenece dicha carpeta
sudo chgrp recursos /home/recursos
# Otorgo permisos sobre la misma
sudo chmod 770 /home/recursos
# Hago backup de la configuración original
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
# Edito configuracion de samba.
sudo vi /etc/samba/smb.conf
[global]
bind interfaces only = Yes
interfaces = 192.168.0.0/24
log file = /var/log/samba.log.%m
max log size = 50
server string = Servidor Samba
workgroup = RECURSOS
idmap config * : backend = tdb
[Recursos]
create mask = 0770
directory mask = 0770
path = /home/recursos
read only = No
valid users = @recursos
sudo testparm
# Reinicio samba
sudo systemctl restart smbd
# Agrego un usuario a samba y le pongo contraseña al mismo
sudo smbpasswd -a ed
# Ese usuario tiene que pertenecer al grupo recursos asi que le asigno dicho grupo.
sudo usermod -G recursos ed
########################################################################
Postgres 192.168.0.11
########################################################################
https://computingforgeeks.com/install-postgresql-11-on-debian-10-buster/
# Actualizo
sudo apt update && sudo apt -y upgrade
# Instalo vim wget gnupg lsb-release
sudo apt install -y vim wget gnupg lsb-release
# Bajo la llave de postgres y la agrego
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Creo una variable con la versión del SO
RELEASE=$(lsb_release -cs)
# Agrego repositorios
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
# Hago un update
sudo apt update
# Instalo postgres
sudo apt -y install postgresql-11
# Veo el estatus del servicio
systemctl status postgresql
# Me logueo con el usuario por defecto
sudo su - postgres
# Le Asigno clave
psql -c "alter user postgres with password 'clave'"
# Habilitar acceso remoto me guio de
https://www.netiq.com/documentation/identity-manager-47/setup_windows/data/connecting-to-a-remote-postgresql-database.html
# Modifico este archivo y agrego
sudo vi /etc/postgresql/11/main/postgresql.conf
# Lo siguiente
listen_addresses = '*'
# Toco este otro archivo
sudo vi /etc/postgresql/11/main/pg_hba.conf
# Agrego al final lo siguiente
host all all 0.0.0.0/0 md5
# Reinicio el servicio
sudo systemctl restart postgresql
########################################################################
La parte web de los apache, lo hago en uno y clono luego
192.168.0.12
192.168.0.17
########################################################################
# Instalo cifs-utils ya que comparto por samba
sudo apt-get install cifs-utils
# Creas el punto de montaje
sudo mkdir -p /var/www/web
# Las credenciales
sudo vi /var/www/.smbcredentials
username=usuario
password=clave
domain=dominio
# Aseguras los permisos
sudo chmod 600 /var/www/.smbcredentials
# Editas fstab
sudo vi /etc/fstab
# El qui de la cuestion esta en el udi y gid
//192.168.0.10/recursos /var/www/web cifs credentials=/var/www/.smbcredentials,,uid=33,gid=33 0 0
# Montas el recurso.
sudo mount -a -v
# Ojota con el nombre del .mount systemd se queja como los azules de cualquier pelotudes
# si montas en Where=/a/b/c este archivo de abajo seria a-b-c.mount sino no funca.
sudo vi /etc/systemd/system/var-www-web.mount
[Unit]
Description=Montar Recurso Compartido
# Esto de abajo anda solo si no tenes network manager. En esos casos en los link mencionan como hacerlo andar
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service
[Mount]
What=//192.168.0.10/recursos
Where=/var/www/web
Type=cifs
Options=credentials=/var/www/.smbcredentials,,uid=33,gid=33
[Install]
WantedBy=multi-user.target
# Habilito la unidad mount creada
sudo systemctl enable var-www-web.mount
# La inicio
sudo systemctl start var-www-web.mount
# La reinicio
sudo systemctl restart var-www-web.mount
# Actualizo todo
sudo apt update && sudo apt upgrade
# Instalo apache
sudo apt install apache2 apache2-utils
# Habilito apache
sudo systemctl enable apache2
# Lo inicio
sudo systemctl start apache2
# Instalo cosas necesarios de php
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
# Habilito php
sudo a2enmod php7.3
# Reinicio apache
sudo systemctl restart apache2
# instalo mas cosas de php
sudo apt install php7.3-fpm
# Habilito algunos modulos de apache y otras cosas
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm
# Reinicio apache
sudo systemctl restart apache2
# Sigo instalando cosas de php
sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php
sudo apt-get install php-dev libmcrypt-dev php-pear
# Aca igual
sudo pecl channel-update pecl.php.net
sudo pecl install channel://pecl.php.net/mcrypt-1.0.2
# Complementos de php para postgres
sudo apt install -y php-pgsql
sudo systemctl reload apache2.service
# Hay que bajar los archivos de moodle, yo lo hago a mano por que por wget no funca
wget https://download.moodle.org/download.php/stable310/moodle-latest-310.tgz
# Descomprimo los mismos dentro del recurso compartido
sudo tar xf moodle-latest-310.tgz
# Creo la carpeta moodledata en el recurso compartido
sudo mkdir /var/www/web/moodledata
# Deshabilito sitios por default
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
# creamos entrada para el sitio moodle
sudo vi /etc/apache2/sites-available/web.conf
<VirtualHost *:80>
DocumentRoot /var/www/web/moodle
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# Habilito dicho sitio y reinicio apache
sudo a2ensite web.conf
sudo systemctl restart apache2.service
# Necesito el cliente de postgres para conectarme a la db remoto
sudo apt-get install postgresql-client-11
# Me conecto a la misma
psql -h 192.168.0.11 -U postgres
# Creo la db de moodle y garantiso los permisos para el usuario
CREATE USER moodleuser WITH PASSWORD 'clavedb';
CREATE DATABASE moodle WITH OWNER moodleuser;
# Salgo de postgresql
\q
# Los siguiente es la parte de haproxy pero de los sitios con apache,
# Es decir somos clientes del haproxy
sudo a2enmod remoteip
sudo vi /etc/apache2/apache2.conf
# line 212-215: change like follows
# specify HAProxy's IP address for [RemoteIPInternalProxy]
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.0.13
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
sudo systemctl restart apache2
########################################################################
haproxy 192.168.0.13
########################################################################
# La parte del balanceo esta en
https://www.server-world.info/en/note?os=Debian_10&p=haproxy&f=1
sudo apt -y install haproxy
sudo vi /etc/haproxy/haproxy.cfg
# add to the end
# define frontend (any name is OK for "http-in")
frontend http-in
# listen 80 port
bind *:80
# set default backend
default_backend backend_servers
# send X-Forwarded-For header
option forwardfor
# define backend
backend backend_servers
# balance with roundrobin
balance roundrobin
# define backend servers
server node01 192.168.0.12:80 check
server node02 192.168.0.17:80 check
sudo systemctl restart haproxy
crontab -u www-data -e
*/1 * * * * /usr/bin/php /var/www/web/moodle/admin/cli/cron.php >/dev/null
Solo resta pegarle a la ip del HAProxy y terminar de instalar por web.
Instalar moodle usando como motor de db postgresql. Sin comentarios censurados.
# La parte de moodle con lamp menos postgres es esto
# Sigo esta guia para la parte Lamp en debian buster
https://www.linuxbabe.com/debian/install-lamp-stack-debian-10-buster
sudo apt update && sudo apt upgrade
sudo apt install apache2 apache2-utils
systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo ufw allow http
sudo chown www-data:www-data /var/www/html/ -R
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
sudo a2enmod php7.3
sudo systemctl restart apache2
sudo apt install php7.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm
sudo systemctl restart apache2
Cómo instalar Moodle en Debian 10 Buster
wget https://download.moodle.org/download.php/stable310/moodle-latest-310.tgz
sudo tar xf moodle-latest-310.tgz -C /var/www/html/
sudo chown -R www-data: /var/www/html/moodle/
sudo mkdir /var/www/moodledata
sudo chown www-data: /var/www/moodledata/
sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php
sudo apt-get install php-dev libmcrypt-dev php-pear
sudo pecl channel-update pecl.php.net
sudo pecl install channel://pecl.php.net/mcrypt-1.0.2
sudo apt install -y php-pgsql
sudo systemctl reload apache2.service
# La parte de postgresql es lo siguiente.
# Instalar posrgresql
How to Install PostgreSQL 11 on Debian 10 (Buster)
sudo apt update && sudo apt -y upgrade
sudo apt install -y vim wget gnupg lsb-release
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt -y install postgresql-11
systemctl status postgresql
sudo su - postgres
psql -c "alter user postgres with password 'claveposrgresql'"
CREATE USER moodleuser WITH PASSWORD 'clavedb';
CREATE DATABASE moodle WITH OWNER moodleuser;
Instalar el puto HAProxy como balanceador de cargas usando webs(2) con apache sin que el placero te quiera cobrar las vueltas en la calesitas
Balanceo de carga con haproxy usando apache en debian buster.
El esquema es el siguiente
# HAProxy esta en 192.168.0.15
# Web 192.168.0.16
# Web1 192.168.0.17
# En los equipos que son web para instalar apache hago lo siguiente.
# Instalar apache me guie en esto
https://www.tecmint.com/install-apache-with-virtual-hosts-on-debian-10/
sudo apt update -y
sudo apt install apache2 -y
sudo systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl restart apache2
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
sudo nano /var/www/html/index.html
<html>
<head>
<title>Servidor 1</title>
</head>
<body>
<h1>Servidor 1</h1>
</body>
</html>
sudo systemctl restart apache2
# Una ves que tengo apache instalado hago la configuracion de haproxy
# Esto es en cada nodo web
sudo a2enmod remoteip
sudo vi /etc/apache2/apache2.conf
# line 212-215: change like follows
# specify HAProxy's IP address for [RemoteIPInternalProxy]
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.0.15
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
sudo systemctl restart apache2
# Ahora en el equipo con HAProxy hago lo siguiente.
# HAProxy esta en 192.168.0.15
# Web 192.168.0.16
# Web1 192.168.0.17
# La parte del balanceo esta en
https://www.server-world.info/en/note?os=Debian_10&p=haproxy&f=1
sudo apt -y install haproxy
sudo vi /etc/haproxy/haproxy.cfg
# add to the end
# define frontend (any name is OK for "http-in")
frontend http-in
# listen 80 port
bind *:80
# set default backend
default_backend backend_servers
# send X-Forwarded-For header
option forwardfor
# define backend
backend backend_servers
# balance with roundrobin
balance roundrobin
# define backend servers
server node01 192.168.0.16:80 check
server node02 192.168.0.17:80 check
sudo systemctl restart haproxy
Comentarios recientes