5.21.2010

Configurando y poniendo a punto un VPS

Bueno, hace un par de dias, por fin, conseguimos el dinero que necesitabamos para contratar un VPS por 6 meses. Pensando en implementarlo en promosoluciones.net. personalmente, pense que se trataba de algo muy sencillo, y es el momento, no habia trabajado con mas que con servidores compartidos. 



Cual fue mi sospresa cuando descubri que mi VPS no incluia ningun panel de control. 

Mucho mas frustrante fue el hecho de no encontrar documentacion apropiada y en español para configurar mi servidor. Asi pues. Me decidi a escribir un articulo, quizas algo extenso pero que incluya mi experiencia personal. Quizas pueda ser de utilidad a alguien en mi situacion.




Contratando un VPS

Es importante considerar, a la hora de contratar un servidor privado cuales son nuestras necesidades especificas. Visitar diferentes proveedores de hosting y ponerse en contacto con ellos para plantear preguntas especificas sobre el script que planeamos instalar, y el uso que pensamos darle al servidor. Para promo-soluciones.net el servidor que mas se adecuo a nuestras necesidades fue Hostgator

Ahora, contratar un VPS requiere un proceso mas extenso de verificacion, cabe señalar que un VPS es bastante mas costoso que un servidor compartido comun y corriente. es por eso, que considere, que el Level 2. se adecuaba a mis necesidades.


Ahora, Si quisieras obviar este tutorial. Podrias contratar un VPS configurado con Cpanel, pero claro que su costo es mayor. 


El Panel de Control

Una vez que hayas concluido con la contratacion del servicio, tu proveedor de hosting te brindara algunos detalles importantes, en mi caso, al contratar un VPS con el panel VZ he recibido los siguientes detalles:




Entre los detalles suministrados, podemos observar el Power Panel (VZ), Vamos a apuntar nuestro navegador para acceder al Panel de control. Una vez nos hayamos logeado, veremos algo como esto:


Probablemente, las secciones que mas utilizaremos durante este tutorial, seran la Administracion de Archivos y la conexion SSH. Ahora, cabe mencionar, que dicho panel de control, sirve de escritorio virtual a nuestro VPS. 

En general, tenemos acceso root al sistema, es decir al propio sistema operativo de nuestro servidor. Cabe mencionar que en mi caso, mi sistema operativo es CentOS. 

Ahora, si bien tener acceso root es algo exelente, pues no tenemos limitantes en cuanto al software que deseemos instalar. Implica que todas las pre-configuraciones a las que estamos acostumbrados en los hosting compartidos no existen. Porque NOSOTROS seremos en esta ocasion los sysadmin. Es decir, quienes debemos configurar el sistema.

Instalando Apache, PHP, MySQL, Filezilla y phpMyAdmin

Es probablemente la parte mas complicada del tutorial, al menos fue la parte que me resulto mas problematica. Trabajando en un SO desconocido, tanto en su sitnaxis como en su estructura. La verdad resulto un proceso un poco mas complejo de lo esperado. Sin embargo, Aqui lo resumo y les evito googlear lo que yo google para encontrar algunas respuestas.

Es probable que su servidor, venga preconfigurado con apache instalado. En Hostgator, es asi, sin embargo, php y mysql no estaban instalados, por lo que hubo que hacerlo manual. Ahora. Personalmente, decidi utilizar xampp, por haberlo usado antes en Ubuntu. Ademas de ser mi SO algo antiguo y sus repositorios estar obsoletos. (teniendo en cuenta que no se absolutamente nada de CentOS tampoco pude actualizar la lista)

Bien, manos a la obra; vamos a ir a nuestro panel de control, en la pestaña Conexion SSH.. y nos logearemos con los datos que nos ha suministrado nuestro proveedor de servicio.


Es solo la terminal de nuestra distribucion, y todas las operaciones deberemos realizarlas a travez de esta pantallita, para quienes no estamos acostumbrados a trabajar en "modo-texto" puede ser algo incomodo, pero resulta que la adaptacion es mucho mas rapida.

Vamos a obtener xampp desde nuestro servidor, para eso nos dirigiremos a la carpeta  /opt escribiendo en la terminal

cd /opt

Una vez hecho esto, vamos a a escribir

wget http://downloads.sourceforge.net/project/xampp/XAMPP%20Linux/1.7.3a/xampp-linux-1.7.3a.tar.gz?use_mirror=hivelocity

Veremos el proceso de descarga desde nuestra terminal, se descargara un paquete que pesa unos 60mb, sin embargo con la velocidad de descarga de nuestro servidor 5 o 7 mbs/s no tardara mas de unos segundos en completarse la operacion.

Ahora, vamos a descomprimir el archivo, para eso vamos a escribir en nuestra terminal.

tar xzf xampp-linux-1.5.4a.tar.gz

Si todo ha salido bien, podremos ver desde nuestro gestor de archivos en el VZ power panel, algo asi:



Eso significa que hemos instalado correctamente xampp, pero ahora, debemos detener nuestro servidor apache, si es que esta corriendo para poder iniciarlo desde lampp, para eso vamos a escribir en la terminal

/etc/init.d/httpd stop
Nos deberia de aparecer un mensaje diciendo que se ha detenido el servicio con exito, ahora vamos a iniciar lampp

/opt/lampp/lampp start

Si todos los servicios se han iniciado correctamente, enhorabuena! hemos logrado instalar apache, php, mysql, phpmyadmin, y filezilla. 


Pero claro, Seria muy facil si todo hubiera funcionado tal y como se esperaba que funcionara. Sin embargo, es muy posible que hayan surgido ciertos problemas.


Posibles Problemas

XAMPP: Another MySQL daemon is already running

Significa que hay un servicio MySQL ejecutandose y debe detenerse, esto se puede hacer facilmente escribiendo

/etc/init.d/mysqld stop

Eventualmente veriamos un mensaje que indique, el servicio se ha detenido, pero tambien existe la posibilidad de que el servicio no se pueda detener y nos aparezca un tragico [FAIL]

Para solucionar este problema, vamos, en primer lugar a reinstalar mysql, para despues poder detenerlo. Asi pues, vamos hacer lo siguiente:

1.
yum -y remove mysql mysql-server
2.
yum install mysql mysql-server
 3.

 /etc/init.d/mysqld stop

4.

yum -y remove  mysql mysql-server

5.

rm -rf /var/lib/mysql

6.

 chmod 1777 /tmp
 7.

  yum  -y install mysql mysql-server

8.

/etc/init.d/mysqld restart

9.

/etc/init.d/mysqld stop

Si se pudo detener con exito el servicio, entonces ahora si podran iniciar lampp escribiendosi el servicio lo habian logrado iniciar

/opt/lampp/lampp restart

Y si lo habian detenenido, bastara con escribir

/opt/lampp/lampp start

Una vez hemos logrado que el sitio se inicie correctamente, podriamos visualizarlo desde la IP que nuestro proveedor de hosting nos asigno, sin embargo, es posible que nos encontremos con un mensaje indicandonos que nuestro sitio solo es accesible desde una red local.


Configurando XAMPP

Esto es por un nuevo moldulo que ha implementado Xampp, para poder desbloquearlo, vamos a dirigirnos desde nuestro gestor de archivos en el panel de control a /opt/lampp/etc/extra/httpd-xampp.conf

Veremos algo como esto:


 Y lo que haremos sera comentar la linea que dice:

                Deny from all

La dejaremos asi:

          #    Deny from all

Una vez realizado este cambio, podremos acceder a nuestro sitio a travez de nuestra IP, y veremos algo como esto:


Sin embargo, coincidiran conmigo en que esto es sumamente inseguro, por eso, vamos a asignar contraseña al directorio http://suip/xampp y a todos los servicios derivados de este paquete, para eso vamos a ejecutar en nuestra terminal

opt/lampp/lampp security

Un asistente nos ayudara con el proceso de asegurar nuestra instalacion de xampp

XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes] yes (1)
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Password protection active. Please use 'lampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Write the passworde somewhere down to make sure you won't forget it!!!
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Setting new MySQL root password.
XAMPP: Setting phpMyAdmin's root password to the new one.
XAMPP: The FTP password for user 'nobody' is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] yes
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Reload ProFTPD...
XAMPP: Done.


Recuerden anotar todos estos passwords conforme los vallan colocando.
Ahora, podemos acceder a nuestro servidor utilizando un cliente FTP, por ejemplo Filezilla o bien CuteFTP, escribiendo en "host" o "server" la IP de nuestro sitio, en user, escribimos "nobody" y en "password" el password que le asignamos al user nobody durante la configuracion de seguridad de xampp. 



Instalando un panel de control


Un panel de control es sumamente util para gestionar algunos recursos del servidor que de otra manera pueden ser algo tediosos, por eso, vamos a instalar el panel de control webmin. Hasta aqui llegara el tutorial, ya el resto es mas sencillo y la verdad este tutorial se alargo un poco.

Si queremos utilizar webmin tenemos que instalar perl (un lenguaje de programacion usado por webmin) openssl (para acceder a las paginas de webmin de modo seguro) y perl-Net-SSLeay, una extension en perl para el uso de openssl. Instalamos los programas necesarios con el comando (distribucion centos):


yum install perl openssl openssl-devel perl-Net-SSLeay

Creamos una carpeta donde vamos a instalar webmin

mkdir /opt/lampp/htdocs/webmin

Nos posicionamos en la carpeta /usr/src y escribimos el siguiente comando:

cd /usr/src
Descargamos el Webmin

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.500/webmin-1.500.tar.gz?use_mirror=ufpr

Decomprimimos el programa:


tar -xf webmin-1.500.tar.gz

entramos en la carpeta creada desde la consola:

cd webmin-1.510

E iniciamos la instalacion

./setup.sh /usr/local/webmin

damos Enter

aparecera: Log file directory [/var/webmin]

damos Enter

aparecera: Full path to perl (default /usr/bin/perl):

damos Enter

aparecera: Web server port: (default 10000):

escribimos 25000 y damos Enter


Escogemos un nombre de usuario de administrador, una contrasena, la repetimos, elegimos usar SSL (opcional) y le decimos que queremos que webmin arranque al boot de nuestro servidor linux.

Una vez terminada la instalacion podremos empezar a usar nuestro sistema de administracion abriendo Firefox (o otro navegador) y apuntando a: 

www.example.com:25000





Ahora, para poder agregar su dominio desde el panel de control, esta en dependencia de sus dns y su configuracion personal, sin embargo, puede serles util esta inforacion: http://forums.devshed.com/dns-36/setting-up-dns-using-webmin-406190.html

Espero este tutorial les haya sevido, y se eviten tantos problemas a la hora de configurar su VPS, como siempre a la espera de sus comentarios

Un Saludo
MzStudios





12 comentarios:

Macro Black dijo...

Deinitivamente Util! xD yo fui testigo del trauma y frustracion cuando vimos ese host en cero! cero de lo que es cero! xD O.o


Muy buen tuto espero no te haya tomado todo un dia como te tomo intalarlo xD lol


Esto es muy util desde el que no sabe nada hasta para el mas experto dudo mucho que los que tienen paginas sepan como instalar un VPS..


U.u al menos para mi es nuevo pero en fin disfruen del buen post..

y no se estresen juas !

Xy dijo...

genial se va a mi biblioteca ;)

jose manuel dijo...

Francamente, me parece una locura poner un servidor XAMPP con producción online... es un coladero de fallos de seguridad.
Si vas a instalar webmin, mejor instala virtualmin directamente que te configura LAMP solo ejecutando el instalador.
Y ya de paso, en www.vpsdeploy.com tienes servidores más baratos que Hostgator ;)

Un saludo!!

MzStudios dijo...

@Jose Manuel

Gracias por el comentario, pues me vi en la necesidad de instalar xampp ante la inexperiencia y falta de documentacion. Por otro lado, el S.O que incluia mi VPS era verdaderamente viejo y el software disponible en sus repositorios no estaba actualizado (aun PHP4).

Gracias por el sitio, vamos a checarlo ;)

Anónimo dijo...

gracias por tu tutorial ... yo compre uno pero la verdad no le entendia nada

Anónimo dijo...

Me parece buen post.

Anónimo dijo...

Buen post, Igualmente te digo mi experiencia:
Yo contrate un VPS en Allytech, me preguntaron que queria instalar y ellos se encargaron de todo y la verdad que todo funciona de 10 con la ventaja de tener soporte en Argentina.
Claro que pago un poco mas que lo que vos pagaste en Hostgator (yo pago U$S65 x mes) pero almenos para mi vale la pena.
Saludos!

Anónimo dijo...

Excelente tuto, llegue googleando problemas con el VPS pero esto me soluciona!

Bloggeritox dijo...

buenisimo....
Para cuando me toque verlo en clases me vengo para aca...
gracias!

Anónimo dijo...

hola! no puedo pasar del paso 1, no puedo escribir esto:
wget
http://downloads.sourceforge.net/project/xampp/XAMPP%20Linux/1.7.3a/xampp-linux-1.7.3a.tar.gz?use_mirror=hivelocity

no me alcanza el campo de escritura como le hagooo? :(

Anónimo dijo...

a mi me pasaba lo mismo, ni siquiera podía descargar el xampp, entonces desde consola me instale link2 asi,

sudo apt-get install links2
luego link2 www.apachefriends.org y ahi navegué en la consola hasta descargarlo, luego continue con tar ...

Blogger dijo...

DreamHost is the best hosting company for any hosting plans you might need.

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Design Blog, Make Online Money