miércoles, 6 de julio de 2011

GUIA PRACTICA FREEBSD Y APACHE,MYSQL Y PHP


 
Servidores AMP y su elección

Actualmente los servicios Web son los principales dolores de cabeza de todos los técnicos e Ingenieros TI en la comarca Hispana, sobre todo en Venezuela. Muchas veces usamos soluciones baratas y rápidas, como Wampp, Xampp y paren de contar, para salir del caso, adaptándolos a las maquinas o los servidores disponibles, pero pocas veces se planifica una instalación AMP (Apache, Mysql y PHP) desde cero, eligiendo el mejor Sistema Operativo de Servidor.
 Durante varios años, observe muchos sistemas, y sobre todo, observando a los grandes, es que se aprende cuales son los verdaderos gañotes o sementales del rendimiento en las grandes ligas de los servidores. Uno de ellos es la familia BSD. Note su presencia, cuando descubri que Microsoft, mantenía todo su hosting de Hotmail y de otros servicios sobre FreeBSD y no sobre sus propias plataformas. Esto me hizo ahondar más y entrar en el mundo del BSD.

FreeBSD como Servidor


FreeBSD es un sistema operativo integral, gratuito y libre, que está basado en el sistema UNIX de Bekerley. Es rápido, preciso y tiene una buena comunidad que le da manteamiento. Es además compatible con Linux, y tiene un sistema de repositorio estable y funcional, con binarios precompilados y ports de otros sistemas.
¿En que destaca FreeBSD sobre los demás?
1.- Estabilidad y Seguridad
FreeBSD, por basarse completamente en Unix, es una fiera al momento de estabilidad y seguridad, viene blindado por defecto, y tiene, muchísimos menos fallas de seguridad que su primo Linux o su Tio Solaris. Incluso hay una Distribucion, NetBSD que se mofa de ser la mas segura del mundo. Ademas, su diseño de multitareas y multiprocesos, optimizado para multiprocesadores, permite manejar tareas gigantes, y portar aplicaciones de otros sistemas unix, sin cambiar e inclusive sin precompilar nada!
2.- Filtro de paquetes y rutinas de Red. En este aspecto, se lleva por mucho a otras plataformas de red, con solo saber que Windows NT se fusilo por completo esta parte, es mucho decir. BSD consta de muchas rutinas de mantenimiento y administración que facilitan las cosas, y además el filtrado de paquetes es espectacular, prácticamente FreeBSD es un firewall ambulante, no falta instalar uno porque el sistema ya lo es.
3.- Derechos y Software Libre, a diferencia de Linux y muchas de sus distros, que incluyen fundamentales paquetes privados, freeBSD tiene una licencia fantástica que permite hacer con ella lo que una quiera, hasta lucrar, sin responder a nadie. No te obliga, como los Linux a dejarla libre, por ello, Apple y Sun, tienen todo o parte de sus sistemas copiados completamente de BSD!
Una vez finiquitados estos puntos, podemos decir que elegir a FreeBSD como servidor es una buena opción, pero si esta lo es, ¿Por qué en Venezuela nadie lo usa? Solo hay referencias perdidas en algunos foros de VELUG y no hay nada en español.  Esto se debe a que BSD no es fácil, y su nivel de complejidad es mayor que otros sistemas, al momento de utilizarlo y administrarlo. Ejemplo claro de ello, es que no existe un AMP automatizado como en otros sistemas. Para servidores es normal, los admins estamos acostumbrados a terminales y líneas de código y comandos. Si desean usar el BSD para escritorio, usen el PC-BSD(http://www.pcbsd.org/pc-bsd), que es una distro basada en Free-BSD, que viene con KDE y todos los juguetes, incluyendo una instalación en modo grafico facilísima, y con todo automatizado, casi igual a Windows. Fue elegida por muchas revistas como el sistema más amigable hace un par de años.
 El Amp paca se hace a pie, y se debe bajar primero los ports de cada programa antes de instalarlos y usarlos. Me enfocare brevemente, en una mini guía para poder hacerlo de forma rápido, luego de haber terminado de instalar nuestro FreeBSD.

 

 

PRIMER PASO:
Instalación de FreeBSD y Plataforma.


Se debe bajar el ultimo ISO, preferiblemente el DVD de la pagina de FreeBSD:


Seleccione la versión que mas le convenga, como yo trabaje con un servidor Vm-Sphere, escogi una versión de 32 bits, para no forzar mucho mi ya colapsado servidor virtual de pruebas.



Si están virtualizando (Es lo mejor para practicar instalaciones y monitorearlas), creen una maquina virtual con sistema libre, de 32 bits, y carguen el DVD de FreeBSD en el arranque, probaremos con la versión 8.2 que es la mas actual!.
Despues de arrancar del DVD sale una pantalla asi:

Y después la instalación paso a paso en modo texto, es similar a las de Linux Distros.





Para virtualizar, se puede usar VirtualBox de Sun(http://www.virtualbox.org/) o VMSphere gratuito solo para dos procesadores (https://www.vmware.com/tryvmware/index.php?p=vmware-vsphere&lp=default)







Una vez concluida la instalación, se debe hacer énfasis en instalar toda la biblioteca de Ports para ganar tiempo, esto se hace con el comando “Sysinstall” y seleccionando “Configure”.


SEGUNDO PASO:

BAJANDO Y ACTUALIZANDO PAQUETES

Debes haber instalado previamente, las siguientes release de los ports:
1.       Apache 2.2
2.       Mysql 5
3.       PHP 5
4.       PHPMyadmin
Si no los tienes debes usar el comando pkg_add, como ven:
pkg_add /tmp/apache-2.2.6_2.tbz
bajara apache, deben averiguar el nombre de los paquetes en : http://www.freebsd.org/ports/index.html

Donde se encuentran todos los ports, de allí se pueden usar también los comandos de repositorio:
Portsnap o CVSup
Recomiendo usar el el SysInstall que es más fácil y grafico. Luego de tener todo en el Disco Local, debes iniciar sesión como root, o como admin con control total, es necesario para todos los procesos posteriores!

TERCER PASO

Instalación de un Sistema Funcional

MYSQL

Se accede directamente al directorio del port instalado en mi caso es este:
cd /usr/ports/databases/mysql50-server
Se debe construir o compilar:
make BUILD_OPTIMIZED=yes BUILD_STATIC=yes
Luego se instala:
make install clean
Luego se abre /etc/rc.conf, el archive de arranque de sistema y configuración, y se active esta línea de código o se agrega, en mi lugar use Vii
mysql_enable="YES"
Se arranca el servicio a mano, usando la línea de código:
/usr/local/etc/rc.d/mysql-server start
Se le coloca un password Nuevo, para ponerle seguridad:
/usr/local/bin/mysqladmin -uroot password 'mi_clave'
Listo, tenemos MySQL andando e instalado.

APACHE

Al igual que con MYSQL, se accede al directorio del port:
cd /usr/ports/www/apache22
Se compila e instala:
make install clean
Se activa esta línea en el archivo /rtc/rc.conf para que arranque al inicio
apache22_enable="YES"
Tenemos apache listo, reiniciamos y esperamos acceder al navegador con Localhost, para ver si esta caminando.
Si queremos arrancarlo a mano le damos:
/usr/local/etc/rc.d/apache22 start
Esto termina con un apache listo y hosteando

PHP

Una vez asegurados, que tenemos instalado bien el Apache, vamos al directorio de port de php, si Apache no está funcionando, el php dara problemas
cd /usr/ports/lang/php5
Compilamos e instalamos
make install clean
Generalmente aparece una pantalla azul con opciones, seleccionamos las que nos convengan y le damos [ok]
Si falta algun modulo, el se conectara a los repositorios hasta que baje lo que falta, generalmente el que funciona es ftp.freeBSD.org
El siguiente paso es cambiar el nombre o copiamos de el php.ini original:
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
Editamos en el archivo de configuración de Apache (/usr/local/etc/apache22/httpd.conf) y agregamos las siguientes líneas para activar PHP:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Agregamos “index.php” en la línea de Directory Index, que quede asi:
DirectoryIndex index.php index.html
Removemos el comentario o # de la línea siguiente:
#Include etc/apache22/extra/httpd-languages.conf
Para que quede asi:
Include etc/apache22/extra/httpd-languages.conf
Editamos el archivo /usr/local/etc/apache22/extra/httpd-languages.conf y agregamos esta línea al final:
AddDefaultCharset On
Si no hemos  Arrancamos Apache le damos:
/usr/local/etc/rc.d/apache22 start
Y ya esta instalado Apache con PHPl

phpMyAdmin


Vamos al directorio del port como siempre:
cd /usr/ports/databases/phpmyadmin
Lo compilamos fresquito:
make install clean
Al terminar, lo tendremos instalado en /usr/local/www/phpMyAdmin, ahora abrimos el archivo /usr/local/etc/apache22/httpd.conf y agregamos la siguiente línea en el modulo :
Alias /phpmyadmin /usr/local/www/phpMyAdmin
En ese mismo archivo, agregamos el path del phpMyAdmin, en la parte de :
<Directory "/usr/local/www/phpMyAdmin">
        Order allow,deny
        Allow from all
Cambiamos los atributos globales:
cd /usr/local/www/phpMyAdmin
mkdir config
chmod 777 config
Rearrancamos Apache para probar:
/usr/local/etc/rc.d/apache22 restart
Entramos por el navegador a http://hostname/phpmyadmin/scripts/setup.php y configuramos el phpMyADMIN, luego, copiamos el archivo de config dentro del directorio phpMyAdmin desde el Directorio Config, donde esta:
cp config/config.inc.php
Borramos el directorio de configuración por seguridad, y le ponemos solo lectura al respaldo:
rm -rf config
chmod 444 config.inc.php

Y Listo, tenemos el AMP en FreeBSD caminando y dispuesto!!