Como montar una idea en la web desde cero
Bienvenid@s a SOSpedia punto net
Este es un primer post para organizar las categorías y menús de la página. En breve estaremos con vosotr@s
Así comenzaba www.sospedia.net pero ya estamos con vosotros.
Reutilizo el post para contaros cómo nació el proyecto en el que nos hemos embarcado de forma desinteresada unos cuantos compañeros.
Primer intento: El verano pasado (2014) nos reunimos “virtualmente” unos cuantos compañeros informáticos, a los que les transmití la idea de montar un Blog, donde compartir con la comunidad todo lo que sabemos, todo lo que vamos aprendiendo, y en definitiva nuestro día a día en nuestras labores de IT, desarrollo, sistemas operativos, redes, software, hardware, scripting, una especie de bitácora donde todo tiene cabida, y que además de servirnos de recordatorio a nosotros mismos, sirviese a más personas.
Al final no hicimos nada, mucho trabajo, compromisos, incluso uno de nosotros incorporó un nuevo miembro a su familia 😉
En un segundo intento, a primeros de noviembre (2014) nos reunimos para almorzar Lluis y yo, y decidimos tirar adelante, así que nos dispusimos a registrar un dominio, alojarlo en uno de los servidores que administro (www.jblanco.org), y montar un WordPress para tener una herramienta de trabajo. Al final, y tras el setup, tampoco hicimos nada 😉
En un tercer intento, tras recobrar contacto con unos ex-alumnos de Xàtiva, me enteré de que por aquellos lares pretendían hacer algo parecido, así que me dije, es ahora o nunca, y aquí estamos, hemos empezado. 🙂
Para completar el post, os contaré a modo de tutorial, cómo montamos la infraestructura sobre la que ahora mismo estáis leyendo.
1) Comprobación y compra del dominio
Lo primero que hay que hacer a la hora de montar un proyecto web de este tipo es registrar un nombre de dominio. Teníamos varios pensados y al final nos decantamos por sospedia.net
A la hora de comprobar la disponibilidad de un nombre de dominio no me gusta utilizar los buscadores que tienen los propios registradores, llevo en esto desde 1996 y me han ocurrido cosas “raras”, como estar buscando dominios para algún proyecto, y que cuando al día siguiente se los presentaba al cliente alguno de ellos hubiese desaparecido 🙁
Uso Debian como sistema operativo de escritorio, y cómo no, también es mi preferido para servidores, y utilizo el comando whois, que podéis encontrar en cualquier distro Linux, si no tenéis instalado el paquete lo podéis hacer usando el gestor de paquetes de vuestra distro. En caso de sistemas Debian based:
apt-get install whois
El comando whois es muy sencillo de utilizar, y lo que buscábamos, que el dominio estuviese libre o disponible, como lo queráis llamar, nos lo dice el “NO MATCH FOR” que podéis apreciar el la imagen anterior:
whois sospedia.net
Una vez hemos comprobado que el dominio está libre, procedemos a comprarlo. Para este paso, podemos estudiar las diferentes ofertas que hay en el mercado, pedir alguna recomendación, y lo sé, siempre os decantáis por el precio, pero nosotros nos decidimos por un agente registrador que nos ofrecía en el momento de la compra 4 servidores de nombre (DNS) diferentes. Esto es recomendable, ya que si una DNS cae, tienes tolerancia a fallos, aunque he de reconocer, y en mi Twitter lo podéis confirmar, que sí hubo una caída en diciembre, seguramente por un DDoS.
El proceso de compra es sencillo, tarjeta en mano o cuenta de paypal al canto. En el proveedor elegido, verificamos lo que ya sabíamos gracias al comando whois:
Seleccionamos la extensión que nos interesa y le damos al botón registrar. Además una opción interesante es utilizar la denominada “Protección Whois“, cómo no se el alcance del proyecto protejo mi información personal durante un año (tened en cuenta que los datos de un dominio, los que podéis obtener de la base de datos whois son públicos):
2) Preparación del servidor
Lo más normal en cualquier proyecto es contratar el dominio y además un alojamiento, llamado también hosting, que es el espacio en disco duro donde se almacenan los archivos de la web, así como la base de datos y demás recursos.
En mi caso dispongo de un VPS que utilizo para mis clases, donde tengo alojados los subdominios:
- www.jblanco.org, donde de vez, pero muy de vez en cuando publico algo, y se trata de un Joomla otro de los CMS que suelo utilizar
- aula.jblanco.org, un Moodle, donde pongo a disposición de mis alumnos una extensión del aula física, colgando apuntes, prácticas y donde ellos me suben las prácticas y ejercicios.
Así que cómo no sabemos el alcance del proyecto que estamos empezando, decidimos alojar en este VPS el proyecto sospedia.net.
Lo primero es acceder al servidor vía ssh:
ssh root@jblanco.org
Después creamos un usuario “sospedia” en el sistema Linux:
useradd -s /bin/bash -d /var/vhosts/sospedia.net -m -g www-data sospedia
Paso a explicaros el comando useradd anterior:
- Con la opción -s /bin/bash establezco que el interprete de comandos que utilizará, cuando conecte vía ssh por ejemplo, será Bash
- Con la opción -d /var/vhosts/sospedia.net -m, por un lado -d especifica la carpeta de trabajo (home) del usuario en cuestión, y por otro -m fuerza a que esta carpeta se cree si todavía no existe.
- Con -g www-data estoy diciendo que el usuario sospedia pertenezca al grupo www-data que en servidores “Debian-based” es el encargado de servir páginas web, el asociado al servidor web Apache.
Los que ya me conocéis sabéis que soy muy estricto, y aunque todo lo que dejemos (en un Debian) bajo la carpeta /var/www ya es servido por Apache2 (nuestro servidor web preferido), me gusta meterlo todo dentro de una subcarpeta ./vhosts/ para luego configurar los VirtualHosts desde los ficheros de configuración de Apache2, cada uno (cada proyecto) cómo no podría ser de otra forma en su carpeta separada.
Así pues para el caso que nos ocupa, el WordPress que servirá el proyecto sospedia.net estará ubicado en la carpeta /var/vhosts/sospedia.net del servidor.
Hemos creado el usuario, ahora tenemos que asignarle una contraseña, mediante el comando passwd:
passwd sospedia
A continuación configuramos el servidor web Apache2 para alojar el nuevo dominio:
En la carpeta /etc/apache2 tenemos los ficheros de configuración del servidor web.
Lo que vamos a hacer es definir el “Virtual Host” correspondiente a nuestra web. Para ello, desde la consola de comandos, escribimos lo siguiente:
cd /etc/apache2/sites-available
En esta carpeta se almacenan, en ficheros de texto, los diferentes sites (sitios web) que sirva el servidor web. Una vez dentro de esa carpeta escribiremos lo siguiente:
nano default
El fichero default suele existir en cualquier distro, editaremos este aunque podríamos crearnos uno nuevo. La ventaja de editar este es que podemos partir del vhost por defecto y “copy&pastearlo” para crear el de sospedia:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.sospedia.net DocumentRoot /var/www/vhosts/sospedia.net/www <Directory /> Options -Indexes FollowSymLinks AllowOverride None </Directory> <Directory /var/www/vhosts/sospedia.net/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
A mi juicio, las tres opciones/parámetros más importantes para el correcto funcionamiento de un vhost son:
- ServerName
- DocumentRoot
- Y el Directory correspondiente, con sus options y demás
Fijaros en el Directory o en el DocumentRoot, /var/www/vhosts/sospedia.net/www/ y recordad que el usuario sospedia, creado en el sistema Linux, para el proyecto, tiene su carpeta de trabajo en /var/www/vhosts/sospedia.net, bien, pues dentro de ella tiene la subcarpeta ./www donde ubicaremos la web, en este caso el WordPress.
Existe otra carpeta:
cd /etc/apache2/sites-enabledDonde realmente lo que tenemos son links a los ficheros de la carpeta anterior, que lo que viene a representar es: de los sitios disponibles (available) los que están habilitados (enabled) son estos.
Y existe un comando Apache:
a2ensite ficheroQue habilita el sitio o mejor dicho los VirtualHost que haya en el fichero. De la misma forma, también existe otro comando para deshabilitar:
a2dissite ficheroEn este caso, y dado que en este servidor ya existían 2 VirtualHost funcionando, dentro del mismo fichero “default” no necesitamos utilizar el comando para habilitar el sitio.
Por si queréis más información sobre los sitios de apache, os dejo esta url.
Cómo siempre que tocamos las tripas de algún servicio, lo tenemos que “resetear”:
service apache2 restart
Cómo hemos especificado en el Directory, creamos la carpeta www, eso sí, para no romper permisos mediante el comando su, suplantamos al usuario sospedia:
su sospedia mkdir /var/www/vhosts/sospedia.net/www
El siguiente paso a seguir es descargar la suite comprimida de WordPress para su posterior descompresión e instalación. En el momento de la instalación la versión era la 4.0, averiguamos la url de descarga y utilizando wget lo descargamos:
cd /var/www/vhosts/sospedia.net/www wget https://es.wordpress.org/wordpress-4.0-es_ES.zip
Y lo descomprimimos mediante el comando unzip:
unzip wordpress-4.0-es_ES.zip
3) Modificación de las DNS del dominio
Antes de proceder a la instalación, se nos había pasado modificar las DNS del dominio para que apunten a la IP del servidor donde vamos a hacer el deploy, como es un proceso que puede tardar (según dicen hasta 48 horas) vamos a hacerlo antes de irnos a almorzar.
La configuración por defecto era la que se muestra en la captura siguiente. Nuestro proveedor o registrador del dominio, genera esta plantilla en la zona DNS del dominio sospedia.net y hace que los registros A que se aprecian en la figura apunten a una de sus IP, esto es lo que se denomina dejar un dominio en “parking“:
A nosotros lo que nos interesa en cambio es que nuestro nuevo dominio apunte a la IP del servidor donde hemos hecho el setup, y donde después haremos el deploy definitivo del CMS WordPress.
Por lo tanto borramos esas entradas o registros por defecto y añadimos los definitivos. Básicamente comentar que en la siguiente captura, se aprecia la IP del VPS donde hemos alojado el dominio, con el comodín @ hacemos que toda petición del tipo *.sospedia.net vaya a esa IP, y creamos otro registro A para el subdominio www, esto hará que cuando alguien escriba en un navegador www.sospedia.net, el navegador vaya a la dirección IP correspondiente, y gracias al VirtualHost creado antes en Apache, donde parámetro ServerName era justo esa url se servirá la página web:
4) Creación de una base de datos
Acto seguido creamos una base de datos MySQL para que WordPress pueda funcionar. Si usáis PhpMyAdmin, os recomiendo que la base de datos sólo escuche por localhost y por supuesto que en el firewall del servidor tengáis cerrado el puerto correspondiente a MySQL (3306). Mismo comentario suelo hacer si usáis algún servidor FTP, por ejemplo vsftpd, dejar acceso sólo a localhost y cerrar el puerto 21, de esta forma cuando en WordPress tengáis que realizar alguna instalación o alguna actualización, podréis hacerlo pero de forma local.
En este momento, aprovechamos para almorzar, dándole un poco de tiempo a las DNS 😉
5) Instalación de WordPress
Una vez se propaguen las DNS, procedemos a su instalación, ya podemos atacar directamente al subdominio www, y lanzamos la url en nuestro navegador preferido y WordPress nos redirecciona al script de instalación:
Paso 1: WordPRess nos da la bienvenida informándonos de lo que debemos tener a mano, básicamente las credenciales de la base de datos que hemos creado antes, y un prefijo para sus tablas, para incrementar un poquito la seguridad, o bien para permitir varias instalaciones en la misma base de datos sin que haya colisiones:
Paso 2: Aquí rellenamos el formulario con las credenciales de la base de datos que hemos creado antes, y un prefijo para sus tablas:
Paso 3: Muchas veces ocurre que el grupo www-data en el caso de Debian, no tiene permisos de escritura en la carpeta de WordPress y por lo tanto no puede generar el archivo de configuración wp-config.php. Cómo nos informa lo podemos crear nosotros mismos copiando y pegando ese script, o bien arreglar los permisos y volver a intentarlo:
Arreglamos estos problemas mediante el comando chmod (recursivo)
chmod -R 775 www
Paso 4: Tras establecer bien los permisos, sí es capaz de escribir en el archivo de configuración:
Paso 5: Facilitamos la información del Blog, así como las credenciales para el DashBoard del primer usuario:
Paso 6: Fin de la instalación. Pues eso, lo lograste!
Y aquí tenemos los inicios de nuestro proyecto www.sospedia.net, con la plantilla por defecto de la versión 4.0 de WordPress y el maravilloso Hola Mundo 😉
Y esto, aunque un poquito largo, es todo amig@s. Por si algo no ha quedado claro os invito a ver este vídeo, sobre todo a partir del minuto 16:
Cómo siempre espero que os guste, y sobre todo que os sirva. Nos vemos en el siguiente artículo, aquí, en Sospedia.net
Pingback: Servidor Web Apache – SOSpedia punto net
excelente amigo, espero sigas compartiendo mas de tus conocimientos en linux,
saludos
gracias , muy buena explicacion.
sigue asi,
saludos,
espero mas de esta web.
Gracias a ti Osman por agradecernos nuestra labor en sospedia.net, seguiremos adelante, no lo dudes.
Si la gente comentase, agradeciera y compartiese en sus redes sociales los contenidos, de esta y otras webs, que les son de provecho, todavía tendríamos más fuerza y ganas de continuar.
Gracias de nuevo!
Saludos!
Pingback: Servidor Web Apache – SOSpedia
Pingback: Bonus Pack 2018: Recopilación de artículos de sospedia.net – jblanco.org
Pingback: Bonus Pack 2018: Recopilación de artículos de sospedia.net – Jose Blanco Vega