Archivos de Categoría: Linux

Configuraciones de Docker que suelo usar

Casi siempre he estado trabajando con VMware pero llevo ya un tiempo usando Docker que resulta bastante más rápido de montar una máquina con las versiones de software que luego tenemos en producción.

Por ahora solo los tengo para PHP y MySQL, pero estoy viendo opciones para ColdFusion y SQL Server, cuando los tenga los publicare junto con estas configuraciones en mi GitHub

Ver mis configuraciones tipo de Docker

Liberar espacio en linux

Hoy me he quedado sin espacio en el disco duro de la máquina virtual que uso de servidor de desarrollo así que me he puesto a mirar donde se estaba comiendo más espacio.

Lo primero es ver el estado de las particiones:
df -h

A partir de ahí podemos empezar borrando los ficheros descargados en las instalaciones
apt-get autoclean

Después toca ver que directorios pesan más:
du -sch /DIRECTORIO

O si se tiene el tree instalado
tree -dh /DIRECTORIO

Una vez localizado el directorio que te interesa limpiar puedes ver el tamaño de los ficheros con un ls o con tree:
tree -h /DIRECTORIO

O directamente buscar los ficheros que más pesan (en este caso más de 10 megas)
find /DIRECTORIO -type f -size +10000k -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -nrk 2,2

En mi caso resulta que me baje el otro día una web que tenía tropecientos pdfs repartidos en varias carpetas así que marchando comando para borrar todos los pdfs de un directorio recurrentemente:
find /DIRECTORIO -type f -name "*.pdf" -exec rm -rf {} \;

Y si, tener el disco duro al 98% de uso a tenerlo al 65% se nota.

PD: ya puestos también he liberado un poco de memoria RAM porque había lanzado un proceso de importación algo salvaje y había dejado la máquina tocada:

Ver consumo de memoria
watch -n 1 free -m

Liberarla
sync && sysctl -w vm.drop_caches=3

Restringir el acceso a phpMyAdmin

Es importante restringir lo máximo posible el acceso al panel de phpMyAdmin, para eso lo mejor es limitar el acceso a una IP concreta, así aunque tengan los datos de acceso no podrán hacer nada. Para ello existen dos formas:

Mediante el fichero .htaccess situado en el directorio /usr/share/phpmyadmin/ , ponemos las siguientes directrices:
deny from all
allow from 127.0.0.1
allow from XXX.XXX.XXX.XXX #la IP desde la que se tendrá acceso

Luego editamos el fichero /etc/phpmyadmin/apache.conf para indicar la ruta del .htaccess que acabamos de editar, añadiendo las líneas:
Directory /usr/share/phpmyadmin
AllowOverride All
/Directory

Y después reiniciar el servicio de apache para que surja efecto la configuración.

La segunda opción me parece más sencilla y es modificando el fichero de configuración del propio phpMyAdmin, situado en /etc/phpmyadmin/config.inc.php, en el encontraremos un if como este:

if (!empty($dbname)) {

al final de dicho if y antes del i++ que lo finaliza, añadimos el siguiente código:

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
    'deny % from all', 
    'allow % from 127.0.0.1', 
    'allow % from ::1',
    'allow root from localhost',
    'allow root from 127.0.0.1',
    'allow root from ::1',
    'allow root from XXX.XXX.XXX.XXX'  // la IP desde la que se tendrá acceso
    );

Y ya está, sin necesidad de reiniciar el servicio.