Cuando montamos un servidor web y los servicios que proporcionamos se hacen mayores (mayor cantidad de usuarios accede a ellos), inevitablemente debemos seguir una maniobra de escalado para dichos servicios. Tenemos muchas opciones, podemos tener servidores dedicados, o como primer paso utilizar servidores VPS como pueden ser DigitalOcean o Amazon AWS. En DigitalOcean, como muchos otros, tendrás que montarte tú todo, es decir, montar tu servidor e instalar HAProxy, Nginx, Apache (o el que quieras) en modo balanceador de carga, de modo que cada petición que entre será desviada a algún nodo web que tengamos conectado.… Leer artículo completo
Nota: Si usas algún Framework PHP, lo más seguro que estas funciones no te sirvan, ya que muchos Frameworks suelen tener cosas parecidas, más o menos completas que hacen lo mismo. Si eres de los que trabajan «a pelo», estás creándote tu propio framework, tal vez te interese todo esto.
Acceso simple a un elemento de un array
Esto es una tarea sencilla en PHP, sólo tenemos que poner entre corchetes la clave a la que queremos acceder y podremos acceder a su valor:
1
2
3<?php
$miArray['precio']=12.34;
echo $miArray['precio'];Aunque, el problema viene cuando dicha clave no existe, veremos una notificación de PHP indicando que el índice especificado no existe:
… Leer artículo completoPHP Notice: Undefined index: precio in /home/pruebas/test.php on line 3
PHP Stack trace:
…..Imaginemos que tenemos en una hoja de cálculo (una Excel de toda la vida, aunque no me gusta llamarla por un nombre comercial, es como llamar a los yogures Danone o Gillette a las cuchillas de afeitar, en fin), una serie de datos (es muy importante el hecho de tener un identificador o referencia en cada fila). En esta misma hoja, queremos insertar datos que se encuentran en otro archivo de hoja de cálculo haciendo que los nuevos datos se correspondan con el autor de la primera hoja.… Leer artículo completo
Es muy útil, al crear una tabla cuyos datos pueden ser modificados con cierta frecuencia, añadir campos que especifiquen el momento de creación y el de modificación. Por ejemplo, creamos la siguiente tabla de configuración para una aplicación:
1
2
3
4
5
6
7
8
9
10El objetivo es que cuando creemos un nuevo valor, éste rellene automáticamente las fechas de creación y modificación a la fecha actual.… Leer artículo completo
Si tenemos un viejo ordenador, una de las funciones que puede hacer es de router. Personalmente, yo lo tengo de router, centro de descargas, almacenamiento compartido, copias de seguridad remotas, ejecutar cron jobs en ciertos servidores que no los soportan y para ver películas en la tele.
Para que un ordenador pueda funcionar como router, es tan fácil como incluir en /etc/sysctl.conf la siguiente línea:
net.ipv4.ip_forward=1
(Aún con IPv4, sí, aunque podemos utilizar el forward ipv6, teóricamente sin ningún problema)
En muchos sistemas ya funcionaría, pero dependiendo de la distribución debemos dar un permiso adicional:$ sudo iptables -A FORWARD -j ACCEPT
Aunque si queremos restricción por MAC tendremos que currar un poco más.… Leer artículo completo
¡Bash es una pasada! Es capaz de dejarnos hacer maravillas en poco tiempo y de automatizar lo inautomatizable, en este caso, traigo un ejemplo más, de cómo un código muy corto es capaz de presentarnos los resultados de una consulta SELECT de mysql:
Los datos de prueba provienen de uno de mis proyectos: Málaga Bloguea donde muestro las últimas novedades de blogs de Málaga.
… Leer artículo completo1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49#!/bin/bash
OLDIFS=IFS
MYSQL_USER=#Usuario Mysql
MYSQL_PASSWORD=#Password Mysql
MYSQL_HOST="localhost"
# IFS personalizado, para poder delimitar los campos correctamente
IFS="`echo -e "\t\n\r\f"`"
# Declaramos la variable como array, no es estrictamente necesario, pero sí un poco más correcto
declare -a IPS
# Generamos la consulta (Si vamos a utilizar un juego de caracteres determinado, como
# UTF8, debemos especificar primero para evitar sorpresas.Este post está explicado de forma más extendida aquí.
He eliminado el contenido de este post porque ya está contenido en el enlace.
… Leer artículo completo