Publicado el Deja un comentario

Limpiar las papeleras de emails – Trash en Linux

limpiar-las-papeleras-de-emails-trash-en-linux

Muchos clientes borran los emails del webmail pero luego no vacían la papelera (trash) con lo cual sus espacios se van llenando. A su vez, las carpetas de spam tampoco son limpiadas por los clientes con regularidad provocando la misma situación.

Con la finalidad de asegurar que las carpetas de la papelera y el spam sean limpiadas cada semana debemos crear el siguiente script:

cd /usr/local/src
nano limpiar_papeleras.sh

Insertar lo siguiente:

#!/bin/bash
MAILDIRS=$(find /home/*/mail/*/* -maxdepth 0 -type d)
INBOXFOLDERS=(.Trash .Junk .Spam .Low\ Priority .cPanel\ Reports)
for basedir in $MAILDIRS; do
 for ((i = 0; i < ${#INBOXFOLDERS[*]}; i++)); do
 for dir in cur new; do
 [ -e "$basedir/${INBOXFOLDERS[$i]}/$dir" ] && (
 echo "Procesando $basedir/${INBOXFOLDERS[$i]}/$dir..."
 find "$basedir/${INBOXFOLDERS[$i]}/$dir/" -type f -mtime +7 -delete
 )
 done
 done
done
/scripts/generate_maildirsize --verbose --allaccounts --onlyrecalculate --confirm

Guardar el archivo y ejecutar:

chmod 755 limpiar_papeleras.sh

Ahora ejecutar el script para limpiar las papeleras por primera vez:

./limpiar_papeleras.sh

Y para asegurar que se ejecute todos los lunes a las 4:30am ejecutamos:

crontab -e

Colocamos al final:

30 4 * * 1 /usr/local/src/limpiar_papeleras.sh > /dev/null 2>&1

Guardamos el archivo y luego ejecutamos

service crond restart

LISTO.

Publicado el Deja un comentario

Cron para realizar backups remotos en GoDaddy para Linux

cron-para-realizar-backups-remotos-en-godaddy-en-linux

Con la finalidad de asegurarnos de mantener respaldos de los espacios de las cuentas del cPanel en Servidores externos al menor costo posible y en forma segura, se recomienda adquirir varias cuentas Godaddy para el servicio “Almacenamiento En Línea de Go Daddy DeLuxe“ con una capacidad de 100 GB c/u.

La idea es que los respaldos se realicen en forma automática los días indicados en la columna Día del Cron (0=Domingo).

El cron ejecuta el script respaldos.sh ubicado en cd /backup/cpbackup/weekly/

El script de respaldos.sh es:

#!/bin/sh
# Respalda los archivos de backup en la cuenta de GoDaddy
# Verifica si es el dia de la semana en que se debe ejecutar, de lo contrario sale del script
if (("`date +%w`" != "0")); then exit
else
date +'%a %e %b %Y %H:%M:%S %Z'
# Se ubica en la carpeta de respaldos semanales del servidor
cd /backup/cpbackup/weekly/
# Crea el archivo remotos.ftp donde se colocaran los comandos ftp
> remotos.ftp echo user USUARIO CONTRASEÑA
# Verifica el numero del dia del mes para conocer la semana (0 = 1era semana) y se cambia a la carpeta correspondiente
if (($((`date +%d`/7)) == 0)); then
 >> remotos.ftp echo cd ServerN/1
 echo "Seleccionada la Carpeta 1 del Servidor N"
elif (($((`date +%d`/7)) == 1)); then
 >> remotos.ftp echo cd ServerN/2
 echo "Seleccionada la Carpeta 2 del Servidor N"
elif (($((`date +%d`/7)) == 2)); then
 >> remotos.ftp echo cd ServerN/1
 echo "Seleccionada la Carpeta 1 del Servidor N"
elif (($((`date +%d`/7)) == 3)); then
 >> remotos.ftp echo cd ServerN/2
 echo "Seleccionada la Carpeta 2 del Servidor N"
fi
# Hace el ciclo para crear los comandos put de cada archivo
echo "Haciendo el Ciclo de archivos a pasar por FTP"
for i in `ls *.tar.gz`
do
 ln -s $i "backup-$i"
 >>remotos.ftp echo put "backup-$i"
done
# Al culminar el ciclo ejecuta la salida del FTP
>>remotos.ftp echo quit
# Ahora se conecta via FTP pasandole como entrada el archivo remotos.ftp creado
echo "Ejecutando la conexion FTP y transfiriendo los archivos"
ftp -u onlinefilefolder.com < remotos.ftp
# Limpia por seguridad los archivos creados
echo "Limpiando los archivos temporales"
echo > remotos.ftp
rm -f remotos.ftp
rm -f backup*
echo "Respaldos Externos realizados para el Servidor N"
date +'%a %e %b %Y %H:%M:%S %Z'
fi
# Fin

El día indicado cada semana se estará haciendo un respaldo en la carpeta ServerN/1 (para las semanas 1 y 3 del mes) ó ServerN/2 (para las semanas 2 y 4 del mes) donde N corresponde al Nro del Servidor.

El USUARIO y la CONTRASEÑA se colocan en función del servicio de GoDaddy asignado al servidor correspondiente.

Para Conectarse por FTP el Host es onlinefilefolder.com y el puerto es el 21. El Usuario y la Contraseña son los correspondientes a los servicios de GoDaddy.

Es posible además ingresar a los servicios a través de www.godaddy.com, luego de ingresar el usuario/contraseña de la cuenta, escogiendo en el Menú: Storage > Online Storage Management y luego haciendo clic en la opción Launch al lado del servicio correspondiente. Esto abre una nueva ventana donde se muestran los servicios y del lado derecho cada uno tiene un ícono que permite abrir las carpetas Launch Online File Folder.

Los archivos se pueden descargar por FTP o vía Web.

NOTA: Deben hacerse varios cambios en función del servidor correspondiente, como son:

  • Sustituir arriba el USUARIO y la CONTRASEÑA por los provistos por GoDaddy
  • Sustituir la letra N en Servidor N por el número que corresponda.
  • En función del día que se quiera ejecutar se debe colocar en el if el número correspondiente  (ejemplo: 0=Dom, 1=Lun, 2=Mar … 6=Sab).
  • Sustituir la N en ServerN por el número que corresponda según el servidor de producción a respaldar de tal forma que los archivos sean guardados en la carpeta correspondiente.

Para instalar el script debemos ingresar por SSH y ejecutar:

cd /backup/cpbackup/weekly
nano respaldos.sh

Colocarle el contenido del Script configurado de acuerdo al servidor correspondiente y guarder el archivo.

Ahora debemos ejecutar:

chmod 700 respaldos.sh

Luego debemos crear el cron que ejecutará los respaldos remotos mensualmente, para ello ejecutamos:

crontab -e

Insertamos al final:

0 20 * * 6 /backup/cpbackup/weekly/respaldos.sh

Guardamos y salimos.

En el caso anterior, el cron se ejecutará todos los sábados a las 8:00pm.

Es importante destacar que el cron lo debemos ejecutar un día diferente al día en que se hacen los backups programados del cpanel para evitar sobrecargas innecesarias.

A su vez, no debemos colocar la ejecución de los cron iguales en todos los servidores de producción ya que GoDaddy causará una cola innecesaria. Lo mejor es colocarlos en horarios diferentes entre los servidores de producción (ej. Sáb 7am, Sáb 2pm, Sáb 7pm, Dom 7am, etc.).

Para finalizar reiniciamos el servicio crond y listo:

service crond restart
Publicado el Deja un comentario

Configurar un disco secundario y crear la partición /backup para el cPanel en Linux

configurar-un-disco-secundario-y-crear-la-partición-backup-en-servidores-linux

Cuando se instalan discos secundarios para manejar los respaldos de las cuentas del disco primario, debemos preparar dicho disco para que pueda manejar los respaldos del cpbackup. Para ello debemos ingresar por SSH y ejecutar:

fdisk /dev/sdb

Lo que mostrará en pantalla algo como:

The number of cylinders for this disk is set to 60801.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):

Luego para conocer las opciones de commandos podemos escribir la opción m y mostrará:

Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partitions system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Ahora podemos ejecutar la opción n para agregar una nueva partición y luego la opción p para definirla como primaria, a su vez, debemos elegir el número de la partición que normalmente deberá ser 1:

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
Partition 1 is already defined. Delete it before re-adding it.

En este caso debido a que la partición 1 ya existía entonces debe eliminarse con la opción d para luego proceder con las opciones n p 1:

Command (m for help): d
Selected partition 1
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-60801, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801): 60801

Ahora debemos darle un ID a la partición, para ello ejecutamos la opción t:

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

Para conocer cual Hex code vamos a colocar, ejecutamos la opción L y muestra la siguiente lista:

0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32m 40="" venix="" 80286="" 84="" os="" 2="" hidden="" c:="" c7="" syrinx="" br="">5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT
f W95 Extd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 61="" speedstor="" a9="" netbsd="" f2="" dos="" secondary="" br="">16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT <!--3--><!--32m-->

Por lo cual escogemos el código 83 que equivale a Linux:

Hex code (type L to list codes): 83

Finalmente, para que la tabla de la partición quede grabado en el disco debemos ejecutar la opción w:

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

Ahora, debemos crear el sistema de archivos ext3 con el comando mkfs.ext3, para conocer su uso ejecutamos:

mkfs.ext3 --help

y nos mostrará:

mkfs.ext3: invalid option -- -
Usage: mkfs.ext3 [-c|-t|-l filename] [-b block-size] [-f fragment-size]
[-i bytes-per-inode] [-j] [-J journal-options] [-N number-of-inodes]
[-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group]
[-L volume-label] [-M last-mounted-directory] [-O feature[,...]]
[-r fs-revision] [-R options] [-qvSV] device [blocks-count]

Por lo que para lograr lo que queremos ejecutamos:

mkfs.ext3 -b 4096 /dev/sdb1

Y nos mostrará en pantalla:

mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61063168 inodes, 122096000 blocks
6104800 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
3727 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Ahora debemos crear el directorio que será asignado a la partición, ejecutando:

mkdir /backup

Para que la partición siempre responda como dicho directorio debemos editar el archivo fstab y colocarla al final:

nano /etc/fstab

Agregar:

/dev/sdb1 /backup ext3 defaults 1 1

Ahora debemos montar la partición con:

mount /backup

Ingresamos en el WHM y configuramos las opciones de backup de acuerdo a lo explicado en un punto previo, y finalmente forzamos la ejecución del cpbackup:

/scripts/cpbackup --force

LISTO

Publicado el Deja un comentario

Asegurar que el error_log no se llene por errores de favicon, 400, 401, 403, 404, 406, 500, robots.txt en Linux

asegurar-que-el-error-log-no-se-llene-por-errores-de-favicon-en-servidores-de-linux

El archivo de manejo de errores del apache (/usr/local/apache/logs/error_log) en Linux se llena continuamente de errores por la inexistencia en las cuentas de los clientes de los archivos favicon.ico, 400.shtml, 401.shtml, 403.shtml, 404.shtml, 406.shtml, 500.shtml y robots.txt. Para evitar este inconveniente debemos crear estos archivos vacíos (en el caso del favicon.ico se puede crear con creadores online) y copiarlos en el esqueleto del cpanel de tal forma que queden instalados con cada nueva creación de una cuenta. A su vez, debemos hacer un cron que ejecute un script que verifique la inexistencia de estos archivos en las cuentas para que los copie en el caso de que no existan, evitando así el reporte de dichos errores.

El procedimiento a seguir para esto es:

Crear el archivo de favicon.ico usando un creador de favicons (googlearlo)

Crear los archivos de los errores (400.shtml, 401.shtml, 403.shtml, 404.shtml, 406.shtml, 500.shtml) con los contenidos deseados para cada uno. En principio pueden ser archivos vacios pero deben existir para que no generen errores en los logs.

Crear el archivo robots.txt con el contenido deseado (en principio puede estar vacío pero debe existir para que no genere errores en los logs).

Subir los archivos de errores a la carpeta:

adminXX/erroresphp

Ejecutar:

cp /home/admin41/erroresphp/* /root/cpanel3-skel/public_html/
cd /usr/local/src
nano -w repararerrores.sh

Colocar:

#!/bin/bash
# Asegurar la existencia en las cuentas de los archivos: favicon.ico, robots.txt, 400.shtml, 401.shtml, 403.shtml, 404.shtml, 406.shtml y 500.shtml
# Si no existen se copian desde /root/cpanel3-skel/public_html/ donde deben haber sido colocados previamente
# Esto permite que al crear una nueva cuenta se coloquen en forma automática y a la vez evitan que el archivo error_log del apache se llene
# Copyright 2011 TecnoSoluciones.com

# Retardo en Segundos entre cuentas
typeset -i DELAY=1

# Nos ubicamos en el directorio seguro
cd /home

for i in `ls /home/ | grep -v "virtfs\|tmp\|quota.user\|MySQL-install\|munin\|lost+found\|error_log\|cpeasyapache\|cpapachebuild\|cprestore/|aquota.user/|.cpan\|.cpanm\|.cpcpan\|cptmp/|backup/"`
do
echo "Verificando si existen los archivos en el usuario $i ..."
if [ ! -e /home/$i/public_html/favicon.ico ]
then
echo "$i no tiene favicon.ico - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/favicon.ico /home/$i/public_html/
chown $i:$i /home/$i/public_html/favicon.ico
chmod 644 /home/$i/public_html/favicon.ico
fi
if [ ! -e /home/$i/public_html/robots.txt ]
then
echo "$i no tiene robots.txt - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/robots.txt /home/$i/public_html/
chown $i:$i /home/$i/public_html/robots.txt
chmod 644 /home/$i/public_html/robots.txt
fi
if [ ! -e /home/$i/public_html/400.shtml ]
then
echo "$i no tiene 400.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/400.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/400.shtml
chmod 644 /home/$i/public_html/400.shtml
fi
if [ ! -e /home/$i/public_html/401.shtml ]
then
echo "$i no tiene 401.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/401.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/401.shtml
chmod 644 /home/$i/public_html/401.shtml
fi
if [ ! -e /home/$i/public_html/403.shtml ]
then
echo "$i no tiene 403.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/403.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/403.shtml
chmod 644 /home/$i/public_html/403.shtml
fi
if [ ! -e /home/$i/public_html/404.shtml ]
then
echo "$i no tiene 404.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/404.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/404.shtml
chmod 644 /home/$i/public_html/404.shtml
fi
if [ ! -e /home/$i/public_html/406.shtml ]
then
echo "$i no tiene 406.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/406.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/406.shtml
chmod 644 /home/$i/public_html/406.shtml
fi
if [ ! -e /home/$i/public_html/500.shtml ]
then
echo "$i no tiene 500.shtml - se copia a /home/$i/public_html/"
cp /root/cpanel3-skel/public_html/500.shtml /home/$i/public_html/
chown $i:$i /home/$i/public_html/500.shtml
chmod 644 /home/$i/public_html/500.shtml
fi
done

Guardar el archivo y salir.

Luego ejecutar:

chmod 755 repararerrores.sh
./repararerrores.sh
cd /usr/local/apache/logs/
service httpd stop
echo > error_log
service httpd start
service httpd status
tail -f error_log

Tomar nota de los errores y depurar los que queden pendientes.

Para que el cron se ejecute una vez a la semana a las 6am debemos ejecutar:

crontab -e

y agregar al final:

0 6 * * 1 /usr/local/src/repararerrores.sh > /dev/null 2>&1

Guardar el archivo y reiniciar el servicio crond con:

service crond restart

Listo

Publicado el Deja un comentario

Permitir las IPs de Blackberry en Linux

permitir-las-ips-de-blackberry-en-servidores-de-producción-de-linux

Para que las IPs del servicio de emails de Blackberry en Linux puedan funcionar sin inconvenientes, debemos agregarlas a la Lista Blanca tanto del cPHulk como del Firewall CSF. Las Ips que se deben agregar son:

206.51.26.0/24
193.109.81.0/24
204.187.87.0/24
206.53.144.0/20
216.9.240.0/20
67.223.64.0/19
93.186.16.0/20
68.171.224.0/19
74.82.64.0/19
173.247.32.0/19
178.239.80.0/20

Para agregarlas a la lista blanca del cPHulk debemos ingresar en:

WHM > Security Center > cPHulk Brute Force Protection

  • Clic en la pestaña White/Black List Management
  • Clic en el enlace Edit White List
  • Colocar todas las IPs en la caja titulada Trusted IPs (una IP por línea)
  • Clic en el botón Save

Para agregarlas a la lista blanca del CSF/BFD ingresar en:

WHM > Plugins > ConfigServer Security&Firewall

  • Buscar el texto Edit lfd ignore file
  • Seleccionar en la casilla la opción csf.ignore – IP Blocking (preseleccionada por default)
  • Clic en el botón Edit
  • Colocar las IPs en la caja (una IP por línea) comentando al lado de cada una con #Blackberry
  • Clic en el botón Change
  • Clic en el botón Restart lfd
Publicado el Deja un comentario

Habilitar el puerto 26 como alternativa para SMTP en Linux

habilitar-el-puerto-26-como-alternativa-para-smtp-en-linux

Luego de analizar los emails rebotados para muchos clientes, en virtud de que el problema era que las direcciones IP de sus proveedores de acceso a Internet estaban siendo bloqueadas por servidores tales como los de Yahoo, Live, MSN,Gmail, entre otros, se decidió que la solución era habilitar un segundo puerto SMTP para el envío de emails desde sus computadores. El puerto SMTP asignado es el 26.

Lo que debemos hacer en el servidor es:

Si ya tenemos el Firewall CSF instalado debemos abrir el puerto 26, para ello ingresar en:

WHM > Plugins > ConfigServer Security&Firewall

  • Clic en el botón Firewall Configuration
  • Buscar TCP_IN = y agregar el puerto 26
  • Buscar TCP_OUT = y agregar el puerto 26
  • Ir al final y hacer clic en el botón Change
  • Clic en el botón Restart csf+bfd

Luego debemos habilitar el Exim en el puerto 26, para ello ingresar en:

WHM > Service Configuration > Service Manager

  • Ubicar la sección Exim Mail Server (on another port).
  • Marcar las casillas de las columnas Enable y Monitor
  • Colocar 26 en la casilla Allow exim to listen on a port other than 25

Hacer clic en el botón Save.

Para que los usuarios puedan enviar correos sin tener la limitación del bloqueo del puerto 25, deben hacer lo siguiente en sus aplicaciones de clientes de correo electrónico (damos el ejemplo con Outlook 2007):

  1. Ingresar en el Outlook
  2. Hacer clic en el Menú Herramientas y luego en el Submenú Configuración de la Cuenta
  3. Seleccionar la cuenta de correo a cambiar y hacerle doble clic
  4. Al ingresar en la ficha de la cuenta de correo deben escribir en el Servidor de Correo Saliente (SMTP)mail.sudominio.com asegurándose de sustituir sudominio.com según sea el caso por su correspondiente nombre de dominio contratado.
  5. Luego hacer clic en el botón que indica Más Configuraciones para que se abra una nueva ventana.
  6. Hacer clic en la pestaña Servidor de salida de la ventana que abrió.
  7. Seleccionar Mi servidor de salida (SMTP) requiere autenticación.
  8. Hacer clic en la pestaña Avanzadas de la ventana que se abrió
  9. Colocar donde dice Servidor de Salida SMTP el número del puerto nuevo: cambiar 25 por 26
  10. Ahora para cerrar todo haga clic en la secuencia de botones: Aceptar > Siguiente > Finalizar > Cerrar
  11. LISTO “¦ ya deberían poder enviar emails sin que su proveedor de acceso a la internet les bloquee el puerto 25.
Publicado el Deja un comentario

Instalar Oracle Instant Client 10g en Linux

Instalar Oracle Instant Client 10g-en-linux

Instalar el Oracle Instant Client nos proporciona conexión a un servidor Oracle remoto desde el servidor en Internet, disponible para todos los programas del sistema. Oracle lo distribuye en archivos comprimidos o RPMs. El procedimiento es como sigue:

Descargar los tres paquetes de Oracle Instant Client desde:

Para CPUs de 32 bits:

http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

Para CPUs de 64 bits:

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

NOTA: Tiene que estar registrado para poder bajar los programas (el registro es gratis).

A continuación colocamos los enlaces directos actuales para estas descargas:

Para CPUs de 32 bits:

Instant Client Package – Basic:

oracle-instantclient12.1-basic-12.1.0.2.0-1.i386.rpm

Instant Client Package – SDK:

oracle-instantclient12.1-devel-12.1.0.2.0-1.i386.rpm

Instant Client Package – SQL*Plus:

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.i386.rpm

Para CPUs de 64 bits:

Instant Client Package – Basic:

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

Instant Client Package – SDK:

oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

Instant Client Package – SQL*Plus:

oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

Copiarlos usando SFTP o FTP en la carpeta:

/root/tmp/

Instalar los paquetes ejecutando:

rpm -ivh /root/tmp/oracle-instantclient-*

A su vez, si lo estamos haciendo en el servidor de desarrollo, podemos utilizar el webmin para instalar todos los paquetes de una manera sencilla si los hemos bajado a nuestro PC.

Crear el directorio para los archivos de configuración de oracle ejecutando:

mkdir /etc/oracle

Obtener el archivo tnsnames.ora del servidor remoto a dónde nos vamos a conectar y copiarlo a:

/etc/oracle/

Debemos asegurar que dicho archivo tenga correctamente configurado el HOST de acuerdo al dominio dinámico del sitio donde residirá Oracle.

Ahora se deben agregar las variables de entorno. Para ello se debe editar el perfil general del servidor usando:

nano /etc/profile

y agregar al final:

export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/12.1.0.2/client/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1.0.2/client/lib/;$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH

NOTA: Verificar el nombre de la versión en la ubicación de los archivos (12.1.0.2) ya que puede cambiar según la descarga.

Guardar el archivo (CTRL X, Y)

Para que las variables tomen efecto debe ejecutarse:

source /etc/profile

Luego, para verificar si tomó las variables de ambiente, se debe ejecutar:

env

Asegurar que el firewall del servidor (CSF ó APF según el que se haya instalado) tenga abierto el puerto 1521 TCP tanto de entrada como de salida.

Configurar el servicio XE-Oracle para el puerto TCP 1521 en el router del sitio remoto donde se ejecute Oracle y asegurar que tenga redireccionado todo acceso al puerto 1521 hacia la IP fija interna del servidor donde reside el Oracle (forwarding servicio 1521).

Deshabilitar todo firewall en el servidor Oracle o asegurar que permita las conexiones externas desde la dirección IP del servidor de producción desde el cual nos estaremos conectando.

Probar la conexión desde el servidor de producción ejecutando:

sqlplus usuario/password@ServidorRemoto/XE

Donde:

  • usuario= Usuario configurado para la instancia Oracle
  • password: Contraseña del usuario en referencia
  • ServidorRemoto: dominio ó dirección IP fija del Router de la red donde está el servidor Oracle.

El resultado debe ser que muestra el prompt SQL>. Si no se muestra es poque falla la conexión.

Para que PHP funcione con conexiones a Oracle se requiere que PHP este compilado con el módulo OCI8. Para esto debemos ejecutar:

cd /usr/local/src
wget http://pecl.php.net/get/oci8-2.0.8.tgz
tar -xzf oci8-2.0.8.tgz
cd oci8-2.0.8
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/12.1.0.2/client/lib/
make
service httpd stop
make install
service httpd start

NOTA: Verificar el nombre de la versión en la ubicación de los archivos (2.0.8) ya que puede cambiar según la descarga.

Editar el php.ini con:

nano /usr/local/lib/php.ini

Agregar al final:

extension=oci8.so

Guardar y Salir.

Reiniciar apache para que tome los cambios con:

service httpd restart

crear un archivo en php y ejecutar phpinfo() dentro del mismo para verificar que tenga instalado el OCI8.

Si no aparece el soporte de oci8, copiar el oci8.so desde /usr/local/src/oci8-2.0.8/modules/oci8.so hacia /usr/local/lib/oci8.so con:

cp /usr/local/src/oci8-2.0.8/modules/oci8.so /usr/lib/
cp /usr/local/src/oci8-2.0.8/modules/oci8.so /usr/local/lib/
Publicado el Deja un comentario

Instalar la Página de Inicio de un Nuevo Cliente para cPanel en Linux

instalar-la-pagina-de-inicio-de-un-nuevo-cliente

Para que cualquier cliente de un reseller muestre una página inicial que indique que pronto estará allí un nuevo sitio web (“Cortina Inicial”) en forma automática cada vez que se cree una nueva cuenta cliente, se deben subir los archivos (incluyendo el archivo index.html y sus archivos y carpetas anexas) a:

/home/usuario-reseller/cpanel3-skel/public_html

Note que debe remplazar usuario-reseller por el nombre del usuario correspondiente a dicho reseller.

Vale decir que cada vez que se crea una nueva cuenta bajo un reseller del cPanel, se copia automáticamente la misma estructura que tenga el reseller en la carpeta indicada, hacia la carpeta public_html de la nueva cuenta con lo cual la cortina inicial se monta automáticamente.

Publicado el Deja un comentario

Instalar Zend Optimizer en Linux

instalar-zend-optimizer

Zend Optimiser es una utilidad para PHP que ofrece un manejo de caché para mejorar la velocidad cuando se cargan los sitios, puede incrementar el rendimiento en hasta un 40% al realizar el caché de porciones de páginas en PHP frecuentemente visualizadas. Zend Encoder también es útil para codificar archivos PHP para proteger el código fuente.

Para instalar el Zend Optimizer debemos ejecutar por SSH:

/scripts/installzendopt

Y seguir las instrucciones en pantalla.

Otra herramienta excelente para ganar rendimiento es Turck MMCache, la cual provee incrementos de velocidad de hasta un 90% y puede ejecutarse junto con Zend Optimizer.

Enlaces de Interés:

http://turck-mmcache.sourceforge.net/index_old.html

http://www.crucialp.com/resources/tutorials/server-administration/turck-mmcache-php-install-installation.php

Publicado el Deja un comentario

Instalar Paquetes de Planes de Hospedaje para el cPanel en Linux

instalar-paquetes-de-planes-de-hospedaje

La plataforma cPanel hace uso de plantillas de configuraciones de cuentas de hosting predeterminadas a las cuales llama Paquetes. Gracias a esto podemos asignar más rapidamente las características de los planes de hospedaje web que queremos asignarles a los clientes.

Es posible crear las plantillas en forma independiente y cargarlas al servidor vía FTP para que así queden listas para ser usadas por nuestros resellers, para ello debemos primero generar la plantilla con el nombre correspondiente usando el siguiente ejemplo:

Supongamos que queremos crear una plantilla con los siguientes límites:

  • Tema del cPanel: x3
  • Lista de Características del cPanel (íconos activos): default
  • Ancho de Banda/Tráfico mensual: 25000 MB
  • Subdominios: 50
  • Acceso CGI: Si
  • IP Fija: No
  • Bases de Datos: 10
  • Dominios Parqueados: 0
  • Espacio en disco: 500 MB
  • Cuentas FTP: 50
  • Acceso Shell: No
  • Dominios Agregados: 0
  • Idioma: Español
  • Listas de Correo: 10
  • Cuentas de Email POP: 250
  • Frontpage: No

Para ello debemos crear un archivo de texto con un nombre referencial (Ej. PLAN500) y colocar dentro del mismo lo siguiente:

CPMOD=x3
FEATURELIST=default
BWLIMIT=25000
MAXSUB=50
CGI=y
IP=n
MAXSQL=10
MAXPARK=0
QUOTA=500
MAXFTP=50
HASSHELL=n
MAXADDON=0
LANG=spanish2
MAXLST=10
MAXPOP=250
FRONTPAGE=n

Una vez que tenemos todos los archivos de los Paquetes de Planes creados de esta forma, los cargamos en el servidor usando SFTP ó FTP en la carpeta:

/var/cpanel/packages

Es importante destacar que el Grupo y Usuario de estos archivos debe ser root:root y los permisos 644.