Crear un servidor web en una instancia de AWS

Vamos a crear, para este ejemplo, un servidor Web en una instancia de Amazon Web Services con CentOS. Si todavía no tenéis ninguna instancia, podéis seguir nuestro tutorial sobre Como crear una instancia gratuita en Amazon Web Services (AWS).

Para que nuestra instancia trabaje como servidor web, tenemos que instalar el software necesario, además de asegurarnos que tenemos abiertos los puertos para HTTP y HTTPS (ver en nuestro post citado cómo abrir puertos utilizando los Grupos de Seguridad).

(Este pequeño tutorial se basa en los pasos indicados en la página de Amazon, con algunos cambios actualizados.)

Instalación y configuración del software necesario para el servidor web

El software que necesitamos es el Apache Web Server, el MySQL y el PHP. Abrimos la consola (ver post citado) y mediante la siguiente instrucción lo instalamos

sudo yum groupinstall -y "Web Server" "MySQL Database" "PHP Support"

Tras cada instalación nos aseguramos de que no hay errores y de que vemos el mensaje de la consola Complete! o similiar.

Instalamos el paquete php-mysql:

sudo yum install -y php-mysql

E iniciamos el servidor Apache

sudo service httpd start

Si vemos un [OK] verde es que todo está correcto

Utilizamos el comando chkconfig para inicializar el servidor Apache con cada reinicio de máquina:

sudo chkconfig httpd on

Para probar que definitivamente estamos en la www, ponemos nuestro dns público o nuestra ip pública en un navegador, y si vemos la página de test es que todo está correcto.

Poder empezar a poner contenido en nuestra web en /var/www/html. Esta localización por defecto es del usuario root; tenemos que modificar los permisos y las propiedades. Para ello creareemos un grupo www y le daremos permisos y propiedades para el directorio /var/www, de manera que cualquier miembros de este grupo pueda trabajar allí. Añadimos el grupo:

sudo groupadd www

Añadimos nuestro usuario en el grupo:

sudo usermod -a -G www ec2-user

Salimos y volvemos a entrar para que el grupo se actualice:

exit
ssh…

Una vez hemos vuelto a entrar confirmamos el grupo:

groups

que nos dará:

ec2-user wheel www

Cambiamos la propiedad de /var/www y su contenido al grupo www:

sudo chown -R root:www /var/www

Cambiamos los permisos de /var/www y sus subdirectorios:

sudo chmod 2775 /var/www

Nos aseguramos de que cualquier nuevo directorio tendrá los mismos permisos:

find /var/www -type d -exec sudo chmod 2775 {} +
find /var/www -type f -exec sudo chmod 0664 {} +

Probamos que todo está correcto creando un fichero .php:

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

Y ahora volvemos a cargar en un navegador nuestra ip o dns / phpinfo.php.

¡Si vemos la página de php es que todo está correcto!

La eliminamos por razones de seguridad:

rm /var/www/html/phpinfo.php

 

Pasos para securizar nuestra instalación de mysql en el servidor

Inicializamos el servidor mysql:

sudo service mysqld start

Inicializamos la instalación segura de mysql:

sudo mysql_secure_installation

Y seguimos los pasos:

Introducimos una contraseña para el usurio root de mysql (simplemente ENTER, puesto que no hemos puesto ninguna).

Cambiamos la password: Y e introducimos la password

Quitamos el usuario anónimo: Y

Quitamos acceso externo de root: Y

Borramos la base de datos test: Y

Volvemos a generar las tablas de privilegios: Y

¡Y ya está!

 

 

WordPress – Poner un anuncio entre el primer y segundo post

Una de las preguntas que nos hacemos todos al empezar a jugar con Google AdSense es: ¿cómo lo hacen para poner anuncios entre el primer y segundo post en la página principal?

Hay varias opciones, desde plugins hasta la más sencilla, que es la que os propongo: añadirlo a pelo en el código:

 

1) En el área de administración id a Apariencia → Editor → Plantilla de la página principal (index.php).

Lugar en que insertar el código

Lugar en que insertar el código

2) Localizad la parte del código en que se generan los posts:

<?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>

3) Justo antes del  endwhile poned el código que necesitáis para vuestro anuncio de la siguiente manera:

<?php while ( have_posts() ) : the_post(); ?>
    <?php get_template_part( 'content', get_post_format() ); ?>
    
    <?php if ($count == 0) : ?>
          <script type="text/javascript">
          Tú código
          </script>
    <?php endif; $count++; ?>

<?php endwhile; ?>

 

¡Y ya está! ¡Fácil!

Recordad que es muy aconsejable no modificar la plantilla original, entre otras cosas porque si hay alguna actualización del tema que utilicéis, vuestros cambios se perderán. Lo mejor, por lo tanto, es seguir los consejos de WordPress acerca de la personalización de un tema mediante theme childs.

 

 

Interactuar con Worpdress: hooks, acciones y filtros

Hooks en WordPress

Los hooks (o ganchos) son la manera estándar de conectar (to hook) con WordPress desde un código propio. Con los hooks puedes ejecutar funciones en momentos específicos. Es la manera de hacer plugins o de interactuar con el Core de WordPress. Es importante mantener intacto el Core de WordPress, ya que, si no, en futuras actualizaciones podríamos perder toda nuestra funcionalidad.
Continue reading

El Codex de WordPress

Todos los que publicamos y creamos páginas web con WordPress, tenemos tarde o temprano que modificar o incluso crear funcionalidades, ya sea mediante plugins, widgets, funciones, etc. Para ello es bueno tener a mano tutoriales, pero sobre todo es imprescindible saber qué puede ofrecerte el Codex de WordPress, es decir, la wiki donde todo el conocimiento sobre WordPress está almacenado.
Continue reading