Publico a continuación una diapositiva en Impress en la cual resumo en líneas generales los programas que existen en Software Libre y Open source (FLOSS) orientados a diferentes usuarios: Usuario de escritorio, empresas, programadores y sector educación
Web Personal con tutoriales y manuales de Linux, Software Libre y Open Source, Zimbra, desarrollo Web, lenguajes de programación (PHP, HHVM, JavaScript, Ajax) y Frameworks de Desarrollo Web: Zend Framework 2 y Phalcon PHP
viernes, diciembre 20, 2013
jueves, diciembre 19, 2013
Curso de Zimbra - Capítulo IV (Comandos en consola en Zimbra)
1.- Comandos de servicioMis manuales actualizados de Zimbra (2017)https://cloudperu.pe/manuales/listadoSi Ud. desea llevar un curso de Zimbra; puede ver mi Curso en Aula Útil https://aulautil.com/curso/online/zimbra. Clases con Videoconferencia y asistencia en tiempo real con Anydesk. Incluye Gratis 2 Servidores VPS Cloud (Firewall UTM+Zimbra) + 1 IP pública y dominio real por alumno.
########################################################################## $> su - zimbra verificar el estado de todos los servicios en zimbra $> zmcontrol status detener todos los servicios $> zmcontrol stop iniciar todos los servicios $> zmcontrol start reiniciar todos los servicios $> zmcontrol restart ver la versión de zimbra $> zmcontrol -v 2.- Comandos individuales de servicio (start, stop, restart, status) ########################################################################## Ej: detenemos todos los servicios e iniciaremos uno a uno $> zmcontrol stop $> zmcontrol status Iniciar LDAP server $> ldap start $> zmcontrol status Iniciar MySQL Server $> mysql.server start Iniciar zmconfigd $> zmconfigdctl start Iniciar MTA (postfix, saslauthd) $> zmmtactl start Iniciar Amavis, Antivirus y AntiSpam (amavis, spamassassin, clamav) $> zmamavisdctl start $> zmcontrol status Iniciar Mailbox (webmail, panel de administracion, servidores imap y pop3, servidores de filtros) $> zmmailboxdctl start Iniciar spell (servidor de ortografía) $> zmapachectl start Iniciar monitoreo $> zmswatchctl start Iniciar estadísticas $> zmstatctl start Iniciar Logger (logs del sistema) $> zmlogswatchctl start Reiniciar solo el antivirus $> zmantivirusctl restart Reiniciar solo el antispam $> zmantispamctl restart 3.- zmprov: comando de administración de zimbra ############################################################################ Loguearse primero como usuario zimbra $> su - zimbra Lista la ayuda general de zmprov $> zmprov help Listar la ayuda para gestionar las cuentas $> zmprov help acount Consola Interactiva $> zmprov prov> Ver ayuda de cuentas prov> help account Salir de la consola interactiva prov> quit 4.- Cuentas ############################################ Obtener listado de todas las cuentas del servidor (todos los dominios) $> zmprov -l gaa Obtener todas las cuentas de administración $> zmprov -l gaaa Obtener información de una sola cuenta $> zmprov -l ga tuxito@dominio.com Cuentas de un dominio específico $> zmprov -l gaa dominio.com Detalle de cuentas de un dominio especifico $> zmprov -l gaa -v dominio.com Detalle de cuentas de un dominio especifico con Cuenta, Nombre y Quota $> zmprov -l gaa -v dominio0.com | grep -e zimbraMailDeliveryAddress -e displayName -e zimbraMailQuota |sed -e "s/zimbraMailDeliveryAddress/Cuenta/" -e "s/displayName/Nombre/" -e "s/zimbraMailQuota/Quota/" Crear una cuenta, con cos default $> zmprov ca pepito@dominio.com pepitopass displayName "Pepito Pérez" Crear un usuario con un cos específico ej: gerente $> cos=`zmprov gc gerente | grep zimbraId:|cut -d ' ' -f2` $> zmprov ca juanito@dominio.com juanitopass displayName "Juanito Martinez" zimbraCOSId $cos Crear una cuenta con detalle $> zmprov ca windozero@dominio.com passwinbugs cn 'Nombre(s) ApMaterno ApPaterno' displayName 'Nombre(s) ApMaterno ApPaterno' givenName 'Nombre(s)' zimbraCOSId $cos 5.- Modificar opciones de una cuenta ######################################################### Cambiar de password de una cuenta $> zmprov sp usuario1@dominio.com passnuevo Modificar un atributo de una cuenta $> zmprov ma usuario1@dominio.com displayName "Luser Noob 1" Nota: se puede modificar cualquier atributo del usuario para la lista de atributos ejecutar $> zmprov -l ga usuario1@dominio.com 6.- Busqueda de cuentas ########################################################## * Búsqueda por atributos Se puede buscar las cuentas por un atributo en común $> zmprov sa parametro=cadena Buscar todas las cuentas activas $> zmprov sa zimbraAccountStatus=active Buscar todas las cuentas bloqueadas $> zmprov sa zimbraAccountStatus=locked Buscar en cuales listas se encuentra una cuenta $> zmprov gam cuenta@dominio.com 7.- Borrar una cuenta ########################################################## $> zmprov da usuario3@dominio.com
8.- Creación de Cuentas en forma masiva ######################################################################################################
Nos logueamos como root $> su - Creamos nuestro directorio de scrips $> mkdir /opt/zimbra/scripts Entramos al directorio $> cd /opt/zimbra/scripts Primero creamos un archivo con la lista de cuentas y sus respectivos cos $> vim usuarios.txt -------------------------------------------- usuario1@dominio.com,userpass1,Usuario Prueba 1,default usuario2@dominio.com,userpass2,Usuario Prueba 2,default usuario3@dominio.com,userpass3,Usuario Prueba 3,gerente -------------------------------------------- Creamos ahora un script que genere un archivo para la creación de usuario $> vim crea_usuarios.php
#!/usr/bin/php <?php // Obteniendo los COS del sistema y sus Ids exec("/opt/zimbra/bin/zmprov gac",$arrcos); $cos = array(); foreach($arrcos as $cos_name){ $cos_name = chop ($cos_name); $cosid=`/opt/zimbra/bin/zmprov gc $cos_name | grep ^zimbraId:`; $cosid = trim(str_replace("zimbraId: ","",$cosid)); $cos[$cos_name]=$cosid; } //print_r($cos); // Leyendo los archivos de Usuarios $userfile=file("usuarios.txt"); // Recorriendo array de usuarios y creando las cuentas foreach($userfile as $userline){ $userline=trim(chop($userline)); if(!empty($userline)){ $user = explode(",",$userline); echo("ca $user[0] $user[1] displayName '$user[2]' zimbraCOSId ".$cos[$user[3]]."\n"); } } ?>
Ejecutamos el script, para eso necesitamos php $> yum -y install php php-cli $> chmod 755 crea_usuarios.php $> ./crea_usuarios.php> cuentas.zm Creamos los usuarios con zmprov $> /opt/zimbra/bin/zmprov < cuentas.zm 9.- Listas de correo ############################################################### Buscar todas las listas, y por dominio $> zmprov gadl $> zmprov gadl dominio.com Crear una lista $> zmprov cdl lista@dominio.com Ver una lista específica $> zmprov gdl lista@dominio.com Encontrar todas las listas de un dominio y sus miembros $> for i in $( zmprov gadl dominio.com | grep -v abuse | grep -v postmaster | sort ) ; do echo `zmprov gdl $i | grep -e 'mail: ' -e 'zimbraMailForwardingAddress: ' | sed 's/mail/Lista/' | sed 's/zimbraMailForwardingAddress: //'` ; done ; agregar un miembro a la lista $> zmprov adlm lista@dominio.com cuenta@dominio.com Remover un miembro de la lista $> zmprov rdlm lista@dominio.com cuenta@dominio.com Borrar una lista $ zmprov ddl lista@dominio.com 10.- Buzones (zmmailbox) ##################################################################
Entrar a la consola interactiva $> zmmailbox mbox> Ver ayuda general del comando $> zmmailbox help Ver ayuda de las cuentas $> zmmailbox help account Ver ayuda de los mensajes $> zmmailbox help message * Tamaño de un buzón Ver tamaño ocupado del buzón $> zmmailbox -z -m cuenta@dominio.com gms Ver el tamaño de las quotas asignadas y ocupadas de todos los buzones $> zmprov gqu `zmhostname`|awk {'print " "$3" "$2" "$1'} Revisar mensajes por carpetas en el buzón $> zmmailbox -z -m cuenta@dominio.com gaf Borrar una carpeta completa de un buzón $> zmmailbox -z -m cuenta@dominio.com emptyFolder Junk Importar mensajes de una carpeta Maildir existente en el INBOX $> echo addMessage /INBOX /path/to/Maildir/cur | /opt/zimbra/bin/zmmailbox -z -m cuenta@dominio.com Buscar un mensaje $> zmmailbox -z -m cuenta@dominio.com search -t message "prueba" Buscar un mensaje en todas las cuentas $> zmprov -l gaa |awk '{print "zmmailbox -z -m "$1" search \"linux\" "}' |sh -v linux es la palabra de búsqueda Buscar correos anteriores a una fecha: (formato mes/dia/año) $> zmmailbox -z -m cuenta@dominio.com search -t message "in:INBOX (before: 12/19/13)" Obtener contenido de un correo $> zmmailbox -z -m cuenta@dominio.com gm 21940 21940 es el ID del mensaje Ver contactos: $> zmmailbox -z -m cuenta@dominio.com gact | less Vaciar casilla usuario: $> zmmailbox -z -m accoun@domain.com ef "/Inbox" Ver correos de una carpeta $> zmmailbox -z -m cuenta@dominio.com search -l 100 "in:Inbox" Ver metadata de un correo: $> zmmetadump -m cuenta@dominio.com -i 26747 Borrar un mensaje $> zmmailbox -z -m cuenta@dominio.com dm 4543 4543 es el id del mensaje
lunes, diciembre 16, 2013
Curso de Phalcon PHP - Capítulo I: (Primeros Pasos ¿Qué es Phalcon?)
Phalcon PHP es un framework de alto rendimiento desarrollado como un módulo nativo de C para el núcleo de PHP, convirtiéndolo en el framework más rápido de todos, siendo hasta 10 veces más rápido que symfony 2 y zend framework 2.
Phalcon es un framework full stack para el desarrollo de aplicaciones complejas.
Cuenta con los siguientes módulos y funcionalidades:
- Desarrollo con uso de PHP 5.3 y namespaces
- Patrón de arquitectura MVC para el desarrollo de aplicaciones (Módulo Simple, Multi Módulos y Micro Aplicaciones)
- Motor de ORM (Transacciones, Comportamientos, Relaciones, PHQL, Eventos, Validaciones, Hydration, Logging, Profiling, Sharding)
- Motor de ODM ( Mongo DB)
- Encriptación
- HTTP Request/Response/Cookies
- ODM para la base de datos documental Mongo DB
- Motor de Templates (Volt)
- Inyección de Dependencias DI/IOC
- Gestión de Eventos
- Cifrado
- Filtrado y Saneamiento
- Constructor de Formularios y Validación
- Mensajes Instantáneos
- Cache
- Paginación
- Anotaciones
- Seguridad
- Traducción
- Gestión de Assets (despliegue de archivos públicos: js,css)
- Auto-Loader Universal
- Logging
- Interfaz de comandos CLI
Instalación de Phalcon
Usaremos Ubuntu como distribución base de preferencia una versión LTS 12.04 o release superior
Plataforma de despliegue (LAMP o LEMP)
* Instalación de Apache, extensiones de PHP y MySQL (LAMP)
Apache es el servidor web más popular en la internet y su combinación con Linux, PHP y MySQL lo convierten en la plataforma más importante en el despliegue de aplicaciones web. Instalación de apache, php, librería gráfica (gd), depurador (xdbug), interfaz de comandos (cli), ldap, cifrado (mcrypt), download manager (curl)
* Instalación de Ngnix, PHP y MySQL (Linux EngineX: LEMP)
Ngix es un servidor web muy ligero, de gran performance y cada vez gana más aceptación; su uso con PHP, PHP-FPM y MySQL lo convierten en una interesante alternativa a Apache Instalación de apache, php, librería gráfica (gd), depurador (xdbug), interfaz de comandos (cli), ldap, cifrado (mcrypt), download manager (curl) y php-fpm (fast cgi)
Primera Aplicación: holamundo
Estructura base de directorios
tutorial/
app/
controllers/
models/
views/
public/
css/
img/
js/
Creación de la estructura base de directorios
Despliegue en Apache
Creamos el virtualhost para la resolución de www.holamundo.com tomando como directorio raíz /var/www/holamundo/public
Reemplazar el contenido
Comprobamos nuestro hola mundo con el navegador http://www.holamundo.com
Despliegue en Nginx
Creamos el virtualhost para la resolución de www.holamundo.com tomando como directorio raíz /var/www/holamundo/public
Reemplazar el contenido
Comprobamos nuestro hola mundo con el navegador http://www.holamundo.com
Phalcon es un framework full stack para el desarrollo de aplicaciones complejas.
Cuenta con los siguientes módulos y funcionalidades:
- Desarrollo con uso de PHP 5.3 y namespaces
- Patrón de arquitectura MVC para el desarrollo de aplicaciones (Módulo Simple, Multi Módulos y Micro Aplicaciones)
- Motor de ORM (Transacciones, Comportamientos, Relaciones, PHQL, Eventos, Validaciones, Hydration, Logging, Profiling, Sharding)
- Motor de ODM ( Mongo DB)
- Encriptación
- HTTP Request/Response/Cookies
- ODM para la base de datos documental Mongo DB
- Motor de Templates (Volt)
- Inyección de Dependencias DI/IOC
- Gestión de Eventos
- Cifrado
- Filtrado y Saneamiento
- Constructor de Formularios y Validación
- Mensajes Instantáneos
- Cache
- Paginación
- Anotaciones
- Seguridad
- Traducción
- Gestión de Assets (despliegue de archivos públicos: js,css)
- Auto-Loader Universal
- Logging
- Interfaz de comandos CLI
Instalación de Phalcon
Usaremos Ubuntu como distribución base de preferencia una versión LTS 12.04 o release superior
Logueandose como root $> sudo su - Actualizando la lista de paquetes $> apt-get -y update Instalamos vim para como editor de texto $> apt-get -y install vim Instalando los paquetes de desarrollo de php y el compilador de c $> apt-get -y install php5-dev php5-mysql gcc Instalando el sistema de control de versiones git $> apt-get -y install git Haciendo un checkout del proyecto; desde github $> git clone git://github.com/phalcon/cphalcon.git Compilando el framework $> cd cphalcon/build Ubuntu de 32 bits $> ./install 32bits Ubuntu de 64 bits $> ./install 64bits Habilitando la extensión phalcon en la configuración de php $> vim /etc/php5/conf.d/20-phalcon.ini extension=phalcon.so Verificando la carga de la exensión phalcon $> php -r "print_r(get_loaded_extensions());" | grep phalcon
Plataforma de despliegue (LAMP o LEMP)
* Instalación de Apache, extensiones de PHP y MySQL (LAMP)
Apache es el servidor web más popular en la internet y su combinación con Linux, PHP y MySQL lo convierten en la plataforma más importante en el despliegue de aplicaciones web. Instalación de apache, php, librería gráfica (gd), depurador (xdbug), interfaz de comandos (cli), ldap, cifrado (mcrypt), download manager (curl)
$> apt-get install apache2 php5 mysql-server php5-mysql \ php5-gd php5-xdebug php5-cli php5-ldap php5-mcrypt php5-curl
* Instalación de Ngnix, PHP y MySQL (Linux EngineX: LEMP)
Ngix es un servidor web muy ligero, de gran performance y cada vez gana más aceptación; su uso con PHP, PHP-FPM y MySQL lo convierten en una interesante alternativa a Apache Instalación de apache, php, librería gráfica (gd), depurador (xdbug), interfaz de comandos (cli), ldap, cifrado (mcrypt), download manager (curl) y php-fpm (fast cgi)
$> apt-get install nginx php5 mysql-server php5-mysql \ php5-gd php5-xdebug php5-cli php5-ldap php5-mcrypt php5-curl php5-fpm
Primera Aplicación: holamundo
Estructura base de directorios
tutorial/
app/
controllers/
models/
views/
public/
css/
img/
js/
Creación de la estructura base de directorios
$> cd /var/www $> mkdir holamundo $> mkdir holamundo/app $> mkdir holamundo/app/controllers $> mkdir holamundo/app/models $> mkdir holamundo/app/views $> mkdir holamundo/public $> mkdir holamundo/public/css $> mkdir holamundo/public/img $> mkdir holamundo/public/jsCreación del archivo .htaccess del directorio public para habilitar el uso de URLs Limpias
$> vim holamundo/public/.htaccess
AddDefaultCharset UTF-8 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] </IfModule>Definiendo el BootStrap principal (Front Controller)
$> vim holamundo/public/index.php
<?php try{ //Register an autoloader $loader = new \Phalcon\Loader(); $loader->registerDirs(array( '../app/controllers/', '../app/models/' ))->register(); //Creando una instancia de Inyección de Dependencias $di = new Phalcon\DI\FactoryDefault(); //Definiendo el directorio de vistas de la aplicacion, con el uso de una función lamba (función anónima) $di->set('view', function(){ $view = new \Phalcon\Mvc\View(); $view->setViewsDir('../app/views/'); return $view; }); //Gestionando la petición y desplegando la aplicación $application = new \Phalcon\Mvc\Application(); $application->setDI($di); echo $application->handle()->getContent(); } catch(\Phalcon\Exception $e) { echo "PhalconException: ", $e->getMessage(); }Creando el controlador IndexController
$> vim holamundo/app/controllers/IndexController.php
<?php class IndexController extends \Phalcon\Mvc\Controller { // método para la acción index public function indexAction() { } }Creando el directorio la vista para el controlador index
$> mkdir holamundo/app/views/indexCreando el archivo de vista para la acción index
$> vim holamundo/app/views/index/index.phtml
Despliegue y prueba de la Aplicación Crearemos un dominio ficticio en el /etc/hosts Agregar en la última líneaHola Mundo desde Phalcon :)
$> vim /etc/hosts 127.0.1.1 www.holamundo.com
Despliegue en Apache
Creamos el virtualhost para la resolución de www.holamundo.com tomando como directorio raíz /var/www/holamundo/public
Reemplazar el contenido
$> vim /etc/apache2/sites-enabled/000-default
Reiniciamos Apache<VirtualHost *:80>ServerAdmin webmaster@localhostDocumentRoot /var/www/holamundo/public<Directory />Options FollowSymLinksAllowOverride None</Directory><Directory /var/www/holamundo/public>Options Indexes FollowSymLinks MultiViewsAllowOverride AllOrder allow,denyallow from all</Directory>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory "/usr/lib/cgi-bin">AllowOverride NoneOptions +ExecCGI -MultiViews +SymLinksIfOwnerMatchOrder allow,denyAllow from all</Directory>ErrorLog ${APACHE_LOG_DIR}/error.log# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.LogLevel warnCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
$> /etc/init.d/apache2 restart
Comprobamos nuestro hola mundo con el navegador http://www.holamundo.com
Despliegue en Nginx
Creamos el virtualhost para la resolución de www.holamundo.com tomando como directorio raíz /var/www/holamundo/public
Reemplazar el contenido
$> vim /etc/nginx/sites-enabled/default
Reiniciamos Nginxserver {listen 80;server_name www.holamundo.com;index index.php index.html index.htm;set $root_path '/var/www/holamundo/public';root $root_path;try_files $uri $uri/ @rewrite;location @rewrite {rewrite ^/(.*)$ /index.php?_url=/$1;}location ~ \.php {fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index /index.php;include /etc/nginx/fastcgi_params;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {root $root_path;}location ~ /\.ht {deny all;}}
$> /etc/init.d/nginx restart
Comprobamos nuestro hola mundo con el navegador http://www.holamundo.com
Curso de Zend Framework 2 - Capítulo I (Configuración del Entorno LAMP)
1.- Introducción
Zend framework 2 es el framework de los creadores del núcleo de PHP (Zend); la versión 2 de este popular framework refleja los cambios introducidos en PHP 5.3 como son los espacios de nombres (namespaces), closures y un mejor uso de la Programación Orientada a Objetos; así como de los patrones de diseño.
El objetivo de Zend Framework 2 es apoyar al programador en el desarrollo de aplicaciones web empresariales y complejas.
Zend Framework 2 puede ser usado para el desarrollo de aplicaciones de cualquier tamaño; por tanto su uso no es tan sencillo como otros frameworks; como Code Igniter o Cake PHP. Zend Framework 2 fue publicado en setiembre de este año y en el corto periodo que tiene ha generado gran espectativa en la comunidad de desarrolladores de PHP y de aquellos que han estado trabajando con ZendFramework.
2.- Características Nuevas
Zend Framework 2 fue desarrollado con la idea de mejorar el framework; adaptándolo a la evolución del lenguaje y tomando las mejores ideas de los frameworks de desarrollo; el resultado fue un framework moderno y muy fexible que brinda al programador característica muy importantes para el desarrollo de aplicaciones empresariales. Las principales novedades de Zend 2 respecto a la versión anterior son las siguientes:
- Desarrollo basado en Pruebas Unitarias con PHPUnit
- Un nuevo sistema de módulos para organizar el código
- Una nueva arquitectura basada en servicios mediante Inyección de Dependencias
- Un gestor de eventos para olvidarse de los hooks y poder ejecutar código propio en cualquier punto de la ejecución de las aplicaciones
3.- Instalación de Zend Framework
3.1.- Pre Requisitos
Zend Framework 2 requiere una adecuada compresión y uso de la Programación Orientada a Objetos de PHP, así como de Apache; en cuanto al uso de VirtualHost, mod_rewrite, y los archivos .htaccess; y del manejo de un servidor de base de datos (MySQL). Con la finalidad de comprender un entorno de desarrollo profesional; aparte de los requisitos mencionados, usaremos Ubuntu Linux como Sistema Operativo para el servidor y desplegaremos el primer hola mundo en el Framework.
3.2.- Instalación de Ubuntu Linux
Podemos instalar Ubuntu Linux de manera física en una máquina virtual; para quienes tengan instalada una máquina física con Ubuntu pueden obviar este paso y para quienes solo tengan Windows, pueden instalarlo fácilmente con Virtualbox
3.2.1.- Instalación de VirtualBox
Descargamos VirtualBox para widows de http://www.virtualbox.org y lo instalamos
3.2.2.- Instalación de Ubuntu Linux en una Máquina Virtual de VirtualBox
- Podemos hacer la instalación con la pantalla completa
- Para sacar el puntero del mouse de la máquina virtual, presionar el ctrl de la derecha
- Si se demora en "Descargar fichero" o en "Descargar paquetes de idioma" dar click en la flecha de despliegue y luego "skip"
3.2.3.- Configuracion de la Red
Para nuestro curso usaremos una red hipotética 192.168.1.0/24 con asignación de IP de nuestro equipo linux 192.168.1.10, router 192.168.1.1 y DNS 8.8.8.8
- Dar click a las flechas opuestas que está en la barra superior y elegir "Editar las conexiones"
- Seleccionar Conexión Cableada 1 y click en Editar
- Pestaña "Ajustes Ipv4"
- Método manual
- click en añadir:
Dirección: 192.168.1.10
Mascara de Red: 24
Puerta de Enlace: 192.168.1.1
Servidores DNS: 8.8.8.8
Guardar y Cerrar.
3.3.- Instalación de SSH, Apache, PHP y MySQL
- Dar click en el icono Ubuntu y escribir en la barra de comandos terminal
- La terminal de Linux nos permite ejecutar comandos para administrar el sistema operativo; al abrir la terminal iniciamos con el usuario alumno
- Para loguearnos como root (el superusuario de Linux) ejecutamos:
- Actualizamos la lista de paquetes instalables
usar el usuario: alumno clave: alumno
3.3.1.- Instalación de PHP, MySQL y Apache (Entorno de Desarrollo)
3.4.- Comandos básicos para trabajar con archivos y directorios En linux existe solo un directorio princiapl raiz / y en el cual se encuentran todos los demas directorios, Ej: el DOCUMENT_ROOT (raiz de pàginas web) se encuentra en /var/www la base de datos se encuentra en /var/lib/mysql los archivos de configuración de apache se encuentran en /etc/apache2 Nos logueamos como root
Comando cd
Nos sirve para movernos por los directorios Ej:
Comando pwd
Nos dice en que directorio nos encontramos Ej:
Comando ls
Nos sirve para listar los archivos y directorios
Ej:
Comando mkdir
Nos sirve para crear directorios
Ej:
Comando nano nano es un editor sencillo para crear archivos
Ej:
Comando cp
Nos sirve para crear archivos y directorios
Ej:
Comando mv
Nos sirve para renombrar y mover archivos y directorios
Ej:
3.5 El editor vim
El editor vim es el editor más común en las plataformas unix; su resaltado de syntaxis nos ayuda con los archivos de configuración
Instalación de VIM
Ejercicio 1: Crear archivo poema
Ejercicio2:
Crear archivo saludo y ejecutar ejercicios de comandos vim
Archivo de configuracion de VIM
4.- Instalación de ZendFramework 2
Una vez que ya tenemos nuestro entorno LAMP, vamos a configurar un primer proyecto con Zend Framework 2
4.1.- Prerequisitos
1.- Primero necesitamos habilitar el módulo mod_rewrite en Apache y permitir el uso de .htaccess en los directorios
2.- Instalar composer
3.- Crear el proyecto de Zend Framework 2 con Composer
4.1.1 .- Habilitando mod_rewrite en Apache
Con composer crearemos el proyecto zftest en el directorio /var/www/zftest
Esto nos creará el proyecto y nos descargará el ZendFramework2
4.l.4.- Editando el VirtualHost
para hacer que el directorio /var/www/zftest/public sea el raíz
Reemplazamos todo el contenido existente
Ahora reiniciamos apache y accedemos al proyecto desde el navegador http://localhost
Para verificar que el archivo .htaccess está funcionando, navegamos a http://localhost/loquesea y debería saler un error 404 con el logo de ZF
Finalmente editaremos la vista del Módulo Application, Controlador Index, Action Index
5.- Herramienta de Depuración de PHP
Xdebug es una extensión para depurar errores en php, para poder configurarlo
instalamos la extensión php5-xdebug
$> apt-get install php5-xdebug
Activamos Xdebug (verificar la carpeta donde se encuentra la extension xdebug.so)
Zend framework 2 es el framework de los creadores del núcleo de PHP (Zend); la versión 2 de este popular framework refleja los cambios introducidos en PHP 5.3 como son los espacios de nombres (namespaces), closures y un mejor uso de la Programación Orientada a Objetos; así como de los patrones de diseño.
El objetivo de Zend Framework 2 es apoyar al programador en el desarrollo de aplicaciones web empresariales y complejas.
Zend Framework 2 puede ser usado para el desarrollo de aplicaciones de cualquier tamaño; por tanto su uso no es tan sencillo como otros frameworks; como Code Igniter o Cake PHP. Zend Framework 2 fue publicado en setiembre de este año y en el corto periodo que tiene ha generado gran espectativa en la comunidad de desarrolladores de PHP y de aquellos que han estado trabajando con ZendFramework.
2.- Características Nuevas
Zend Framework 2 fue desarrollado con la idea de mejorar el framework; adaptándolo a la evolución del lenguaje y tomando las mejores ideas de los frameworks de desarrollo; el resultado fue un framework moderno y muy fexible que brinda al programador característica muy importantes para el desarrollo de aplicaciones empresariales. Las principales novedades de Zend 2 respecto a la versión anterior son las siguientes:
- Desarrollo basado en Pruebas Unitarias con PHPUnit
- Un nuevo sistema de módulos para organizar el código
- Una nueva arquitectura basada en servicios mediante Inyección de Dependencias
- Un gestor de eventos para olvidarse de los hooks y poder ejecutar código propio en cualquier punto de la ejecución de las aplicaciones
3.- Instalación de Zend Framework
3.1.- Pre Requisitos
Zend Framework 2 requiere una adecuada compresión y uso de la Programación Orientada a Objetos de PHP, así como de Apache; en cuanto al uso de VirtualHost, mod_rewrite, y los archivos .htaccess; y del manejo de un servidor de base de datos (MySQL). Con la finalidad de comprender un entorno de desarrollo profesional; aparte de los requisitos mencionados, usaremos Ubuntu Linux como Sistema Operativo para el servidor y desplegaremos el primer hola mundo en el Framework.
3.2.- Instalación de Ubuntu Linux
Podemos instalar Ubuntu Linux de manera física en una máquina virtual; para quienes tengan instalada una máquina física con Ubuntu pueden obviar este paso y para quienes solo tengan Windows, pueden instalarlo fácilmente con Virtualbox
3.2.1.- Instalación de VirtualBox
Descargamos VirtualBox para widows de http://www.virtualbox.org y lo instalamos
3.2.2.- Instalación de Ubuntu Linux en una Máquina Virtual de VirtualBox
- Le damos click al icono de Nueva y le damos nombre a la máquina virtual "Ubuntu LAMP Server", se va seleccionar Tipo: Linux Versión: Ubuntu
- Seleccionamos 1024MB de RAM para la nueva máquina Virtual
- Creamos una nueva unidad de disco duro de y seleccionamos "Crear un disco Virtual Ahora" - Tipo de unidad de disco duro: VDI - Reservado Dinámicamente - Ubicación y Tamaño por defecto se guarda en la carpeta VirtualBox VMs en la carpeta del usuario; - tamaño 6GB - Crear
- Ahora le damos click en Configuración - Seleccionamos Red y elejimos Adaptador Puente Nombre: Poner la tarjeta de Red - Dar click en Almacenamiento y donde dice a la derecha Unidad CD/DVD dar click al ícono de CD y seleccionar la unidad de CD donde está el disco instalador de Ubuntu; tambien se puede seleccionar el archivo iso; luego dar clik en Aceptar - Dar click en la flecha verde "Iniciar" para arrancar la máquina virtual
- Ahora iniciará el CD de Ubuntu; despues de un momento nos saldrá un diálogo para
- elegir el idioma y a la izquierda le damos click en "Instalar Ubuntu", le damos
- click en "Continuar"
- Borrar el disco e Instalar Ubuntu
- Instalar Ahora
- Donde se Encuentra "Lima"
- Distribución del Teclado "Español Latinoamericano"
- ¿Quién es Usted?
Su nombre: alumno
El nombre de su equipo: serverlamp
Nombre de usuario: alumno
Contraseña: alumno
Confirme su Contraseña: alumno
Al final de la instalación nos pide Reiniciar
- Podemos hacer la instalación con la pantalla completa
- Para sacar el puntero del mouse de la máquina virtual, presionar el ctrl de la derecha
- Si se demora en "Descargar fichero" o en "Descargar paquetes de idioma" dar click en la flecha de despliegue y luego "skip"
3.2.3.- Configuracion de la Red
Para nuestro curso usaremos una red hipotética 192.168.1.0/24 con asignación de IP de nuestro equipo linux 192.168.1.10, router 192.168.1.1 y DNS 8.8.8.8
- Dar click a las flechas opuestas que está en la barra superior y elegir "Editar las conexiones"
- Seleccionar Conexión Cableada 1 y click en Editar
- Pestaña "Ajustes Ipv4"
- Método manual
- click en añadir:
Dirección: 192.168.1.10
Mascara de Red: 24
Puerta de Enlace: 192.168.1.1
Servidores DNS: 8.8.8.8
Guardar y Cerrar.
3.3.- Instalación de SSH, Apache, PHP y MySQL
- Dar click en el icono Ubuntu y escribir en la barra de comandos terminal
- La terminal de Linux nos permite ejecutar comandos para administrar el sistema operativo; al abrir la terminal iniciamos con el usuario alumno
- Para loguearnos como root (el superusuario de Linux) ejecutamos:
$> sudo su - clave: alumno
- Actualizamos la lista de paquetes instalables
$> apt-get update- Ahora instalamos el servidor SSH para poder administrar remotamente nuestro servidor
$> apt-get -y install ssh- Ahora para probar la conexión desde windows descargamos el programa putty http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html descargar el archivo putty.exe, ejecutarlo y conectarse al IP del servidor linux
usar el usuario: alumno clave: alumno
3.3.1.- Instalación de PHP, MySQL y Apache (Entorno de Desarrollo)
$> sudo su - $> apt-get update $> apt-get install php5 apache2 php5-cli \ php5-xdebug php5-mysql mysql-server \ php5-mcrypt php5-gd php5-memcache php-pear Reiniciamos apache $> /etc/init.d/apache2 restart Nos pide una contraseña para el root de Mysql clave: alumnodesde windows abrir el navegador y entrar a la IP del servidor
3.4.- Comandos básicos para trabajar con archivos y directorios En linux existe solo un directorio princiapl raiz / y en el cual se encuentran todos los demas directorios, Ej: el DOCUMENT_ROOT (raiz de pàginas web) se encuentra en /var/www la base de datos se encuentra en /var/lib/mysql los archivos de configuración de apache se encuentran en /etc/apache2 Nos logueamos como root
$> sudo su -
Comando cd
Nos sirve para movernos por los directorios Ej:
$> cd /var/www $> cd /etc/apache2 $> cd conf.d
Comando pwd
Nos dice en que directorio nos encontramos Ej:
$> cd /var/www $> cd pwd
Comando ls
Nos sirve para listar los archivos y directorios
Ej:
$> cd /var/www $> ls - Listar en columnas y detalles Ej: $> ls -l (lista el directorio actual) $> ls -l / (lista los directorios del raiz) $> ls /etc/apache2/conf.d (lista el directorio /etc/apache2/conf.d )
Comando mkdir
Nos sirve para crear directorios
Ej:
$> cd /var/www $> mkdir images $> mkdir js $> mkdir css
Comando nano nano es un editor sencillo para crear archivos
Ej:
$> cd /var/www $> nano index.php
<?php echo "<h1>hola mundo</h1>"; ?>ctrl + o --> grabar ctrl + x --> salir Desde windows entrar a la IP del servidor con el navegador http://192.168.1.10
Comando cp
Nos sirve para crear archivos y directorios
Ej:
$> cd /var/www $> cp index.php saludo.php (copia un archivo)Desde windows entrar a la IP del servidor con el navegador http://192.168.1.10/saludo.php
$> cp -R images imagenes (copia un directorio) $> ls -l /var/www
Comando mv
Nos sirve para renombrar y mover archivos y directorios
Ej:
$> cd /var/www $> mv js javascript (renombrando el directorio js a javascript) $> ls $> mkdir banners $> mv banners images/ (moviendo el directorio banners a images)
3.5 El editor vim
El editor vim es el editor más común en las plataformas unix; su resaltado de syntaxis nos ayuda con los archivos de configuración
Comandos del Editor VIM ESC : ingresa al modo comando i : entra en modo insercion desde la misma linea o : entra en modo insercion desde la sgte linea 1G : va a la primera linea 23G : va a la linea 23 :45 : va a la linea 45 G : va a la ultima linea /palabra : busca una cadena n : sigue buscando dd : corta o borra una linea d8d : corta o borra 8 lineas yy : copia una linea y7y : copia 7 lineas p : pega el contenido del portapapel 5p : pega 5 veces el contenido del portapapel u : deshace la ultima accion ctrl+r : rehace la ultima accion x : borra una letra :w : graba el archivo actual :wq : graba y sale :w! : graba de forma forzada :wq! : graba y sale forzadamente :q! : sale forzadamente :1,$s/busqueda/reemplaza/g :busca una cadena y la reemplaza :! comando : ejecuta un comando en bash y vuelve a VIM :e archivo : abre un nueva archivo en el sgte buffer :b1 : va el primer buffer abierto :b2 : va al segundo buffer, para cambiar de buffer hay que grabar el buffer actual :set number : muestra los numeros de linea :set nonumber : quita los numeros de linea :set paste : habilita el pegado sin auto identificacion :set ts=3 : establece a 3 los espacios de los tabs Insertar : entra en modo de reemplazo :saveas archivo : guarda como nombre archivo :shitf+a : entra en modo insercion al final dpel D : elimina texto desde el cursor actual hasta el final de la linea dG : elimina todo hasta la ultima linea :wq! ++utf8 : guarda el fichero en modo UTFP (por defecto) :nohl : cancela los resultados de busqueda
Instalación de VIM
$> sudo su - $> apt-get -y install vim
Ejercicio 1: Crear archivo poema
$> vim poema i -----> Inserta texto Oh gran Linux que quita la ignorancia en mi vida, a ti te consagro mi aprendizaje. ESC ----> Lleva al modo comando :wq ----> graba y sale $> cat poema Gestion de temporales de vim $> vim poema (agregar al final) G ----> van a la última línea o ----> modo inserción en una nueva línea Prometo alejarme del maligno windows Cerrar a la mala dando click en la X de la ventana del terminal $> vim poema Sale el mensaje de alerta el temporal y puede elegir entre estas opciones [A]brir para lectura únicamente, (E)ditar de todas formas, (R)ecuperar, (B)orrar(S)alir, (A)bortar: Seleccionamos "r" y le damos enter i -----> insetar texto desde mañana ESC -----> volver al modo comando :wq! -----> grabar y salir forzadamente Borrar el temporal $> rm -f .poema.swp
Ejercicio2:
Crear archivo saludo y ejecutar ejercicios de comandos vim
$> vim saludo i hola mundo ESC yy 20p G o windows es lo maximo ESC /hola n n :set number G yy 30p :1,$s/windows/linux/g dd 45G d2d dG u ctrl+R :! date :w :e otrosaludo :b1 1G yG :b2 p :wq! $> cat saludo (muestra el contenido del archivo) $> cat otrosaludo
Archivo de configuracion de VIM
$> vim /etc/vim/vimrc 36G ---> ir a la linea 36 borrar la comilla inicial de las siguientes 3 lineas de la 36 a la 38 G ---> ir a la última línea o set nobackup set number set ts=4 set paste ESC :wq $> vim /etc/vim/vimrc ESC:q
4.- Instalación de ZendFramework 2
Una vez que ya tenemos nuestro entorno LAMP, vamos a configurar un primer proyecto con Zend Framework 2
4.1.- Prerequisitos
1.- Primero necesitamos habilitar el módulo mod_rewrite en Apache y permitir el uso de .htaccess en los directorios
2.- Instalar composer
3.- Crear el proyecto de Zend Framework 2 con Composer
4.1.1 .- Habilitando mod_rewrite en Apache
$> sudo su - $> cd /etc/apache2/mods-enabled $> ln -s ../mods-available/rewrite.load $> /etc/init.d/apache2 restart4.1.2.- Instalando Composer (Gestor de dependencias de librerías)
$> sudo su - Primero instalamos curl (comando para descargar archivos) $> apt-get install curl Ahora instalaremos git (sistema de control de versiones distribuido) $> apt-get install git Descargamos composer y lo movemos al /usr/bin para ejecutarlo en cualquier directorio $> curl -s https://getcomposer.org/installer | php -- $> mv composer.phar /usr/bin Nota: si nos sale un mensaje de warning de timezone en php $> vim /etc/php5/cli/php.ini (archivo de configuración para consola) 960: date.timezone = America/Lima $> vim /etc/php5/apache2/php.ini (archivo de configuración para web) 960: date.timezone = America/Lima4.1.3 .- Creando el proyecto de Zend Framework 2
Con composer crearemos el proyecto zftest en el directorio /var/www/zftest
Esto nos creará el proyecto y nos descargará el ZendFramework2
$> composer.phar create-project -s dev \ --repository-url="http://packages.zendframework.com" \ zendframework/skeleton-application /var/www/zftest
4.l.4.- Editando el VirtualHost
para hacer que el directorio /var/www/zftest/public sea el raíz
Reemplazamos todo el contenido existente
$> vim /etc/apache2/sites-enabled/000-default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/zftest/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/zftest/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Ahora reiniciamos apache y accedemos al proyecto desde el navegador http://localhost
$> /etc/init.d/apache2 restart
Para verificar que el archivo .htaccess está funcionando, navegamos a http://localhost/loquesea y debería saler un error 404 con el logo de ZF
Finalmente editaremos la vista del Módulo Application, Controlador Index, Action Index
Reemplazando todo el contenido
$> vim /var/www/zftest/module/Application/view/application/index/index.phtml <h1> Hola Mundo desde Zend Framework 2 </h1>Entramos con el navegador a http://localhost y veremos el mensaje del hola mundo
5.- Herramienta de Depuración de PHP
Xdebug es una extensión para depurar errores en php, para poder configurarlo
instalamos la extensión php5-xdebug
$> apt-get install php5-xdebug
Activamos Xdebug (verificar la carpeta donde se encuentra la extension xdebug.so)
$> vim /etc/php5/conf.d/xdebug.ini xdebug.ion=/usr/lib/php5/20100525/xdebug.so xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_mode=req xdebug.profiler_enable=1 xdebug.profiler_output_dir="/tmp/xprofile/" xdebug.collect_params=On xdebug.show_local_vars=On Activamos la visualización de error en formato html para poder depurarlos efectivamente $> vim /etc/php5/apache2/php.ini display_errors=On html_errors = On $> vim /etc/php5/cli/php.ini display_errors=On $> /etc/init.d/apache2 restart
sábado, diciembre 14, 2013
Curso de Zimbra - Capítulo III (Instalación Multiservidor de Zimbra)
Una de las funcionalidades de zimbra es que puede instalarse en modo multiservidor con lo cual nos permite el balanceo de carga y despliegue de la solución para una gran cantidad de usuarios.Mis manuales actualizados de Zimbra (2017)https://cloudperu.pe/manuales/listadoSi Ud. desea llevar un curso de Zimbra; puede ver mi Curso en Aula Útil https://aulautil.com/curso/online/zimbra. Clases con Videoconferencia y asistencia en tiempo real con Anydesk. Incluye Gratis 2 Servidores VPS Cloud (Firewall UTM+Zimbra) + 1 IP pública y dominio real por alumno.
En el presente capítulo configuraremos Zimbra en un entorno multiservidor
bajo el siguiente esquema:
--------------- | MTA,LDAP,DNS | smtp.dominio.com --------------- | | | | | | -------- ------- |Mailbox | |Mailbox| |Store | |Store | |Webmail | |Webmail| |Logger | | | -------- ------- mailbox1.dominio.com mailbox2.dominio.com
1.- Configuración del DNS Server ------------------------------------------------------------------- Configuramos en el DNS Server , los registros de DNS para el dominio ------------------------------------------------------------------- smtp IN A 192.168.10.2 mailbox1 IN A 192.168.10.3 mailbox2 IN A 192.168.10.4 dominio.com. IN MX smtp.dominio.com. $> service httpd stop $> chkconfig httpd off $> service iptables stop $> service iptables save $> service named restart $> vim /etc/resolv.conf nameserver 192.168.10.2
Comprobación de los registros DNS $> dig MX dominio.com $> dig smtp.dominio.com $> dig mailbox1.dominio.com $> dig mailbox2.dominio.com
2.- Instalación del primer servidor Zimbra (SMTP,LDAP y Proxy) ##########################################################################################
Configuración del hostname para smtp --------------------------------------------- $> vim /etc/sysconfig/network HOSTNAME=smtp.dominio.com $> hostname smtp.dominio.com $> su - Luego, comprobar el nombre del hostname $> hostname Configurar la IPs de los hosts de correo $> vim /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.10.2 smtp.dominio.com smtp 192.168.10.3 mailbox1.dominio.com mailbox1 192.168.10.4 mailbox2.dominio.com mailbox2instalar dependencias $> yum install libstdc++.i686 nc sysstat file Deshabilitar postfix $> service postfix stop $> chkconfig postfix off Deshabilitar apache $> service httpd stop $> chkconfig httpd off
Descargar Zimbra Open Source Edition $> wget http://files2.zimbra.com/downloads/8.0.6_GA/zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> tar -zxvf zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> cd zcs-8.0.6_GA_5922.RHEL6_64.20131203103705
Instalación de smtp.dominio.com $> ./install.sh --platform-override Do you agree with the terms of the software license agreement? [N] Y Select the packages to install Install zimbra-ldap [Y] Y Install zimbra-logger [N] N Install zimbra-mta [Y] Y Install zimbra-snmp [Y] Y Install zimbra-store [Y] N Install zimbra-apache [Y] N Install zimbra-spell [Y] N Install zimbra-memcached [N] Y Install zimbra-proxy [N] Y Install anyway? [N] Y The system will be modified. Continue? [N] Y Change domain name? [Yes] Yes Create domain: [smtp.dominio.com] dominio.com Address unconfigured (**) items (? - help) 1 Select, or 'r' for previous menu [r] 4 Password for ldap admin user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 6 Enter the number for the local timezone: [23] 11 Select, or 'r' for previous menu [r] r Address unconfigured (**) items (? - help) 2 Select, or 'r' for previous menu [r] 4 Password for ldap root user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 5 Password for ldap replication user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 6 Password for ldap Postfix user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 7 Password for ldap Amavis user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 8 Password for ldap Nginx user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] 9 Password for ldap BES user (min 6 characters): [dqrGZV27] alumno Select, or 'r' for previous menu [r] r Address unconfigured (**) items (? - help) 3 Select, or 'r' for previous menu [r] 2 Please enter the mta authentication server hostname: smtp.dominio.com Select, or 'r' for previous menu [r] r *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Yes Save config in file: [/opt/zimbra/config.7238] The system will be modified - continue? [No] Yes Nos sale estos mensajes, por el proxy que no encuentra mailstore, lo solucionaremos después WARNING You are configuring this host as an MTA server, but the specified mailstore used for authentication has not been configured to run the mailbox service yet. This will cause smtp authentication to fail. To correct this - after installing a mailstore server, reset the zimbraMtaAuthHost attribute for this server: /opt/zimbra/bin/zmprov -m -l ms smtp.dominio.com zimbraMtaAuthHost smtp.dominio.com Once done, start the MTA: zmmtactl start Press return to continue Setting MTA auth host...failed. Setting TimeZone Preference...done. WARNING You are configuring this host as a proxy server, but there is currently no mailstore to proxy. This will cause proxy startup to fail. Once you have installed a store server, start the proxy service: zmproxyctl start Press return to continue 3.- Instalación del segundo servidor: mailbox1.dominio.com ##########################################################################################
Editamos el host y el ip del host $> vim /etc/sysconfig/network HOSTNAME=mailbox1.dominio.com $> hostname mailbox1.dominio.com $> su - Luego, comprobar el nombre del hostname $> hostname Configurar la IPs de los hosts de correo $> vim /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.10.2 smtp.dominio.com smtp 192.168.10.3 mailbox1.dominio.com mailbox1 192.168.10.4 mailbox2.dominio.com mailbox2 Usar como DNS server el smtp $> vim /etc/resolv.conf nameserver 192.168.10.2 $> service httpd stop $> chkconfig httpd off $> service iptables stop $> service iptables save
instalar dependencias $> yum install libstdc++.i686 nc sysstat file Deshabilitar postfix $> service postfix stop $> chkconfig postfix off Deshabilitar apache $> service httpd stop $> chkconfig httpd offDescargar Zimbra Open Source Edition $> wget http://files2.zimbra.com/downloads/8.0.6_GA/zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> tar -zxvf zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> cd zcs-8.0.6_GA_5922.RHEL6_64.20131203103705
Instalación de mailbox1.dominio.com$> ./install.sh --platform-override Do you agree with the terms of the software license agreement? [N] Y Select the packages to install Install zimbra-ldap [Y] N Install zimbra-logger [Y] Y Install zimbra-mta [Y] N Install zimbra-snmp [Y] Y Install zimbra-store [Y] Y Install zimbra-apache [Y] Y Install zimbra-spell [Y] Y Install zimbra-memcached [N] N Install zimbra-proxy [N] N This platform is CentOS5_64 Packages found: RHEL5_64 This may or may not work. Using packages for a platform in which they were not designed for may result in an installation that is NOT usable. Your support options may be limited if you choose to continue. Install anyway? [N] Y The system will be modified. Continue? [N] Y Address unconfigured (**) items (? - help) 1 Select, or 'r' for previous menu [r] 2 Please enter the ldap server hostname: smtp.dominio.com Select, or 'r' for previous menu [r] 4 Password for ldap admin user (min 6 characters): alumno Select, or 'r' for previous menu [r] r Address unconfigured (**) items (? - help) 2 Select, or 'r' for previous menu [r] 4 Password for admin@dominio.com (min 6 characters): [W0oVBhou] alumno Select, or 'r' for previous menu [r] 9 Please enter the SMTP server hostname: smtp.dominio.com Select, or 'r' for previous menu [r] r *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Yes Save config in file: [/opt/zimbra/config.32536] Saving config in /opt/zimbra/config.32536...done. The system will be modified - continue? [No] Yes Registramos en el SMTP Server el mailbox1 (smtp.dominio.com)
Ejecutar esto en el servidor smtp (192.168.10.2)
$> /opt/zimbra/bin/zmprov -m -l ms mailbox1.dominio.com zimbraMtaAuthHost mailbox1.dominio.com
$> su - zimbra
$> zmmtactl restart
$> zmproxyctl restart
$> zmcontrol status
Actualizamos los keys del ssh en el mailbox1 para obtener los logs del smtp (mailbox1.dominio.com)
Ejecutar esto en el servidor mailbox1 (192.168.10.3)
$> su - zimbra $> zmupdateauthkeys ahora como root editar $> vim /etc/sysconfig/rsyslog SYSLOGD_options="-r -m 0" $> /etc/init.d/rsyslog restart Hacemos que el SMTP loguee al mailbox1 (smtp.dominio.com)Ejecutar esto en el servidor smtp (192.168.10.2)
$> su - zimbra $> zmupdateauthkeys ahora como root ejecutar $> /opt/zimbra/libexec/zmsyslogsetup $> /etc/init.d/rsyslog restart 4.- Instalación del tercer servidor: Mailbox2 #################################################################################
Editamos el host y el ip del host $> vim /etc/sysconfig/network HOSTNAME=mailbox2.dominio.com $> hostname mailbox2.dominio.com $> su - Luego, comprobar el nombre del hostname $> hostname Configurar la IPs de los hosts de correo $> vim /etc/hosts 127.0.0.1 localhost.localdomain localhost 192.168.10.2 smtp.dominio.com smtp 192.168.10.3 mailbox1.dominio.com mailbox1 192.168.10.4 mailbox2.dominio.com mailbox2 Usar como DNS server el smtp $> vim /etc/resolv nameserver 192.168.10.2 $> service postfix stop $> chkconfig postfix off $> service httpd stop $> chkconfig httpd off $> service iptables stop $> service iptables saveInstalación de mailbox2.dominio.com $> ./install.sh --platform-override Do you agree with the terms of the software license agreement? [N] Y Select the packages to install Install zimbra-ldap [Y] N Install zimbra-logger [Y] N Install zimbra-mta [Y] N Install zimbra-snmp [Y] Y Install zimbra-store [Y] Y Install zimbra-apache [Y] Y Install zimbra-spell [Y] Y Install zimbra-memcached [N] N Install zimbra-proxy [N] N This platform is CentOS5_64 Packages found: RHEL5_64 This may or may not work. Using packages for a platform in which they were not designed for may result in an installation that is NOT usable. Your support options may be limited if you choose to continue. Install anyway? [N] Y The system will be modified. Continue? [N] Y Address unconfigured (**) items (? - help) 1 Select, or 'r' for previous menu [r] 2 Please enter the ldap server hostname: smtp.dominio.com Select, or 'r' for previous menu [r] 4 Password for ldap admin user (min 6 characters): alumno Select, or 'r' for previous menu [r] r Address unconfigured (**) items (? - help) 2 Select, or 'r' for previous menu [r] 4 Password for admin@dominio.com (min 6 characters): [W0oVBhou] alumno Select, or 'r' for previous menu [r] 6 Please enter the SMTP server hostname: smtp.dominio.com Select, or 'r' for previous menu [r] r *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Yes Save config in file: [/opt/zimbra/config.32536] Saving config in /opt/zimbra/config.32536...done. The system will be modified - continue? [No] Yes Actualizamos los keys $> su - zimbra $> zmupdateauthkeys como root ejecutar $> /opt/zimbra/libexec/zmsyslogsetup $> /etc/init.d/rsyslog restart Registramos en el SMTP Server el mailbox2 (smtp.dominio.com) ---------------------------------------------------------------------------------instalar dependencias $> yum install libstdc++.i686 nc sysstat file Deshabilitar postfix $> service postfix stop $> chkconfig postfix off Deshabilitar apache $> service httpd stop $> chkconfig httpd offDescargar Zimbra Open Source Edition $> wget http://files2.zimbra.com/downloads/8.0.6_GA/zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> tar -zxvf zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz $> cd zcs-8.0.6_GA_5922.RHEL6_64.20131203103705
Ejecutar esto en el servidor smtp (192.168.10.2)
$> /opt/zimbra/bin/zmprov -m -l ms mailbox2.dominio.com zimbraMtaAuthHost mailbox2.dominio.com
$> su - zimbra
$> zmmtactl restart
$> zmproxyctl restart
$> zmupdateauthkeys
Actualizamos los keys de mailbox1
---------------------------------------------------------------------------------
Ejecutar esto en el servidor mailbox1 (192.168.10.3)
$> su - zimbra
$> zmupdateauthkeys
Listo ahora solo pobramos el envío y recepción de correo de los nodos
Suscribirse a:
Entradas (Atom)