En este caso y a modo de laboratorio realizaremos todo el proceso desde el registro ddns hasta la instalación y puesta en funcionamiento del CMS Drupal.
Dinamic DNS
Configurar ddns en el router vdsl Comtrend VR-3025u 30MB JazztelLes presento dnsdynamic.org un ddns gratuito y según dice siempre lo será. Durante el registro nos pedirá una cuenta de correo válida y un password que serán utilizados posteriormente, también hay que elegir un dominio. El password me lo invento por lo tanto no traten de entrar en dnsdynamic.org con esta cuenta, solo serviría para cargar el servidor:
login=nombreusuario@gmail.com # correo registrado
password=26Ac9yodLK4jzH48== # password registrado (inventado)
carlescamilo.dnsdynamic.com # dominio registrado
Ahora vamos a nuestro servidor FreeBSD e instalamos ddclient utilizado para actualizar automáticamente dynamic DNS:
$ ssh -l carlos -p 3434 192.168.3.1
password
$ hostname
$ freebsdsvr.linux.bcn
# cd /usr/ports/dns/ddclient
# make install clean
# rehash
# cd /usr/local/etc
# cp ddclient.conf.sample ddclient.conf
# ee ddclient.conf
# Archivo de configuración /usr/local/etc/ddclient.conf
Guardar y salir.
ddclient.conf contiene el password de su proveedor DNS dinámico, hágalo legible solo por root:
# chmod 600 /usr/local/etc/ddclient.conf
y agregue las siguientes líneas de inicio:
# ee /etc/rc.conf
ddclient_enable="YES"
ddclient_flags="-daemon 600" # comprobar cada 600 segundos
Guardar los cambios y levantar el demonio:
# /usr/local/etc/rc.d/ddclient start
Confirmar que ddclient se está ejecutando:
Si repite el comando ps comprobará el estado de ddclient en cualquier momento. Después de que el tiempo de sueño expire, ddclient
debe comprobar su IP pública y hacer los cambios apropiados a su proveedor DNS dinámico.
El archivo /var/tmp/ddclient.cache guarda la última dirección IP pública conocida del sistema y los mensajes de estado de los registros ddclient, así como errores los guarda en /var/log/messages
Correos electrónicos de estado se enviarán a la dirección de correo electrónico de la cuenta root. (Si configura el reenvío de correo electrónico del usuario root en el archivo /etc/aliases), configure la dirección de correo electrónico a la que desea que lleguen los mensajes agregando esta línea:
# ee /etc/aliases
root: localuser, nombreusuario@gmail.com # su cuenta
Guardar y salir
Nota: El puerto 25 es utilizado por mail para el envío de email por lo tanto el firewall debe permitir su paso y no olvide abrir el puerto 587 en su router ADSL si utiliza gmail, por ejemplo en este caso el 587 abierto para la dirección IP 192.168.1.250)
hostname: carlescamilo.dnsdynamic.com # dominio dnsdynamic
username: nombreusuario@gmail.com # mail registro dnsdynamic
password=26Ac9yodLK4jzH48== # password, me lo invento
service: dyndns
interface: ppp1.1
Depurar ddclient. Trate de ejecutar el comando siguiente:
# ddclient -daemon=0 -noquiet -debug
DEBUG: proxy =
DEBUG: url = myip.dnsdynamic.com
DEBUG: server = myip.dnsdynamic.com
DEBUG: get_ip: using web, myip.dnsdynamic.com reports 96.27.155.98
DEBUG:
DEBUG: nic_dyndns2_update -------------------
DEBUG: proxy =
DEBUG: url = http://www.dnsdynamic.org/nic/update?system=custom&hostname=carlescamilo.dnsdynamic.com&myip=96.27.155.98
DEBUG: server = www.dnsdynamic.org
Apache HTTP Server
Instalar el servidor ApacheComprobar el archivo /etc/hosts
ee /etc/hosts
#
::1 localhost freebsdsvr.linux.bcn
127.0.0.1 localhost freebsdsvr.linux.bcn
192.168.3.1 freebsdsvr freebsdsvr.linux.bcn
#
Instalar el Servidor Apache
# cd /usr/ports/www/apache22
# make config ; make install clean
# rehash
Agregar las siguientes líneas a httpd.conf
# ee /usr/local/etc/apache22/httpd.conf
ServerAdmin mailvalido@gmail.com
ServerName freebsdsvr.linux.bcn:80
Comprobar errores de sintaxis en el archivo de configuración
# apachectl configtest
Performing sanity check on apache22 configuration:
Syntax OK
Después agregar las siguientes lineas en /etc/rc.conf:
apache22_enable="YES"
apache22_http_accept_enable="YES"
# /usr/local/etc/rc.d/apache22 start
El comando GET es case sensitive. Asegúrese de presionar enter dos veces y fíjese que antes y después del primer slash hay espacio.
Si puede ver el texto it works! en la última línea de salida quiere decir que Apache funciona.
Con el navegador lynx puede hacerse lo mismo
# lynx http://freebsdsvr.linux.bcn:
o desde un cliente de la red invocando freebsdsvr.linux.bcn ó la dirección IP 192.168.3.1:
Archivos LOG de Apache:
/var/log/httpd-access.log
Contiene un log de las direcciones IP, hora, y la actividad enn el servidor HTTP.
/var/log/httpd-error.log
Contiene un log de los mensajes de error producidos opr el seridor HTTP.
PHP5
# cd /usr/ports/lang/php52# make config ; make install clean
# rehash
Un menú de opciones para php5 diríjase hasta Apache y presione la barra espaciadora para instalar el módulo Apache, luego OK para empezar la instalación.
PHP5-5.4-29
El module requerido para el soporte de aplicaciones PHP sobre Apache debe instalarse:
# cd /usr/ports/www/mod_php5
make install clean
Antes de construir este puerto vamos a añadir soporte para MySQL y MySQLi (una interfaz mejorada para MySQL) con el fin de comunicarse con el servidor MySQL.
# cd /usr/ports/lang/php5-extensions/
make config
En el menú correspondiente tiene seleccione “MySQL database support” y “MySQLi database support,” luego proceda a construir el puerto:
# make install clean
Ha llegado el momento de configurar PHP para utilizarlo en su sistema insertando en DirectoryIndex declaración index.php:
# ee /usr/local/etc/apache22/httpd.conf
DirectoryIndex index.php index.html
y agregar estas líneas:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
En el caso de PHP5-5.4_29 al final del archivo http.conf agregamos:
Copiar el archivo php.ini-production php.ini que son las opciones recomendadas para entornos de servidores en producción.
# cp /usr/local/etc/php.ini-production /usr/local/php.ini
La directiva session.save_path le dice a PHP donde almacenar los archivos temporales de sesión.
# ee /usr/local/php.ini
session.save_path = "/tmp"
Guardar y salir.
# /usr/local/etc/rc.d/apache22 restart
Para comprobar la instalación de PHP crearemos un archivo llamado phpinfo.php en el directorio raíz del servidor web:
# ee /usr/local/www/apache22/data/phpinfo.php
Añadir estas líneas:
Guardar y salir.
Solicite phpinfo.php de su servidor Apache desde un navegador web. Si lynx está instalado este es el aspecto para el hostname freebsdsvr.linux.bcn:
PHP5-5.4_29
Suprimir el archivo phpinfo.php después de la prueba.
# rm /usr/local/www/apache22/data/phpinfo.php
MySQL junto a PHP es utilizado para crear sitios web dinámicos.
Asegúrese de que el nombre de host de su servidor puede resolverse localmente:
Comprobar el archivo /etc/hosts
ee /etc/hosts
::1 localhost freebsdsvr.linux.bcn
127.0.0.1 localhost freebsdsvr.linux.bcn
192.168.3.1 freebsdsvr freebsdsvr.linux.bcn
Instalar MySQL Server
# cd
/usr/ports/databases/mysql55-server
# make -D BUILD_OPTIMIZED install clean
# rehash
Ejecute el script de mysql_install_db para establecer las tablas de permisos necesarios para MySQL. Almacenan información acerca privilegios, Permisos de usuario de MySQL y otras opciones de seguridad.
# mysql_install_db --user=mysql
Iniciar el demonio MySQL y configurar la contraseña de root de MySQL:
# mysqld_safe &
# mysqladmin -u root password 'localpassword'
MySQL incluye ejemplos de configuración ubicados en el directorio /usr/local/share/mysql, cada uno de los cuales configurado para un sistema determinado:
my-medium.cnf
Sistemas con más de 128MB de RAM (recomendado para servidores web)
# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf
Si MySQL va a utilizarse para aplicaciones PHP basadas en la web desactivar las redes TCP hará la instalación MySQL más segura.
Se aplica si el servidor web y la base de datos MySQL funcionan en el mismo ordenador. Descomentar la línea skip-networking del archivo /var/db/mysql/my.cnf
# ee /var/db/mysql/my.cnf
skip-networking
Configurar MySQL para iniciarse automáticamente con el sistema
# ee /etc/rc.conf
mysql_enable="YES"
Aplicar los cambios reiniciando MySQL:
# /usr/local/etc/rc.d/mysql-server restart
Para ver los mensajes de log error si los hubieran, el path es /var/db/mysql/freebsdsvr.linux.bcn.err y su nombre coincide con su hostname.
También hay que asegurarse que los permisos del directorio /tmp son los correctos:
# ls -ld /tmp
drwxrwxrwt 6 root wheel 512 Nov 26 10:03 /tmp
Si no fuera así root puede corregirlos:
# chown root:whell /tmp
# chmod 777 /tmp
# chmod =t /tmp
Instalar el gestor de contenidos (CMS) Drupal7:
Primero hay que crear la base de datos.
# mysql -u root -p Enter password: mysql> create database drupal; mysql> grant all on drupal.* to -> drupal@localhost identified by 'password'; mysql> quit
Sustituya password por la contraseña de su elección. Esta contraseña la necesitará más adelante, no la olvide!.
Instalar Drupal7
# cd /usr/ports/www/drupal7
# make config; make install clean
Configurar Drupal para utilizarlo en su sistema:
Este archivo indica a apache la ubicación correcta de los archivos de Drupal y hace la administración más fácil. De forma predeterminada Apache busca en el directorio /usr/local/apache22/Includes para los archivos de configuración. Crear un archivo para Drupal:
# ee /usr/local/etc/apache22/Includes/drupal.conf
Agregue las líneas siguientes:
# /usr/local/etc/rc.d/apache22 restart
Crontab es un servicio del sistema que permite la ejecución automática de scripts o programas de acuerdo con un calendario establecido en el archivo /etc/crontab. Hay que añadir una línea a /etc/crontab para permitir las tareas de mantenimiento de Drupal.
# ee /etc/crontab
45 */4 * * * root /usr/local/bin/lynx http://freebsdsvr.linux.bcn/drupal/cron.php
Abrir http://freebsdsvr.linux.bcn/drupal/install.php en su navegador sustituyendo su hostname y directorio, si lo ha modificado.
Introducir los datos utilizados previamente en la creación de la base de datos, nombre, nombre de usuario y contraseña. Guardar los cambios.
Seguir el asistente y al finalizar clic en su new site.
Desde fuera de nuestra red, he configurado soporte SSL para Apache::
Desde nuestra propia red:
Unix es genial!.
No hay comentarios:
Publicar un comentario