Últimos artículos
Loading...
viernes, 14 de agosto de 2009

Como tener un entorno de desarrollo-servidor para el desarrollador en PHP/MYSQL

viernes, agosto 14, 2009
Hoy vamos a cocinar rapidamente un entorno de desarrollo para empezar a programar en PHP y MSQL, ademas de configurar los host virtuales. Espero lo disfruten como lo hice yo al hacer el post.

Ingredientes:

1. Descargarte el paquete Xampp que viene con todo listo para sacar del envace y a la olla.
2. Permisos de root y conocimientos básicos de comandos y terminal.
3. Un editor de textos plano(cualquiera puede servir) para el tuto vamos a usar mousepad
4. Ganas de aprender algo que realmente va a ser muy util.

Empezamos:
Una vez descargado el paquete Xampp nos dirigimos a la carpeta donde lo descargamos para hacer la descompresión:
¿ Por que en la carpeta opt ? La carpeta opt es concebida para la instalación de paquetes que no requieren dependencias, para mantener un cierto orden.

Bien una vez que lo tenemos descomprimido, arrancamos el servicio simplemente en terminal lo arrancamos con : sudo /opt/lampp/lampp start




Para los que son reacios a la consola el paquete tiene un pequeño GUI para que podamos arrancar el servicio de manera visual, esta en la carpeta /opt/lampp/share/xampp-control-panel es un programa/script en python lo ejecutamos así:
$ sudo /opt/lampp/share/xampp-control-panel/xampp-control-panel

Como ven se nos abre el pequeño panel para arrancar y detener los servicios.
Ahora lo realmente divertido: abren su navegador favorito y simplemente abren el localhost, si todo se hizo bién deben tener esta emocionante página de bienvenida.

Bien, esta es la primera y última vez que veran esta pantalla, una vez que elijan el idioma se crea un archivo "lang.php" y no se vuelve a mostrar. La próxima vez que ingresen a travez de localhost van a ver esta pantalla:


Pueden explorar las opciones que nos dá, realmente muy intuitivo.
Como paso siguiente es configurar la seguridad, el paquete nos instala con todo por defecto(abierto) por ende totalmente inseguro.
Simplemente en el terminal ejecutan: sudo /opt/lampp/lampp security

Siguen los pasos(aunque esta todo en ingles es muy fácil de entender, si no a traducirlo), una vez terminado,  el servidor se reinicia y vamos a ver como quedo la seguridad:

Como ven deje abierto el servidor para que cualquier visitante pueda acceder a el(o lo que tengo alojado en el) simplemente con saber mi ip, luego publicare sobre como hacer un pequeño servidor web.
Ahora vamos por otro tema más que intersante.
Por defecto accedemos al servidor mediante localhost o 127.0.0.1 esta dirección por defecto nos muestra lo que tenemos en la carpeta htdocs(/opt/lampp/htdocs) Para completar nuestro entorno de desarrollo tenemos que tener cada proyecto en una carpeta distinta dentro de htdocs:
/opt/lampp/htdocs/web1/index.php
/opt/lampp/htdocs/web2/index.php
Etc.
Si intentan crear una carpeta dentro de htdocs veran que no se puede, que requiere permisos de root, si solo tienen un par de proyectos esto no es problema simplemente con un sudo mkdir /opt/lampp/htdocs/web1 lo crean y empiezan a trabajar, pero esta carpeta va a heredar los permisos de root le tendriamos que dar permisos 777 a nuestra carpeta de proyecto, esto esta bien si tenemos un par de carpetas, pero en mi caso tengo a veces 20 o 30 carpetas y estar dando permisos de acá para allá es un poco engorroso. Y no intenten darle permisos 777 a toda la carpeta htdocs.
Pues bién les voy a mostrar la manera en que yo lo hago.
Dentro de mi carpeta htdocs creo una general para mi uso llamada webs: 
$ sudo mkdir /opt/lampp/htdocs/webs
Bien esta va a heredar los permisos del usuario que la creo en este caso root, y nosotros usuarios mortales no vamos a tener acceso a ella. Entonces nos apropiamos de ella:  
$ sudo chown usuario -R /opt/lampp/htdocs/webs
¿Por que -R?  recursivamente todo lo que creemos dentro va a ser del nuevo usuario. para tener un control total de la carpeta vamos a darle permisos totales(esto en un entorno de desarrollo personal no es inseguro, si vamos a darle acceso al público debes usar 775):
$ sudo chmod 777 -R /opt/lampp/htdocs/webs 
Bién tenemos ahora control total para hacer y deshacer lo que este dentro de esta carpeta como un usuario normal(propietario de esta carpeta). Para conveniencia me gusta crear un enlace simbolico en mi carpeta personal: 
$ ln -s /opt/lampp/htdocs/webs /home/usuario


Esto me permite trabajar más comodamente.
Bién ahora vamos a configurar nuestro host virtual. ¿Pero que es eso? Un virtualhost en pocas palabras es una ruta virtual que vamos a darle a nuestro servidor indicandole donde tiene que buscar y que mostrarnos, por ejemplo si tenemos un proyecto(carpeta) en nuestra carpeta webs vamos a tenerlo que llamarlo inevitablemente con http://localhost/webs/proyecto1/index.* si configuramos un host virtual podriamos llamarlo simplemente con:
http://proyecto1
interesante eh!, se pone más intersante por que si en nuestro proyecto usamos rutas relativas(a la raiz) nos va dirigir a la raiz correcta en este caso http://proyecto1/ y no vamos a tener problemas cuando lo subamos a un servidor de producción.
Bien empezemos
Por defecto no trae configurado ningun hostvirtual hay que ir por el,  normalmente está  en el archivo: 
$ sudo mousepad /opt/lampp/etc/httpd.conf
pero en este paquete  tenemos un enlace interno a otro archivo donde se configuran los virtualhost, buscamos dentro de httpd.conf una vez abierto como root la linea  que contiene
#Include etc/extra/httpd-vhosts.conf
Y le descomentamos quitando  #
Include etc/extra/httpd-vhosts.conf

Bién ahora nos toca ir por el archivo httpd-vhosts.conf lo abrimos como root
sudo mousepad /opt/lampp/etc/extra/httpd-vhosts.conf



Vemos que tiene un ejemplo de como cofigurar un host virtual, no nos vamos a detener en los detalles simplemente en la creación del host:

añadimos la siguiente directiva
1  
<VirtualHost *:80>
2  
3      DocumentRoot /opt/lampp/htdocs/webs/proyecto1
4      ServerName proyecto1
5  </VirtualHost>


 Se entiende que DocumentRoot es la  ruta absoluta a nuestro proyecto y el ServerName es el nombre del Virtualhost o como vamos a llamar a travez del navegador a nuestra carpeta de proyecto. Bien una vez agregado la directiva guardamos y cerramos el archivo, reiniciamos el servidor.
sudo /opt/lampp/lampp restart 
Pero aún falta un detalle, le hemos dicho al servidor donde esta nuestro proyecto pero no a nuestra máquina, por defecto nuestro PC va  a tratar de resolver las direcciones externamente es decir si ahora escibimos en el navegador http://proyecto1 nos va a dar un error de pagina no encontrada, la solución a esto se encuentra en el archivo /etc/hosts lo abrimos: sudo mousepad /etc/hosts 
Como ven le agregue una nueva directiva:
127.0.0.1 proyecto1
Guardan el archivo y ahora si en el navegador escribimos la ruta http://proyecto1 nos va a enrutar a la carpeta de nuestro proyecto.

Para la acción escibi un archivo index.php que contiene:
1  
<?php
2  phpinfo
();
3  
?>

Si hemos seguido todo al pie de la letra tendria que mostrarnos la siguiente ventana con los datos o la información del servidor:

Y listo colorin colorado me voy a tomar unas cervezas. Ya se que no rima, pero a estas alturas que importa. ñ.ñ
Dudas, comentarios sugerencias son bienvenidas.

0 Comentarios:

Publicar un comentario

 
Toggle Footer