- Android
- API
- Apple
- Brainstorming
- CSS
- Diseño
- Enlaces
- Internet
- Javascript
- Linux
- Objective C
- Optimizacion
- Personal
- PHP
- Productividad
- Proyectos
- SEO
- Servidores
- Social media
- Software
- SQL
- Symfony
- Titanium
- Wordpress
Hoy he empezado a trasladar algunos de mis proyectos a kemsive.es (ovh) por varios motivos:
- Ahorrar en gastos, actualmente pago 50 euros al mes (600 euros/año) que con el cambio pagaría 204 euros/año.
- Actualizar de servidor, la máquina que tengo tiene más de 3 años, el so tan atrasado que ya no me deja ni actualizar la versión del php.
- Comodidad, quiero gestionar el hosting y dominios en un solo panel de control.
Luego por otra parte con la transferencia he decidido discontinuar varios proyectos de los que ya no prestaba atención y no creo que lo haga en un futuro, he aprendido mucho haciendolos pero ahora me estorban si quiero avanzar profesionalmente.
Los proyectos que voy a dejar de mantener son: playweek.me, tentacul.us e incluso algunos proyectos que ni había lanzado preguntaseo.com y regame.in.
En este tutorial os enseñaré como cambiar las urls de los backets de s3 por uno con nuestro dominio, por ejemplo:
http://d36orqcp1am75j.cloudfront.net/ por http://images.brucut.com/
Yo para administrar los buckets de s3 uso la aplicación Bucket explorer, así que os enseñaré como hacerlo con este aun que al final todos los programas son parecidos, incluso hay una extensión para firefox llamada s3fox.
Reflexión
Todavía no sé que utilidad puede tener más el cambio de la URL a parte del estetico, puede que mejore el seo pero no estoy muy seguro, pueden debatirlo dejando un comentario.
Pasos para configurar la URL con bucket explorer
- Pulsa el botón “Distribution” que econtrarás encima del listado de buckets.
- Se abrirá una ventana con los buckets, selecciona el que deseas y pulsa el botón “Update”.
- Donde pone CNAME, introduce el subdominio donde quieres apuntar al bucket, por ejemplo: images.brucut.com o le puedes llamar cdn.dominio.com
- Este paso va a ser el más complicado al menos para mi, entra en el panel de control de tu dominio y busca el modo de editar las entradas DNS y añade la siguiente regla:
images IN CNAME d36orqcp1am75j.cloudfront.net.
donde pone images es el subdominio que deseas, luego d36orqcp1am75j.cloudfront.net es la URL del bucket, importante fijate que hay un punto al final. - Espera unas horas para que los cambios tengan efecto.
- Comprime tu javascript con packer
- Agrupa los javascripts y css para limitar el numero de llamadas al servidor
- Si tu site tiene publicidad carga los banners al final
- Carga el javascript de las estadísticas web google analytics asincronamente
- Carga todos los javascripts que puedas antes de cerrar la etiqueta HTML
- Agrupa las imagenes en sprites con CSS
- Reduce el número de lineas de tu hoja de estilos CSS agrupando propiedades
- Comprime el código CSS
- Indica las dimensiones de las imagenes
- Comprime los ficheros estáticos javascript y CSS en GZIP
- Aloja los ficheros CSS, javascript e imagenes en amazon s3 y cloudfront
- Cambia el servidor web a nginx
- Instala un acelerador de PHP
- Comprime las imagenes
También recomiendo utilizar la extensión Pagespeed para firebug de firefox
A modo de recordatorio escribo este tutorial por si más adelante tengo que hacer otro branch.
Crear branch
- Hacemos una copia del trunk:
svn copy http://svn.dominio.com/proyecto/trunk/ http://svn.dominio.com/proyecto/branches/nuevo_branch/ - Copiamos los ficheros del branch a nuestro entorno de desarrollo:
svn co http://svn.dominio.com/proyecto/branches/nuevo_branch/ nuevo_branch
Subir cambios de nuestra copia de desarrollo al branch
- Revisamos los ficheros nuevos, marcados con un interrogante (?):
svn diff - Añadimos los ficheros nuevos, por ejemplo:
svn add prueba/index.php - Commiteamos los cambios:
svn ci nuevo_branch -m “cambios del branch”
Subir cambios del branch al trunk
- Hacemos una nueva copia del trunk a nuestro entorno de desarrollo:
svn co http://svn.dominio.com/proyecto/trunk copia_trunk - Consulta la última revisión del branch:
cd nuevo_branch
svn log –stop-on-copy - Nos situamos dentro del directorio de la copia del trunk:
cd copia_trunk - Unimos los cambios de nuestra copia de desarrollo del branch y el trunk:
svn merge -r 2343:HEAD http://svn.dominio.com/proyecto/branches/nuevo_branch/
Nota: donde pone “2343″ tienes que poner el número del último commit del branch. - Revisamos si hay conflictos antes de subir el merge al trunk:
svn st - Si todo es correcto, hacemos commit de todo:
cd ..
svn ci copia_trunk -m “cambios del branch”
Enlaces de interés
Todavía me considero novato con el SVN, recientemente hice mi primer branch.. pero puedo guiar a los que no estén familiarizados con el sistema.
A mi me han enseñado a usar SVN con comandos desde terminal y así es como os lo voy a enseñar.
Definiciones
- svn: (version control system), es un sistema de control de revisiones que permite gestionar los cambios de los ficheros que componen un proyecto, facilitando el trabajo en equipo al controlar el acceso y actualización del código fuente.
- trunk: rama principal de desarrollo, podríamos llamarlo producción.
- branch: rama independiente, una copia del trunk.
Comandos
Los siguientes comandos vienen acompañados al principio por un svn, ej. svn ci index.php.
Hay más comandos pero estos son los que más utilizo:
- commit: para enviar los cambios al svn.
- checkout: para descargar los ficheros del svn de un branch o trunk a tu entorno de desarrollo.
- add: para añadir ficheros al svn y posteriormente enviarlos al trunk con un commit.
- diff: para ver las modificaciones de un fichero con respecto al trunk.
- st: para ver los ficheros modificados (M), nuevos (?), con conflictos (C).
- merge: para unificar los cambios de una copia de desarrollo con un branch o trunk.
Enlaces de interés
Tener subdominios dinamicos es mucho más barato que tener varios dominios ya que solo necesitas uno y puede ser muy útil en tu web por ejemplo si vas a:
- internacionalizar el sitio: http://es.dominio.com, http://en.dominio.com
- para que cada usuario tenga su propio subdominio: http://gafeman.dominio.com
- para anuncios clasificados en una ciudad: http://madrid.dominio.com
Que sepa sólo se puede hacer en servidores dedicados, como por ejemplo hetzner.
Requisitos:
- Poder administrar el fichero de entradas DNS de tu dominio
- Tener apache y mod_rewrite en tu servidor
- tener permisos para conectarte al servidor via SSH
Pasos:
1. Editar entradas DNS del dominio, es un fichero con un contenido parecido a este:
www IN A ip
ftp IN CNAME www
imap IN CNAME www
loopback IN CNAME localhost
pop IN CNAME www
relay IN CNAME www
smtp IN CNAME www
@ IN MX 10 mail
añade la siguiente linea debajo de la linea que empieza por www:
* IN A www
2. Edita la configuración del dominio apache, tienes que añadir la siguiente linea en negrita para que acepte los subdominios:
ServerName dominio.com
ServerAlias *.dominio.com
ServerAdmin webmaster@localhost
3. Crea un fichero .htaccess en la raiz de tu servidor
Options -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
4. Reinicia el apache, en la terminal y conectado por SSH a tu servidor ejecuta el siguiente comando:
/etc/init.d/apache2 reload
5. Obtiene el subdominio con PHP
$subdominio = current( explode( ‘.’, $_SERVER['HTTP_HOST'] ) );
Por ejemplo con el dominio http://madrid.dominio.com, $subdominio tendría el valor madrid.
Ejemplos:
Enlaces de interés:
Hace un rato me he dado cuenta que el blog se ha cascado, mostraba un error 500 – internal server error
La verdad es que aún no sé por que ha aparecido este error, no he tocado ningun fichero de configuración del servidor, pero en fin ya esta todo oquei!
Para solucionarlo lo primero que he intentado ha sido reiniciar el apache escribiendo en la terminal:
/etc/init.d/apache2 restart -force
Al ejecutar dicho comando han aparecido estas lineas feas:
Forcing reload of web server (apache2)…[Thu Jan 29 13:00:32 2009] [warn] module php5_module is already loaded, skipping
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost 213.239.199.50:0 has no VirtualHosts
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost *:0 has no VirtualHosts
httpd (no pid file) not running
[Thu Jan 29 13:00:32 2009] [warn] module php5_module is already loaded, skipping
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost 213.239.199.50:0 has no VirtualHosts
[Thu Jan 29 13:00:32 2009] [warn] NameVirtualHost *:0 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!
Parece que no se ha podido reiniciar el servidor porque hay algun proceso que esta ocupando el puerto 80.
Buscando en google he encontrado la solución para el error make_sock could not bind to address
La solución definitiva con 2 comandos
- Matar los procesos que ocupan el puerto 80 con el comando:
fuser -k 80/tcp - Reiniciar de nuevo el apache:
/etc/init.d/apache2 restart -force
El amigo Pablo me ha dejado una serie de preguntas sobre el servidor de viciao2k3, ahí van:
¿Dónde está?
Europa > Alemania > Nuremberg > Hetzner
La máquina que contraté es el modelo DS 3000
Hardware:
- AMD Athlon 64 3700+
- 1 GB DDR400 RAM
- 2 x 160 GB SATA HDD
Software:
- Linux Debian Etch 64 bits LAMP (Linux + Apache + MySQL + PHP)
- Servidor web lighttpd (por defecto, viene instalado apache2)
- PHP
- MySQL
- eAccelerator
- Panel de control Webmin
Otras características:
- 100% administrado vía SSH
- Ancho de banda: 1000 GB / mes
- Network Availability min. 99%
¿Cuanto pagas?
El primer pago fue de 148 euros y cada mes 49 euros
Método de pago admitido tarjeta de crédito, si resides en Alemania puedes pagar con transferencia bancaria
¿Es bueno o malo?
Excelente, pero me gustaría concretar lo que me gusta y lo que no:
Lo bueno:
- El hardware a ese precio esta muy bien
- Hoygan, es el servidor dedicado más barato que he encontrado
- Lo tienes listo el mismo día que lo contratas
- El servicio técnico responde rápidamente normalmente si no es festivo en menos de 1 hora
Lo malo:
- Los idiomas del servicio técnico inglés y alemán
- El panel de control del cliente esta en alemán (yo aún no lo he usado)
- El panel de control del servidor a mi no me gusta
- Nadie controla el servidor, tienes que estar al día con las actualizaciones y los problemas que haya
- Poca información, cuando te registras sólo te dan una IP, un usuario y contraseña para que te conectes a través de SSH
Conclusión:
Si estás sobrepasando los limites de tu servidor y sabes un poco de linux
Hetzner es una buena opción
19:46:00 up 22 days, 23:41, 1 user, load average: 0.10, 0.07, 0.01
¿Vosotros lo veis normal?
Como he dicho en anteriores ocasiones no tengo ni idea de linux y menos de administración de sistemas
Es la primera vez que estoy en un servidor dedicado y llevo unos días que estoy preocupado por el contador de días del uptime
¿Alguien sabe si cada x días tengo que hacer algo en especial?
Por decir una tontería, reiniciar el sistema