Ubuntu

12 entradas

Herramientas para desarrollar en Symfony

Symfony: tutorial 0: preparando el espacio de trabajo

Como buen apasionado del desarrollo de aplicaciones web, estaba espectante esperando la nueva versión de Symfony 4. Ahora tenemos una nueva versión orientada a microservicios, en la que te vas construyendo tu propio framework poco a poco, con los componentes que necesites. Esto quiere decir que no te instalas el framework completo cuando empiezas a trabajar, sino que poco a poco vas añadiendo los componentes. Gracias a Composer vas acoplando los componentes, ya sean del propio Symfony, o sean componentes externos al framework. Esto hace a su vez que la curva de aprendizaje no sea tan pronunciada para los novatos. Lo poco que he podido curiosear me ha encantado. Estoy como un niño con juguete nuevo. Tanto así, que he decidido hacer una serie de tutoriales para principiantes, y no tan principiantes. Herramientas Comencemos por preparar el entorno de trabajo. Voy a citar las herramientas que uso, y por supuesto también recomiendo para estos trabajos. No puedo extenderme mucho porque si no las conoces, deberás de invertir tiempo para instarlártelas. Si ya tienes las tuyas, y se adapatan bien a este tipo de desarrollos, úsalas: Sistema operativo: recomiendo GNU/Linux (Ubuntu, Ubuntu Mate o derivado de Debian), es lo que uso […]

Internet Firewall

GNU/Linux: bloqueando visitas por país

Siguiendo con el post anterior de bloqueo de IPs usando el cortafuegos integrado en el núcleo de Linux, llegamos a la necesidad de por ejemplo bloquear a cierto país. Hay negocios, o páginas web, que han recibido quizás ataques automáticos desde IPs que residen en Rusia, Rumanía o China. Si cerramos dicha entrada al servidor nos evitaríamos muchos problemas. Tengamos en cuenta que si nuestro servidor trabaja con servidores que residen en estos países, podremos encontrarnos con conexiones que no se hacen, no dan respuesta al conectar, denegación de conexión.. Es complicado si nos olvidamos de que hemos bloqueado, por ejemplo, a Rusia. Si luego resulta que contratamos un servicio ruso, cuyos servidores residen en Rusia, estaremos contratando un servicio que no nos va a poder conectar. Obteniendo IPs registradas por país El primera paso es tener un listado de IPs del país en concreto que queremos bloquear. Para esto tenemos varias páginas que nos los sirven sin cargo. Por ejemplo: http://www.ip2location.com/free/visitor-blocker https://www.countryipblocks.net/country_selection.php https://www.nirsoft.net/countryip/ http://www.ipdeny.com/ipblocks/ .. Mejor coge los rangos de IPs del país que quieras bloquear usando el formato en CIDR. Es decir de la forma red/máscara, son así: 2.136.0.0/13 2.152.0.0/14 Tienes entonces que guardarte este listado de CIDRs […]

Historial

GNU/Linux: automatizar backups de Mariadb/Mysql

El software de gestión de servidores te puede automatizar esta y otras tareas. Pero si estas haciendo artesanalmente un servidor, para no gastar ni un bit innecesariamente en correr software de gestión de servidores, tendrás que automatizar esta tarea: el hacer copias de seguridad de la base de datos. Sí, más vale prevenir que curar. Da por hecho que tarde o temprano los sistemas se rompen, así que más te vale haberte prevenido y tener una copia de seguridad por si acaso. Como me ha llevado un rato buscar entre los foros para construir esto, aquí que lo dejo por si a algún ubuntero le sirve. Creando el script Le idea es crear un sencillo Shell Script que automatice la copia de seguridad. Así que creo el fichero /home/ubuntu/backup.db.sh siguiente: #!/bin/bash mysqldump -h localhost -u usuario -pcontraseña nombre_base_de_datos | gzip > ~/backups/backup.db.$(date +%Y%m%d).sql.gz find /home/ubuntu/backups/ -type f -mtime +30 -name ‘backup.db.*.gz’ -execdir rm {} \; Este script hace 2 cosas. La primera es sacar una copia de la BD y la comprime a un fichero .gz. Lo segundo es que revisa si hay ficheros .gz de más de 30 días en el directorio de copias de seguridad, borrándolos. Creando carpeta […]

La Tierra

PHP: cómo geolocalizar visitantes, IPs o nombres de dominio

No quiero perder las buenas costumbres, y esto de escribir en mi blog es una de ellas. Así que aquí estoy de nuevo con otro pequeño HOWTO para geolocalizar ordenadores por IP o servidores por nombre de dominio. Es realmente sencillo, un juego de niños, pero por si lo necesitas en algún proyecto aquí que lo dejo. A continuación tienes cómo instalar en PHP5.6 las librerías en un sistema operativo Linux. Luego para PHP7 y enlaces a información sobre bases de datos relacionadas. Para geolocalizar dispositivos en Internet basta con utilizar uno de estos servicios. Quizá lo que necesitas es dar una traducción de tu sitio según la localización del visitante, mostrar mensajes por país, o desplegar países, regiones y localidades. También puedes usar las coordenadas de este servicio, pero no es muy fiable localizar con este sistema a tan bajo nivel pero por tener tendrás con esto unos datos orientativos para tu web. Abajo del post tienes enlaces a Bases de Datos con países del mundo, regiones y localidades actualizadas. Lo mejor de todo, la versión simple es gratis para que puedas usarlo en tu proyecto. Sólo con nombrar en tu proyecto a la empresa autora. También hay empresas […]

Webmin logo

Programar copias de seguridad diarias con Webmin+Virtualmin

Una de las tareas de servidor más comunes, o lo debería ser, es la copia de seguridad de los archivos. Si no queremos tener más problemas que los necesarios nos conviene tener una copia. Así que aquí estoy de nuevo escribiendo sobre Virtualmin, este gran proyecto Open Source que nos brinda una brillante interfaz de usuario web. Traigo un pequeño HOWTO para programar las copias de seguridad con este software.

Webmin logo

Administrar tu servidor con Webmin y Authentic Theme

¡Buenos días a todos! Voy a tratar de no perder las buenas costumbres, como esta de compartir en el blog mi granito de arena en todo esto de la informática. Hasta estos últimos días, que no he tenido la necesidad de mantener al día tantos servidores como últimamente. Estaba haciéndolo manualmente, a pelo como se suele decir, entrando en los servidores y aplicando actualizaciones, modificaciones, etc.. Todo esto es mucho tiempo así que delegar en un proveedor de hosting todo éste trabajo es una buena elección. Pero no siempre te va a valer y puede que necesites hacer configuraciones que un proveedor de hosting no te va a permitir. Administrar tu propio servidor no tiene que ser complejo. Todo esto me ha llevado a investigar sobre paneles de control de servidores. Tenemos el gran Cpanel, Plesk, Zpanel, y un largo etcétera. Por temas laborales ya he probado algunos en los propios proveedores. Muchos funcionan de maravilla y son sencillos de gestionar. Pero no me voy a dedicar a alquilar hosts, sino que simplemente necesito mantener unos pocos servidores y no es viable comprar una solución comercial. Así que navegando y navegando al final me topé con Webmin. Qué tiene A […]

Powered by Apache

Cómo configurar los permisos del directorio de un proyecto para Apache en Linux

¡Hola! Este es un pequeño HOWTO para configurar los permisos de directorio de un proyecto web que está en un servidor Apache. Nos puede pasar que estamos editando los ficheros del proyecto, pero puede ser que Apache no pueda acceder correctamente a los nuevos ficheros, crearlos, modificarlos o borrarlos. También nos puede pasar que Apache cree ficheros y nosotros no podamos tocarlos. Vamos a evitarlo con unos sencillos pasos. Esto sirve para configurarlo en Ubuntu. También se puede aplicar a cualquier otro sistema operativo Linux. El usuario por defecto de un servidor Ubuntu es ‘ubuntu’. El usuario de Apache es ‘www-data’, así que comenzamos dando permiso a Apache para que pueda usar nuestro directorio de trabajo donde desarrollamos la web. Por defecto Apache trabaja sobre con la página principal en /var/www/html pero este post es para configurar a nuestro gusto el destino el directorio donde vamos a tener la web. Supongamos que tenemos nuestra web en desarrollo en: /home/jaime/miweb/ Ahora bien vamos al directorio donde está nuestra web y damos permisos a Apache así: cd /home/jaime/ sudo chown www-data:www-data -R miweb/ Doy por sentado que ya tenemos instalado Apache y que tenemos configurado el host. Ahora bien, queremos trabajar como […]

Programar copia de seguridad en servidor Linux + Apache + MySQL compatible

Resulta que si tienes un servidor Linux, ya sea dedicado o virtual. Puede ser que no tengas una copia de seguridad automatizada de tus principales archivos. Los proveedores de servidores suelen ofrecer este servicio aparte cuando contratas un servidor. También puede ser que quieras automatizarlo en un ordenador local de ésta forma.Aquí les dejo un script simplificado por si les sirve de ayuda: ### FICHERO PARA AUTOMATIZAR LA COPIA DE SEGURIDAD ### DE TODOS LOS DATOS DEL SERVIDOR FECHA=$(date +%Y%m%d%H%M%S) # COPIA A FICHERO DE LA BD mysqldump nombreBD -uusuario -ppassword > backups/nombreBD.temp.sql tar -cvzf backups/nombreBD.${FECHA}.tar.gz backups/nombreBD.temp.sql rm backups/nombreBD.temp.sql # BD otras bds.. # copia incremental en el directorio de copia # ojo! la primera vez hay que poner ‘full’ en vez de ‘incremental’ para preparar la primera copia duplicity incremental –encrypt-key “password” –volsize 100 –no-encryption /home/ubuntu file:///home/ubuntu.backup/ –exclude /home/ubuntu/undirectoriodecache/ # borra historial de archivos antiguos duplicity remove-older-than 60D file:///home/ubuntu.backup/ # limpia copias incompletas o mal realizadas duplicity –no-encryption cleanup file:///home/ubuntu.backup/ Suponiendo que nuestro usuario se llama ‘ubuntu’ y estamos en el directorio del usuario (/home/ubuntu/). Este script se puede guardar en un fichero, por ejemplo: copiarTodo.sh Le damos permiso de ejecución con: $ chmod +x copiarTodo.sh Así podremos probarlo antes […]

Tux

Programar una tarea en Linux desde línea de comandos

Es bien sencillo. Abrimos un terminal si estamos en una estación de trabajo, o nos conectamos al servidor si es así. Entonces ya tenemos acceso. En Ubuntu funciona de ésta manera, no creo que varíe mucho de una distribución de Linux a otra.Ejecutamos: $ crontab -e Entonces veremos unas explicaciones en inglés donde detallan todo. Tendremos que poner una línea nueva para cada tarea. Por ejemplo nos puede quedar algo tal que así: # Edit this file to introduce tasks to be run by cron.## Each task to run has to be defined through a single line# indicating with different fields when the task will be run# and what command to run for the task## To define the time you can provide concrete values for# minute (m), hour (h), day of month (dom), month (mon),# and day of week (dow) or use ‘*’ in these fields (for ‘any’).## Notice that tasks will be started based on the cron’s system# daemon’s notion of time and timezones.## Output of the crontab jobs (including errors) is sent through# email to the user the crontab file belongs to (unless redirected).## For example, you can run a backup of all your user accounts# at 5 […]

Algo grande se está cociendo en Syncthing (Pulse)

Tenemos aquí una alternativa a la nube de Dropbox, Drive de Google, OneDrive de Microsoft o Mega que se está forjando en el mundo del Open Source. Se trata de un proyecto muy ambicioso de código abierto en donde se está desarrollando toda una serie de herramientas relacionadas con la función que desempeñan y que son toda una joya de la programación. Qué es Se trata simplemente a una solución de sincronización de archivos sin tener necesariamente un servidor en Internet de una empresa. En éstos casos, la empresa tiene una copia de todos los archivos que andes sincronizando. Puede ser un problema legalmente hablando el trabajar con una empresa que tenga tus datos empresariales. Por otro lado, en lo personal, resulta que nuestros datos están almacenados en empresas que los controlan. Qué trae de nuevo Sin límite de almacenamiento. Es decir, depende de lo que tengas en tus ordenadores que vayas a sincronizar que vas a poder tener. Cuanto más disco duro tengas, más podrás almacenar. Y totalmente gratis. Tenemos repositorios de todo tipo con absolutamente todo el código fuente. En los foros se están distribuyendo ppas, instaladores .deb, foros donde te explican como hacer todo tipo de configuraciones […]

Instalar Bower en Ubuntu

¡Buenos días! Estoy escribiendo poco últimamente sobre programación. No me he olvidado del blog, es que gracias a Dios estoy teniendo menos tiempo. No está la cosa para echar cohetes acá en Spain pero voy a intentar apretar y no abandonar en las buenas costumbres, como por ejemplo, escribir en un blog 😉 Para instalar Bower tuve que navegar para encontrar dispersa alguna información, así que aquí les dejo todo junto en un post. Qué es Bower es una excelente herramienta para automatizar la gestión de tus librerías. Está creada para gestionar los fuentes de la parte front-end. Es decir, Bower nos descarga y actualiza las librerías de entorno cliente: CSS, HTML y Javascript que necesitemos. Puede ser por ejemplo las librerías de Bootstrap o jQuery. Instalar Necesitaremos tener instalado: Git npm nodejs La web oficial es: http://bower.io/ Los comandos para instalar son los siguientes: $ sudo apt-get update $ sudo apt-get install git $ sudo apt-get install npm $ sudo apt-get install nodejs $ sudo npm install -g bower Llegados a éste punto si ejecutamos ‘bower update’ nos saldrá un error porque no encuentra ‘node’. Ésto pasa porque el ejecutable en Ubuntu no es node es nodejs y no […]

Composer, gestor de librerías PHP

Instalar globalmente Composer en Ubuntu

Este post va a ser bien corto. Se trata de cómo instalar el ejecutable de Composer en un directorio de Linux que está en la variable PATH del sistema. Los directorios que están en PATH son los directorios en donde se busca el programa cuando queremos ejecutar algo en Linux. Podemos escribir lo siguiente en línea de comandos y veremos cuáles tenemos ahora mismo: echo $PATH Tendremos separados por : todos los directorios actuales. Vamos entonces a añadir en uno nuestro ejecutable de Composer, que se trata de un phar. Un fichero .phar es un programa PHP empaquetado dentro de un sólo archivo. Vamos entonces.. Descargar la última versión de composer Si tenemos instalado curl podemos ejecutar lo siguiente en línea de comandos: curl -sS https://getcomposer.org/installer | php Si sólo tenemos instalado PHP ejecutamos lo siguiente: php -r “readfile(‘https://getcomposer.org/installer’);” | php Entonces debemos tener en el directorio en que estamos un fichero llamado composer.phar que podríamos usar con ‘php composer.phar …’. Pero queremos ir un paso más allá. Pudiendo ejecutarlo desde cualquier directorio, ¿recuerdas? Instalamos en el sistema en PATH Ejecutamos los siguientes comandos y ya lo tendremos instalado globalmente. sudo mv composer.phar /usr/local/bin/composer sudo chown root:root /usr/local/bin/composer sudo chmod […]