Crear un servidor web en Amazon EC2

Jan 28th, 2011 | Posted by | Filed under amazon, cloud, sysadmin, Virtualizacion, web

1. Apache

Instalar Apache (el servidor web) es realmente muy sencillo. Basta introducir el comando:

sudo aptitude install apache2

Podemos probar introduciendo en la barra de direcciones de nuestro navegador la dirección IP del servidor. Debe mostrar el mensaje “It works!”. ¿Más fácil imposible no?

Ahora podemos optimizar un poco la instalación y retocar alguna cosilla por seguridad. Abrimos el fichero de configuración usando el comando:

sudo nano /etc/apache2/apache2.conf

Como verás, el fichero está bien comentado. Es relativamente grande, pero debemos buscar las líneas en las que aparecen los siguientes parámetros y poner los valores que vienen a continuación:

Timeout 50
MaxKeepAliveRequests 500
KeepAliveTimeout 3

Esto sirve para mejorar las prestaciones del servidor. Como siempre, guardamos y salimos de nano. Ahora podemos instalar algún módulo que nos hará falta, y quitar otros que no vamos a usar (suponemos que el objetivo final es un sitios con Drupal o WP):

sudo a2enmod rewrite
sudo a2dismod cgi
sudo a2dismod autoindex

Para mejorar la seguridad, vamos a cambiar un parámetro para dar menos información a los visitantes del sitio acerca del sistema operativo y la versión de Apache que estamos usando. Hay muchas discusiones acerca de si la seguridad por ocultamiento es efectiva, pero en este caso no ganamos nada dando esta información y podemos evitar algún script que explote una vulnerabilidad que todavía no hayamos corregido en la versión que estemos usando. Abrimos el fichero de configuración:

sudo nano /etc/apache2/conf.d/security

Y cambiamos la línea:

ServerTokens Prod

Poniendo el valor Prod a ServerTokens, solo damos información de que estamos usando Apache (lo que está bien, ya que usamos su software gratis) pero no decimos qué versión usamos. Ahora ya solo falta reiniciar el Apache para que tome los valores de los ficheros de configuración:

sudo /usr/sbin/apache2ctl graceful

2. PHP

De nuevo, instalar PHP es muy fácil:

sudo aptitude install php5

Pero PHP es modular, y gran parte de la funcionalidad que vamos a necesitar está en módulos externos, que también son muy sencillos de instalar. Con un solo comando podemos instalar los más habituales, que son en general los que necesitamos para instalar después un CMS:

sudo aptitude install php5-mysql php5-curl php5-gd php5-idn  php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash  php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite  php5-tidy php5-xmlrpc php5-xsl php5-json

PHP también tiene un fichero de configuración, en el que debemos cambiar los parámetros de memoria y de ficheros, que por defecto son muy estrictos y pueden dar problemas si vamos a aceptar que nuestros usuarios suban ficheros grandes a nuestra web. Ojo, entre esos usuarios estamos nosotros mismos como administradores del sitio web. Como la interpretación de los parámetros es muy sencilla, cada uno puede establecer el valor que le parezca razonable para el uso que le dará a la web. Abrimos el fichero:

sudo nano /etc/php5/apache2/php.ini

Y buscamos y editamos las siguientes líneas:

memory_limit = 128M
upload_max_filesize = 128M
post_max_size = 128M

Grabamos y volvemos a reiniciar apache:

sudo /usr/sbin/apache2ctl graceful

Y ya tenemos PHP listo.

3. MySQL

Para instalar MySQL introducimos el comando:

sudo aptitude install mysql-server mysql-client

Nos pedirá una contraseña para root (ojo, este ‘root’ es solo de la base de datos, no tiene nada que ver con el ‘root’ de Ubuntu). Introducimos una contraseña de root que nos parezca adecuada y el resto “se instala solo”. Ya que tenemos PHP, es una buena idea instalar PHPMyAdmin, ya que facilita enormemente las tareas habituales de administración de la base de datos:

sudo aptitude install phpmyadmin

Podemos probarlo introduciendo en la barra de direcciones de nuestro navegador:

http://12.34.56.78/phpmyadmin

Lógicamente, cambiando 12.34.56.78 por la dirección IP de nuestro servidor. Debe aparecernos una pantalla como esta:

La cual por cierto demuestra que también hemos instalado correctamente PHP.

Para optimizar MySQL, lo más importante es habilitar el caché de queries. Lo hacemos editando el fichero de configuración my.cnf así:

sudo nano /etc/mysql/my.cnf

Como siempre, está todo comentado. Buscamos las líneas siguientes y ponemos estos valores:

query_cache_limit =4M
query_cache_size =32M

Ya solo queda reiniciar el servicio MySQL para que coja los parámetros:

sudo stop mysql
sudo start mysql

Y ya está, ya tenemos un servidor LAMP (Linux, Apache, MySQL, PHP) listo y preparado para montar sobre él WordPress, Drupal, Joomla! o cualquier otra aplicación que use estos servicios.

Fuente | alanta.info

Share
Comments are closed.