viernes, 19 de febrero de 2016

Implementar un servidor FAMP (FreeBSD, Apache, MySQL, PHP): Instalando Servidor Web Apache en FreeBSD

Con esta entrada estaré dando inicio a la publicacion de una serie de recetas que logre recopilar y aplicar, con el fin de realizar la implementacion de un servidor FAMP (FreeBSD, Apache, MySQL, PHP). La importancia de realizar este tipo de implementaciones radica en que muchos paquetes se basan en esta arquitectura para desplegar sus paginas de visualizacion y administracion, tales como Nagios, GLPI, Smokeping, etc.

En esta primera entrada se va a explicar el proceso detallado de instalacion de un servidor web Apache en el sistema operativo FreeBSD, el cual se va a realizar desde los ports incluidos en el mismo para tal fin.

La gran ventaja de realizar la instalacion en un sistema FreeBSD desde los ports, es que esta completamente adecuado al sistema y realiza automaticamente la instalacion de todas las dependencias necesarias sin la intervencion del usuario o sin la necesidad de agregar repositorios ni nada adicional.

Para las referencias de como realizar la instalacion del sistema operativo FreeBSD, se puede revisar la entrada que trata ese tema en el siguiente enlace


Primeramente nos ubicamos en el directorio correspondiente para realizar la instalación
cd  /usr/ports/www/apache24


    A continuación ejecutamos el comando para realizar la instalación del paquete
make install clean


    Con la ejecución de este comando comienza la instalación del servidor web apache y de todos los paquetes necesarios para su funcionamiento en nuestro sistema.

    Se debe recordar activar el soporte para MySQL, PostgreSQL y LDAP en el servidor apache y todos los módulos instalados para el correcto funcionamiento del servidor que se está implementando.






    En la siguiente ventana de configuración se debe tener el cuidado de habilitar el soporte de apache para las bases de datos con las cuales vamos a trabajar.



    Una vez culminada la instalación del servidor apache, se procede a automatizar el inicio del servicio al arrancar el sistema, editando el archivo /etc/rc.conf y agregando la siguiente línea.
vi  /etc/rc.conf
apache24_enable=”YES”



    Antes de iniciar el servicio, se debe registrar nuestro servidor en el archivo /etc/hosts, con el fin que el servicio reconozca localmente el nombre del mismo, es como un DNS local.
vi  /etc/hosts


    Para determinar el nombre de nuestro servidor usamos el siguiente comando
hostname


    Registramos nuestro servidor comentando la línea original y agregando la línea respectiva en el archivo /etc/hosts


    Ahora procedemos a editar el archivo httpd.conf para configurar nuestro servidor apache
cd  /usr/local/etc/apache24


    Realizamos una copia de respaldo del archivo de configuración de apache httpd.conf antes de editarlo
cp httpd.conf httpd.conf.old


    Editamos el archivo httpd.conf
vi  httpd.conf


    Descomentamos la línea de ServerName y le colocamos una dirección de dominio completamente calificada.


    En caso de no tener registrado nuestro servidor Apache en un DNS, se puede usar una línea con la dirección ip que identifica nuestro servidor como se muestra a continuación.
ServerName 192.168.1.1:80

    Adicionalmente se debe crear o editar el archivo /boot/loader.conf y agregar las siguientes líneas
accf_http_load=”YES”
accf_data_load=”YES”
kern.ipc.somaxconn=1024

Antes de iniciar el servicio Apache, debemos comprobar la sintaxis de configuracion del mismo, mediante el siguiente comando
apacheclt configtest

    A continuación lo que debemos hacer es iniciar el servicio apache para comprobar que funciona correctamente. Es perfectamente valido para esta accion, uno cualquiera de los siguientes comandos, los tres comandos indicados a continuacion realizan exactamente la misma funcion:
service apache24 start
apachectl start
/usr/local/etc/rc.d/apache24 start

    Una vez iniciado el servicio procedemos a abrir nuestro navegador y colocar en la barra de direcciones la dirección ip de nuestro equipo para ver el mensaje correspondiente del servicio apache que indica que esta funcionando correctamente.


    Si se quiere cambiar el mensaje se debe editar el archivo ubicado en la siguiente ruta
vi  /usr/local/www/apache24/data/index.html

    La configuración de Apache puede probarse en busca de errores luego de los cambios realizados en sus parámetros mientras el httpd está ejecutándose.
service apache24 configtest

    En caso que el servicio presente algún tipo de problema en el comportamiento del servicio apache, se reinicia el sistema para que inicie correctamente el servicio.

    Para realizar una manipulación del servicio Apache, podemos utilizar el comando apachectl, el cual permite realizar los procesos de prueba y control del servicio, su sintaxis es la siguiente:

apachectl comando

start Inicia el demonio Apache, presenta un mensaje de error si el servicio ya está corriendo. El equivalente es apachectl -k start
stop Detiene el demonio de Apache httpd. El equivalente es apachectl -k stop
restart Reinicia el demonio de Apache httpd, si el proceso no esta corriendo se inicia. Este comando revisa automáticamente los archivos de configuración antes de iniciar el demonio para asegurarse que funcione correctamente. El equivalente es apachectl -k restart
status Muestra un resumen del estado del servicio
configtest Ejecuta una prueba de sintaxis del archivo de configuración, reporta Syntax OK o la información sobre el particular problema de sintaxis que se presente. El equivalente es apachectl -t

El archivo de configuracion del servidor web Apache en FreeBSD, httpd.conf,  se encuentra en la siguiente ruta
/usr/local/etc/apache24/

Para verlo se ejecuta el siguiente comando
vi  /etc/local/etc/apache24/httpd.conf

Los parametros basicos que conforman la configuracion del servicio web Apache son los siguientes

ServerRoot: Indica el directorio dentro del cual se encuentran los archivos de configuracion, mensajes de error y logs del servicio web Apache.
/usr/local

Listen: Indica el puerto por el cual se reciben peticiones web.
80

ServerName: Se indica la identificacion del servidor a travez de su direccon IP o un nombre de dominio completamente calificado

DocumentRoot: Indica el directorio deonde estan los documentos ofrecidos por el servidor, todos los requerimientos http son tomados en este directorio. Es posible usar enlaces simpolicos o alias para apuntar a otras rutas direfentes.

/usr/local/www/apache24/data

DirectoryIndex: Indica el archivo que se usa cuando el servidor recibe un requisito a un directorio especifico.
index.html  index.php

Para habilitar el uso de servidores virtuales se debe descomentar la siguiente linea en el archivo de configuracion httpd.conf
Include  etc/apache24/extra/httpd-vhosts.conf

Al ver el contenido de este archivo se puede ver un ejemplo de como crear un servidor virtual en nuestro servicio web
vi httpd-vhosts.conf

El esquema basico de la definicion de un servidor web es la siguiente:

<VirtualHost *:80>
    ServerAdmin
    DocumentRoot
    ServerName
</VirtuslHost>



A continuacion se muestran un par de videos que indican en forma detallada como implementar y configurar un servidor FAMP en FreeBSD.

Instalación de servidor FAMP (FreeBSD, Apache, MySQL, PHP) y WEBMIN


 Instalacion y configuracion de servidor web Apache en FreeBSD




REFERENCIAS

Grupo FreeBSD en español en Facebook

Manual en español del proyecto FreeBSD
https://www.freebsd.org/doc/es_ES.ISO8859-1/books/handbook/

Absolute FreeBSD 2nd edition The complete guide to FreeBSD, Mickael W. Lucas
http://directory.umm.ac.id/Operating%20System%20Ebook/FREEBSD/Absolute%20Freebsd.pdf

How to install apache mysql php and phpmyadmin on freebsd

FAMP Installing Apache 2.4, MySQL, PHP on FreeBSD 10

Servidor web Apache Wikipedia
https://es.wikipedia.org/wiki/Servidor_HTTP_Apache


Configuración de Apache
http://www.cibernetia.com/manuales/instalacion_servidor_web/2_3_configuracion_apache.php

Instalacion y configuracion de Apache
http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m3/instalacin_y_configuracin_de_apache.html

Installing and configure Apache web server on FreeBSD
http://www.freebsdmadeeasy.com/tutorials/web-server/configure-apache-web-server-on-freebsd.php

How install FAMP stack and mod security on FreeBSD
https://www.freebsdnews.com/2015/10/22/install-famp-stack-mod-security-freebsd-10-2/
http://linoxide.com/security/install-famp-stack-php-mod-security-freebsd/

Instalar servidor web en FreeBSD
http://bytesos.com/tutoriales/servicios/servidor_web_freebsd/servidor_web_freebsd.php
 
Optimización de Apache en FreeBSD
http://www.sysadmin.org.mx/optimizacion-de-apache-en-freebsd.html

Servidores de aplicaciones web
https://openlibra.com/es/book/servidores-de-aplicaciones-web

Servidores para Internet con Apache HttpServer
https://ctrltotal.files.wordpress.com/2012/05/libphp-5-servidores-para-internet-con-apache-httpserver.pdf

La biblia de Apache 2

Guia de seguridad de Apache
Instalacion de mod_evasive en FreeBSD
https://project.altservice.com/issues/562

1 comentario:

  1. Buen tutorial. A veces contar con servidores de esta forma es muy útil, aunque si luego una página se vuelve muy grande puede convenir más el contratar un servicio de servidores. Dejo algunos consejos sobre Qué tener en cuenta para elegir un servidor para quien esté interesado.

    ResponderBorrar