Generalidades del cPanel (Directorios, Instalación, Scripts y Análisis de Fallas de Instalación)

Generalidades del cPanel (Directorios, Instalación, Scripts y Análisis de Fallas de Instalación)

El software cPanel es sin duda alguna el panel de control de hosting para servidores de producción más completo y eficiente del mercado. Es por esto que se ha convertido en un estándar en la mayoría de las empresas de hosting del mundo.

Todo Sysadmin que maneje hosting basado en servidores Linux debe conocer a profundidad el sofware cPanel, es por eso que en este artículo expongo múltiples detalles importantes acerca del mismo, desde sus directorios principales de ejecución, pasando por los principales scripts para su instalación y el análisis de fallas iniciales.

Visión General – Sistema de Archívos:

cPanel esta conformado básicamente por programas hechos en Perl ubicados en:

/usr/local/cpanel (directorio de aplicaciones de cPanel)

/var/cpanel

/scripts

Directorio de aplicaciones de cPanel (/usr/local/cpanel):

Representa la raíz de documentos de tanto WHM como cPanel. Este contiene todas las aplicaciones de terceros accesibles en WHM/cPanel. Algunos ejemplos son:

El demonio que maneja todas las solicitudes de cPanel/WHM:
/usr/local/cpanel/cpsrvd

La raíz de documentos para todas las solicitudes de cPanel/WHM:
/usr/local/cpanel/base/

Ubicación de los scripts y ejecutables propios de cPanel/WHM:
/usr/local/cpanel/bin/

Ubicación de los scripts y ejecutables de terceros usados por cPanel/WHM:
/usr/local/cpanel/3rdparty/

Directorio de configuración de cPanel (/var/cpanel):

Contiene todas las configuraciones específicas de cPanel. Algunos ejemplos son:

Uno de los archivos de configuración más importantes:
/var/cpanel/cpanel.config

Múltiples archivos que contienen definiciones de revendedores y ACL's:
/var/cpanel/reseller*

Definiciones de Usuarios de cPanel. Los archivos se nombran de acuerdo al usuario:
/var/cpanel/users/

Estadísticas de Ancho de Banda. Nombrados de acuerdo a usuarios y protocolos:
/var/cpanel/bandwidth/

Directorio de utilidades cPanel (/scripts):

Contiene los scripts que ofrecen las funcionalidades disponibles en  cPanel/WHM. Algunos ejemplos son:

Script de creación de cuentas. Se ejecuta sin argumentos para su uso:
/scripts/wwwacct

Elimina cuentas cPanel. Uso: /scripts/killacct usuario
/scripts/killacct

Sistema de construcción de Apache/PHP:
/scripts/easyapache

Scripts que manejan el reinicio de servicios administrados por cPanel:
/scripts/restartsrv_*

Maneja la ejecución de todas las actualizaciones de cPanel:
/scripts/upcp

El Sistema de Actualización (/scripts/upcp):

Ejecución de /scripts/upcp:

Es ejecutado en las madrugadas por el root crontab a las 2:47 AM. Puede ejecutarse por:

WHM > cPanel > Upgrade to Latest Version

Así como también en forma directa usando:

/scripts/upcp

Puede usarse el argumento opcional “-force”; es decir;

/scripts/upcp -force

Archivos Log de /scripts/upcp:

Registra sus eventos en archivos con nombres asociados a las fechas de ejecución en:

/var/cpanel/updatelogs/

Para ver el log más reciente se puede ejecutar:

vi $(ls -t /var/cpanel/updatelogs/*.log | head -1)

Configuración de upcp:

La configuración del sistema de actualización del cPanel depende de lo que se coloca en:

/etc/cpupdate.conf

Y puede accederse al mismo a través de:

WHM > Server Configuration > Update Config

Ejemplo 1 de Configuraciones:

CPANEL=release
RPMUP=daily
SYSUP=daily

Ejemplo 2 de Configuraciones:

CPANEL=manual-release
RPMUP=never
SYSUP=manual
CPANEL=current
RPMUP=manual
SYSUP=never

Las opciones de actualización disponibles para cPanel se denominan:

  • STABLE (Estable)
  • RELEASE (Liberada)
  • CURRENT (Actual)
  • EDGE (Más reciente)

Componentes de upcp:

El sistema de actualización de cPanel (/scripts/upcp) esta compuesto por los siguientes componentes:

 

Ubicación del Script    Argumentos Opcionales          Responsabilidades

/scripts/updatenow                   –force                          Actualiza el directorio /scripts

/scripts/sysup                          Ninguno                       Actualiza los RPMs del cPanel

/scripts/rpmup                          Ninguno                       Actualiza a través del administrador de paquetes

Actualizaciones:

Las actualizaciones de cPanel son gestionadas por:

/scripts/cpanelsync

Y se obtienen desde http://layer1.cpanel.net/cpanelsync/. Este script:

–       Compara los checksums MD5 entre los archivos locales y el servidor de actualizaciones

–       Los checksums se almacenan en el archivo .cpanelsync de cada directorio

Como ejemplo de su uso tenemos:

/scripts/cpanelsync 'httpupdate.cpanel.net' '/cpanelsync/RELEASE/scripts' '/scripts'

Rutinas de Post-Instalación:

Las rutinas personalizadas de post-instalación pueden ser desarrolladas en:

/scripts/postupcp

Otros scripts de post-instalación disponibles son:

/scripts/postcourierinstall
/scripts/postexim4install
/scripts/postftpinstall
/scripts/postmysqlinstall

Fallas en la Conexión a los Servidores de cPanel:

En el caso de que se presenten fallas en la búsqueda de los servidores por favor:

– Verifique los servidores que resuelven los dominios (resolvers)

– Si existen períodos indefinidos de actualización, revise los logs y procesos. Use:

pstree -p | grep upcp

Manejo de Solicitudes de cPanel:

El demonio cpsrvd:

Todas las solicitudes hechas al cPanel, WHM y Webmail son manejadas por el demonio cpsrvd:

/usr/local/cpanel/cpsrvd-ssl
/usr/local/cpanel/cpsrvd

cpsrvd-ssl establece y enrruta todas las solicitudes.

Este demonio escucha a través de seis puertos:

servicio                             cifrado                         texto plano

WHM                                  2087                            2086

cPanel                                2083                            2082

Webmail                             2096                            2095

Configuración del demonio cpsrvd:

El demonio cpsrvd se configura a través del archivo ubicado en:

/var/cpanel/cpanel.config

La mayoría de estos parámetros son manejados en:

WHM > Tweak Settings

La sintaxis es muy fácil de recorar:

nombre_variable=valor

Arranque del Servicio cPanel:

El servicio de cPanel se arranca a través de:

/etc/init.d/cpanel

Además, puede re-arrancarse con:

/usr/local/cpanel/startup

Las versiones más recientes usan soporte SSL nativo (cpsrvd-ssl), las versiones anteriores usan stunnel.

Certificados SSL:

Los certificados SSL se manejan en:

WHM -> Manage Service Certificates

Los certificados SSL están localizados en:

Auto-firmado:
/var/cpanel/ssl/cpanel/cpanel.pem

Firmado:
/var/cpanel/ssl/cpanel/mycpanel.pem

Registro de Errores:

Los archivos de registro de errores (Error Logs) de cPanel reciben todas las salidas desde STDERR provenientes de los hijos de cpsrvd. Estos archivos proveen trazas Perl para las fallas de las llamadas a los métodos.

Wed May 16 14:20:29 2007 trace [ExpVar]: Deprecated used of DOMAIN as a variable in DOMAIN :
/usr/local/cpanel/base/frontend/x/index.html at /usr/local/cpanel/cpanel/ExpVar.pm line 155
Cpanel::ExpVar::expvar('DOMAIN') called at cpanel.pl line 3709
main::doprint('DOMAIN', 0) called at cpanel.pl line 1305
main::exectag('<cpanel print="DOMAIN">') called at cpanel.pl line 4236
main::dotag(undef) called at cpanel.pl line 4144
main::cpanel_parseblock('SCALAR(0x8e64160)') called at cpanel.pl line 4119
main::cpanel_parse('GLOB(0x905e078)') called at cpanel.pl line 955

Archivos de Registro de Eventos (Log):

Estan ubicados en:

/usr/local/cpanel/logs/access_log

Utiliza un formato similar al formato combinado del Apache:

192.168.1.1 – cpaneluser [15/Apr/2007:18:28:16 -0500] "GET /frontend/x/main.html HTTP/1.1" 304 0
"https://example.com:2083/frontend/x/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1)
Gecko/20061010 Firefox/2.0"

Tip: Es posible manejar las URLs de solicitudes con:

tail -f /usr/local/cpanel/logs/access_log | awk '{ print $2 }' FS=\”
grep 'POST.*username' access_log | awk '{ print $2 }' FS=\”

Solicitudes a cPanel:

Las solicitudes cPanel y Webmail son pasados a:

/usr/local/cpanel/cpanel

Es muy útil para obtener la versión actual:

/usr/local/cpanel/cpanel -V

Maneja las etiquetas de cPanel.

Ejemplo de Uso:

echo '<cpanel langprint="INDXWelcome"> to cPanel' > archivo.prueba
/usr/local/cpanel/cpanel archivo.prueba

Ejecución Manual:

La variable de ambiente REMOTE_USER determina el usuario

Debe especificarse la ubicación completa para las solicitudes de cPanel

Solicitud a cPanel:

REMOTE_USER=stephen /usr/local/cpanel/cpanel /usr/local/cpanel/base/frontend/x/main.html

Solicitud a WHM:

REMOTE_USER=stephen /usr/local/cpanel/whostmgr/bin/whostmgr2 ./listaccts

Problemas Comunes:

No es posible conectarse a WHM:

Síntoma:

No es posible ingresar al WHM

Causas Posibles:

Verifique el archivo de registro de errores (error log)!

Verifique que cpsrvd este ejecutándose:

ps auxww | grep cpsrvd

Verifique que los puertos requeridos estén abiertos, y usados por cpsrvd:

netstat -lnp | grep :208
iptables -L -n

Verifique si el tráfico esta llegando al servidor:

tcpdump -n dst port 2087

Los Redireccionamientos de /whm están fallando:

Síntoma:

No es posible establecer una conexión a WHM usando http://hostname/whm

Causas Posibles:

Verificar que la directiva ScriptAlias este definida para /whm en httpd.conf:

grep /whm /usr/local/apache/conf/httpd.conf

Verificar que el nombre del host del certificado SSL de cpsrvd resuelve:

openssl x509 -in /var/cpanel/ssl/cpanel/cpanel.pem -subject -noout

Verificar si existen errores relevantes en:

/usr/local/apache/logs/error_log

Verificar si existen errores reportados en:

/usr/local/apache/logs/suexec_log

Errores de Licencias justo al ingresar:

Síntoma:

El acceso a cPanel/WHM es denegado debido a errores de licencia.

Causas Posibles:

Verificar que la licencia este activa en:

http://verify.cpanel.net

Si la licencia esta activa ejecutar:

tail -f /usr/local/cpanel/logs/license_log
/usr/local/cpanel/cpkeyclt

Verificar si puede hacer telnet al servidor de licencias con:

telnet auth.cpanel.net 2089

Módulos Perl Faltantes:

Síntoma:

Los módulos Perl se reportan como faltantes en el error_log

Causas Posibles:

Ejecute:

/usr/local/cpanel/bin/checkperlmodules

Verificar si el módulo realmente esta instalado:

perl -MModulo::Nombre -e1;

Si el módulo esta instalado, verifíquelo en /usr/local/cpanel/perl

cd /usr/local/cpanel/src/3rdparty/perl && make && make install

Si el módulo no está instalado, ejecutar:

/scripts/realperlinstaller Modulo::Nombre

Si CPAN falla:

cd /home/cpan/build/Directorio-Modulo && make
VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Generalidades del cPanel (Directorios, Instalación, Scripts y Análisis de Fallas de Instalación), 10.0 out of 10 based on 2 ratings
Daniel Rodriguez

Acerca del Autor: Daniel Rodriguez C.

Consultor Senior de Soluciones de Negocios en Internet, Desarrollo y Diseño Web, SysAdmin, Gerencia de Proyectos, Ventas, Mercadeo con más de 25 años de experiencia en empresas de tecnología.

Deje un mensaje

Por favor llene el siguiente formulario.

Usted puede usar las siguientes etiquetas HTML y atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*