Agcapa

programador web

Como hacer un Acordeón con HTML, CSS y Javascript (Jquery)

En previos artículos, casi siempre hemos utilizado librerías de terceros para implementar diversos elementos de nuestra web. Esta vez lo implementaremos nosotros desde cero.

Se trata de un elemento muy usual en las web, donde al pulsar en un determinado sitio, barra, botón, etc, se expande más información relacionada que previamente estaba oculta, lo que se conoce como estilo acordeón. Muy parecido a lo que hace la librería Jquery UI y sus accordions https://jqueryui.com/accordion/

Para implementar este interesante elemento utilizaremos la librería de javascript Jquery, html y css.

Este sería el resultado final:

Es muy sencillo de implementar. Sólo debemos saber lo básico de html, css, y un poco de las animaciones de jquery.

Como hacer un Acordeón con HTML, CSS y Javascript (Jquery)

Codigo HTML:

Codigo CSS:

Como vemos en el código HTML, tenemos dos contenedores <div> con clase accordion-container,  que contendrán toda la información de ese ítem, característica, sección, etc. En concreto tenemos un elemento <a> que representa el título, y es la barra horizontal con el nombre del jugador, y otro elemento div con clase accordion-content que en principio está oculta y que contiene una imagen del jugador y texto.

En este ejemplo se trata de un listado con dos jugadores, que al hacer click en cada uno de ellos se expande información relacionada. Si nos fijamos, también se cambia el icono de la derecha de la barra con “+” y “-“según este cerrado o abierto, esto lo logramos con código css.

Por último, queda lo más importante, implementar mediante jquery la acción de hacer click en la barra de título y como consecuencia se visualice u oculte la información según se encuentre visible o no el contenedor de información .accordion-content”

Codigo Jquery:

En primer lugar guardamos en la variable “contenido” el objeto div que contiene la información, en este caso de uno de los jugadores, según donde hayamos pulsado, a través de la función next(), que coge el primer elemento hermano con clase .accordion-content

Seguidamente comprobamos si está oculto o no, y dependiendo del caso mostramos u ocultamos a través de dos funciones de jquery, con el objetivo de que el cambio no se produzca de forma brusca, sino animada.

slideDown() => Muestra el contenido de forma animada (slide).

slideUp() => Esconde el contenido de forma animada (slide).

Así de fácil es implementar nuestra propio estilo acordeón sin tener que recurrir a librerías externas como Jquery UI.

Many email messages are sent from PHP scripts on the server. How can I find the domains on which these scripts are running if I am using Postfix?

Many email messages are sent from PHP scripts on the server. How can I find the domains on which these scripts are running if I am using Postfix?

Article ID: 114845, created on Sep 26, 2012, last review on Dic 18, 2015

APLICABLE A:

  • Plesk for Linux/Unix
  • Plesk Automation 11.5

Symptoms

Many email messages are being sent from PHP scripts on the server. How can I find the domains on which these scripts are running if I am using Postfix?

Resolution

Note: This article is for Postfix. If you are using the Qmail mail server, see article
1711: Many email messages are sent from PHP scripts on the server. How can I find the domains on which these scripts are running?

There is a way to determine from which folder the PHP script that sends mail was run.

Note: Depending on your operating system and Plesk version, the paths can differ slightly from those listed below.

  1. Create a /usr/sbin/sendmail.postfix-wrapper script with the following content:

    Create a file and open it for editing:

    #touch /usr/sbin/sendmail.postfix-wrapper
    #vi /usr/sbin/sendmail.postfix-wrapper
    

    Add the following content:

    #!/bin/sh
    (echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/usr/sbin/sendmail.postfix-bin "$@"
    

    Note that this should be two lines, including #!/bin/sh.

  2. Create a log file, /var/tmp/mail.send, and grant it a+rw rights. Make the wrapper executable, rename the old sendmail, and link it to the new wrapper. Then run the commands below:
    ~# touch /var/tmp/mail.send
    ~# chmod a+rw /var/tmp/mail.send
    ~# chmod a+x /usr/sbin/sendmail.postfix-wrapper
    ~# mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail.postfix-bin
    ~# ln -s /usr/sbin/sendmail.postfix-wrapper /usr/sbin/sendmail.postfix
    
  3. Wait for an hour and change the sendmail back:
    ~# rm -f /usr/sbin/sendmail.postfix
    ~# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix
    

Check the /var/tmp/mail.send file. There should be lines starting with X-Additional-Header: pointing to the domain folders where the scripts that sent the mail are located.

You can see all the folders from which mail PHP scripts were run with the following command:

    ~# grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//' `

NOTE: If you see no output from the above command, it means no mail was sent using the PHP mail() function from the Plesk virtual hosts directory.

Usually, that means one of the mail accounts has been compromised. Check the login attempt count:

# zgrep -c 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog*
/usr/local/psa/var/log/maillog:221000
/usr/local/psa/var/log/maillog.processed:362327
/usr/local/psa/var/log/maillog.processed.1.gz:308956

If you see an unusually high number of login attempts, it is very likely accounts were compromised. You can try identifying these accounts in the following way:

# zgrep 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog* | awk '{print $9}' | sort | uniq -c | sort -nr | head
891574 sasl_username=admin@example.com

To stop spam from being sent, change passwords for the compromised accounts and restart the Postfix service.

For Plesk 12 also visit Administrator’s Guide page

Palabras de búsqueda:

Deferred E-Mails In Queue Not Delivering

wrapper

Spam on PPA Node

Mail Spamming

spam from external domain

11

pleskfatalexception

sending email name of someone else

SPam

mail

Script can be send mail but the option was disable on hosting plan

Suspicious E-Mail Headers In Mail Queue

Hello, Since last update to plesk12 have many problems of spam received as sent. We have verified that the settings wrapper in plesk 11.5 is not equal in plesk 12. I followed the steps in the kb http://kb.sp.parallels.com/1711 but not correct for plesk12. Could you install wrapper to ples12, please? Thanks.

php ini plesk

apache

spam

spam issue

mail queue spam

mail queue

error wrapper

mails rdns do not match to SMTP banner

Nonostante sia stato attivata la’utentificazione smtp, da giorni in coda mail ci sono svariate mail inviate da WORLDST-UQ3K9Q0

thousands of spam for an email address that doesn’t exist

postfix/smtp: certificate verification failed for gmail Equifax Secure Certificate Authority

outgoing spam

Spam mails getting sent

Spam being sent to our SMTP

plesk server mail not nbeing sent

DNS Flood Analysis

sql

spammer

plesk panel running slow

Mail Spmming

script

Aumentar la swap en GNU/Linux

En algunas ocasiones es necesario que nuestro GNU/Linux tenga mas swap, ya sea porque tiene mas aplicaciones o lo que fuese, entonces lo que podemos hacer es aumentar el tamaño de la swap, antes de empezar comprobamos cuanto de swap tenemos con el siguiente comando:

# grep SwapTotal /proc/meminfo
SwapTotal:     2096440 kB

Ahora empezemos a asiganrle mas swap, para ello creamos un archivo con el comnado dd, dicho archivo actuara como swap, claro seria recomendable tener una particion, pero bueno asumimos que ya no tenemos mas particiones.

# dd if=/dev/zero of=/mnt/swap_extra bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2,1 GB) copied, 25,3026 seconds, 84,9 MB/s

Donde:

  • count -> define el tamaño del fichero
  • bs -> define el tamaño del bloque

Hemos creado un archivo de 2GB dentro del directorio /mnt, ahora modificamos los permisos

# chmod 600 /mnt/swap_extra

Formateamos el fichero swap_extra para que actue como swap

# mkswap /mnt/swap_extra
Configurando espacio de intercambio versión 1, tamaño = 2147479 kB

Ahora solo nos queda activarlo

# swapon /mnt/swap_extra

SI quisiremoas desactivarlo simplemente ejecutamos

# swapoff /mnt/swap_extra

Ahora debemos editar el fstab para que cuando la maquina se inicie carge la swap adicional, para ello agregamos  al final del archivo lo siguiente:

/mnt/swap_extra         none                    swap    sw              0 0

Con esto ya tenemos 2GB mas de swap … y lo verificamos con el comando

siguiente

# grep SwapTotal /proc/meminfo
SwapTotal:     4193584 kB

Linux: Listar procesos por % cpu o uso de memoria

Con estas dos secuencias de comandos podréis ver de un modo rápido y sencillo los procesos ordenados por uso (%) de CPU y memoria. Por supuesto no es necesario (ni práctico) escribir el comando completo en la shell cada vez que lo queráis ejecutar, os recomiendo crear un alias específico para cada uno de ellos.

Listar procesos por % cpu, veréis que eliminamos aquellos que usan 0.0 de CPU con sed (sed ‘/^ 0.0 /d):

ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

Ejemplo:

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
%CPU CPU  NI S     TIME COMMAND
0.2   -   0 S 00:00:24 metacity
0.2   -   0 S 00:00:00 /usr/bin/python /usr/bin/terminator
0.2   -   0 S 00:00:28 gnome-screensaver
0.2   -   0 S 00:00:31 gnome-panel
4.6   -   0 S 00:08:23 /usr/bin/pulseaudio --start
7.4   -   0 S 00:13:24 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
7.5   -   0 S 00:04:31 rhythmbox
14.4   -   0 S 00:08:50 /usr/lib/firefox-3.5.4/firefox-3.5

Listar procesos por uso de memoria (en KB):

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Ejemplo (reducido):

$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
23964 gnome-panel
26168 nautilus
26256 /usr/bin/python /usr/bin/terminator
58340 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
58728 rhythmbox
128736 /usr/lib/firefox-3.5.4/firefox-3.5

Uso de Ajax muy sencillo con jQuery

Es muy fácil desarrollar Ajax en jQuery. En este artículo veremos el ejemplo más sencillo de Ajax con el framework Javascript jQuery.
Ha llegado el momento de hacer una primera aproximación a Ajax, en la serie de artículos que estamos publicando   para mostrar el uso de este framework (léase el Manual de jQuery).Una de las ventajas de los frameworks Javascript es que nos permiten desarrollar scripts que hacen uso de Ajax de una manera muy fácil y encima, sin tener que complicarnos la vida con la compatibilidad entre distintos navegadores. Sin duda, cualquier persona que sepa un poco de Javascript, podría en poco tiempo empezar a utilizar Ajax con alguno de estos frameworks. Nosotros vamos a demostrar cómo es de sencillo en jQuery.La primera impresión que he tenido sobre el uso de Ajax en jQuery es realmente grata, por la facilidad con la que se puede realizar un primer ejemplo. Se trata de un ejemplo extremadamente sencillo, pero sirve para abrirnos las puertas a muchas aplicaciones interesantes. Habíamos visto en otros frameworks Javascript ejemplos similares, como en el artículo Ajax con Mootools, pero tenemos que quitarnos el sombrero ante la extremada sencillez con la que se puede hacer un ejemplo similar en jQuery. Sea suficiente decir que en este ejemplo de Ajax utilizaremos tan sólo 4 líneas de código, de las cuales sólo 1 es para ejecutar la propia llamada al servidor por Ajax.

Traer un contenido con Ajax al pulsar un enlace

En este sencillo ejemplo haremos llamada a Ajax, para traer un contenido, cuando se pulse un enlace. Esto lo hemos puesto en marcha en el servidor de DesarrolloWeb.com y lo puedes ver en una página aparte.Aquí podemos ver el enlace, al que ponemos un identificador (atributo id) para seleccionarlo desde jQuery.

<a href=”#” id=”enlaceajax”>Haz clic!</a>

Si hemos leído hasta aquí el Manual de jQuery podremos saber cómo asignar un evento a un enlace. No obstante, recordemos cómo asignar una función para cuando se haga clic en el enlace:

$(document).ready(function(){
$(“#enlaceajax”).click(function(evento){
//elimino el comportamiento por defecto del enlace
evento.preventDefault();
//Aquí pondría el código de la llamada a Ajax
});
})

Ya se trata sólo de poner en marcha Ajax dentro de la función del evento “click” sobre el enlace. Pero antes voy a necesitar una capa donde mostrar el contenido que vamos a recibir del servidor con la llamada Ajax. Le pondremos id=”destino” para poder referirnos a ella desde jQuery:

Y ahora la parte más interesante, donde podemos ver qué tan fáciles son las cosas con este framework Javascript. Una única línea de código será suficiente:

$(“#destino”).load(“contenido-ajax.html”);

Con esta simple sentencia estamos realizando una llamada a Ajax con jQuery. Es una simple invocación al método load() de un elemento de la página, en concreto el que habíamos puesto con id=”destino”. Al método load() le pasamos como parámetro la ruta de la página que queremos cargar dentro del elemento.

El archivo que cargamos con load() en este ejemplo es “contenido-ajax.html” y simplemente le hemos colocado un texto cualquiera. Lo hemos guardado en el mismo directorio que la página web donde está el script jQuery.

Nota: para que este ejemplo funcione debe colocarse en un servidor web, puesto que la llamada por Ajax se hace por http y el archivo que se carga entonces tiene que recibirse por un servidor web, que lo mande con ese protocolo al navegador. Si pones los archivos en tu disco duro y los ejecutas tal cual, no te funcionará. Puedes utilizar cualquier espacio de hosting que tengas o bien un servidor web que puedas tener instalado en tu ordenador.

Así de simple! Podemos ver el código completo de este ejemplo: <html>
<head>
<title>Ajax Simple</title>
<script src=”jquery-1.3.2.min.js” type=”text/javascript”></script>
<script>
$(document).ready(function(){
$(“#enlaceajax”).click(function(evento){
evento.preventDefault();
$(“#destino”).load(“contenido-ajax.html”);
});
})
</script>
</head>
<body>

<a href=”#” id=”enlaceajax”>Haz clic!</a>
<br>
<div id=”destino”></div>

</body>
</html>

Podemos ver el ejemplo en marcha en una página aparte.

Cabría comentar que jQuery tiene muchos otros métodos de realizar conexiones por Ajax, que pueden servir para muchos otros casos de trabajo que podemos encontrarnos. Nosotros hemos escogido el más sencillo para dar una primera demostración de las posibilidades.

Pasar parámetros y ejecutar acciones después de la llamada a Ajax

El método load() que hemos visto en el ejemplo anterior tiene otros dos parámetros opcionales que podemos utilizar si fuera necesario:Parámetros a pasar a la página: la página que carguemos con Ajax puede recibir parámetros por la URL, que se especifican con la típica notación de propiedades y valores de jQuery.

{nombre: “Pepe”, edad: 45}

Por ejemplo, con ese código estaríamos enviando a la página los datos nombre y edad, con los valores “pepe” y 45. Esos datos viajarían en la URL, por el método “POST”.

Nota: Desde jQuery 1.3 también se pueden enviar los parámetros a la página a cargar con Ajax por medio de una variable de tipo string, en lugar de una notación de objetos como hemos comentado. Cuando se use un string para especificar los parámetros a enviar en el request http, éstos viajan por el método GET. Cuando se utiliza una notación de objetos como la que hemos visto, los datos viajan por el método POST.

Función callback: como otros métodos de jQuery, podemos especificar opcionalmente una función a ser ejecutada cuando se termine de ejecutar el método. En este caso, cuando se termine la llamada Ajax, se pueden hacer acciones, como borrar un mensaje típico de “cargando…”.

Nota: En un artículo anterior ya comentamos el habitual uso de funciones callback en jQuery.

Ahora veamos un código donde hacemos uso de estos dos parámetros: $(document).ready(function(){
$(“#enlaceajax”).click(function(evento){
evento.preventDefault();
$(“#destino”).load(“recibe-parametros.php”, {nombre: “Pepe”, edad: 45}, function(){
alert(“recibidos los datos por ajax”);
});
});
})

En este caso estamos cargando con load() una página PHP llamada “recibe-parametros.php”. Estamos pasando los parámetros “nombre” y “edad” a una página, que podremos recoger por GET. Además, hemos colocado una función callback en la que simplemente hacemos un alert(), que se ejecutará cuando la llamada a Ajax haya terminado.

Este sería el código fuente de “recibe-parametros.php”:

Recibido el siguiente dato:
<br>
Nombre: <?php echo $_POST[“nombre”];?>
<br>
Edad: <?php echo $_POST[“edad”];?>

Podemos ver este ejemplo en una página aparte.

Con esto hemos podido comprobar lo sencillo que es realizar con jQuery una carga de contenidos que se reciben por Ajax. Como decía, existen muchas otras maneras de hacer conexiones Ajax con jQuery, como el ejemplo del artículo siguiente que nos enseña a mostrar un mensaje de carga miestrás esperamos la respuesta Ajax del servidor. Además, para complementar esta información, también podéis ver el vídeo de Ajax con jQuery.

Archivos de configuración y registros de servicios de Parallels Plesk para Linux

APLICABLE A:

  • Plesk for Linux/Unix

Notas de la versión

En este artículo se proporciona información relacionada con los servicios con los que interactúa Parallels Plesk. A continuación se muestran las ubicaciones de los archivos de registro y la configuración de estos servicios, lo que puede resultar útil para la resolución de incidencias.

Consulte la versión previa de este artículo:

  • 122458 Archivos de configuración y registros de servicios de Parallels Plesk para Linux (Plesk 11.5)

Servicios

Panel de control

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log y /var/log/sw-cp-server/sw-engine.log
    • Registro de accesos: /usr/local/psa/admin/logs/httpsd_access_log
    • Registro de Plesk: /usr/local/psa/admin/logs/panel.log
  • Servicios
    • Detener: /etc/init.d/psa stop
    • Iniciar: /etc/init.d/psa start
    • Reiniciar: /etc/init.d/psa restart
  • Configuración
    • Configuración PHP: /usr/local/psa/admin/conf/php.ini
    • Configuración de Plesk: /usr/local/psa/admin/conf/panel.ini
    • Configuración del servidor web: /etc/sw-cp-server/conf.d/plesk.conf

Web Presence Builder

  • Registros
    • Registro de errores: /usr/local/psa/admin/logs/sitebuilder.log
    • Registros de instalación o actualización: /usr/local/sb/tmp/
  • Ningún control del servicio (operando mediante el servicio sw-cp-server)
  • Configuración
    • /usr/local/sb/config
    • /etc/sw-cp-server/conf.d/plesk.conf
    • /usr/local/psa/admin/conf/php.ini

SSO

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log
    • Registro de SSO: /var/log/sso/sso.log
  • Servicios
    • Ningún control del servicio (opera mediante el servicio sw-cp-server)
    • Configuración de gestión: /usr/local/psa/bin/sso
  • Configuración
    • /etc/sso/sso_config.ini
    • /etc/sw-cp-server/conf.d/sso.inc

Administrador de backups

  • Registros
    • Registros de backup: /usr/local/psa/PMM/logs/backup-<datetime>
    • Registro de restauraciones: /usr/local/psa/PMM/logs/restore-<datetime>
  • La funcionalidad es controlada por el servicio de panel de control de Plesk
  • Configuración
    • /etc/psa/psa.conf

Administrador de migraciones

  • Registros
    • /usr/local/psa/PMM/logs/migration-<datetime>
  • La funcionalidad es controlada por el servicio de panel de control de Plesk.

Administrador de Health Monitor (control de estado del servidor)

  • Registros
    • /usr/local/psa/admin/logs/health-alarm.log
  • Servicios
    • Detener: /etc/init.d/sw-collectd stop
    • Iniciar: /etc/init.d/sw-collectd start
    • Reiniciar: /etc/init.d/sw-collectd restart
  • Configuración
    • /usr/local/psa/admin/conf/health-config.xml
    • /usr/local/psa/var/custom-health-config.xml
    • /etc/sw-collectd/collectd.conf

Daemon de notificaciones de Health Monitor

  • Registros
    • /usr/local/psa/admin/logs/health-alarm.log
  • Servicios
    • Detener: /etc/init.d/psa-health-monitor-notificationd stop
    • Iniciar: /etc/init.d/psa-health-monitor-notificationd start
    • Reiniciar: /etc/init.d/psa-health-monitor-notificationd restart
  • Configuración
    • /usr/local/psa/admin/conf/health-config.xml
    • /usr/local/psa/var/custom-health-config.xml

MySQL

  • Registros
    • /var/log/mysqld.log
  • Servicios
    • Detener: /etc/init.d/mysqld stop
    • Iniciar: /etc/init.d/mysqld start
    • Reiniciar: /etc/init.d/mysqld restart
  • Configuración
    • /etc/my.cnf
    • /etc/mysql/my.cnf (Debian/Ubuntu)

PostgreSQL

  • Registros
    • /var/lib/pgsql/pgstartup.log
  • Servicios
    • Detener: /etc/init.d/postgresql stop
    • Iniciar: /etc/init.d/postgresql start
    • Reiniciar: /etc/init.d/postgresql restart
  • Configuración
    • /var/lib/pgsql/data/postgresql.conf

Apache

  • Registros
    • Registros de errores y acceso global: /var/log/httpd/
    • Registros de dominio: /var/www/vhosts/<domain>/logs
  • Servicios
    • Detener: /etc/init.d/httpd stop
    • Iniciar: /etc/init.d/httpd start
    • Reiniciar: /etc/init.d/httpd restart
  • Configuración
    • /etc/httpd/conf/httpd.conf
    • /etc/httpd/conf.d/zz010_psa_httpd.conf (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)
  • NOTA: En SuSE, Debian y Ubuntu, el servicio se denomina “apache2”. La ruta a estos registros es /var/log/apache2 y la ruta a sus archivos de configuración es /etc/apache2.

NGINX

  • Registros
    • Registro de errores: /var/log/nginx/error.log
    • Registro de accesos: /var/log/nginx/access.log
    • Registros de dominio: /var/www/vhosts/<domain>/logs/proxy_access*_log
  • Servicios
    • Detener: /etc/init.d/nginx stop
    • Iniciar: /etc/init.d/nginx start
    • Reiniciar: /etc/init.d/nginx restart
    • NOTA: Para desactivar nginx, vaya a "Herramientas y configuración > Administración de servicios" y detenga nginx desde allí.
  • Configuración
    • /etc/nginx/nginx.conf
    • /etc/nginx/conf.d/zz010_psa_nginx.conf (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)

Tomcat

  • Registros
    • /var/log/tomcat5/*
  • Servicios
    • Detener: /etc/init.d/tomcat5 stop
    • Iniciar: /etc/init.d/tomcat5 start
    • Reiniciar: /etc/init.d/tomcat5 restart
  • Configuración
    • /etc/tomcat5/server.xml

FTP

  • Registros
    • /usr/local/psa/var/log/xferlog
    • /var/log/secure
  • Ningún control de servicios (opera mediante el servicio xinetd)
  • Configuración
    • /etc/xinetd.d/ftp_psa
    • /etc/proftpd.conf
    • /etc/proftpd.include

xinetd

  • Registros
    • /var/log/messages
  • Servicios
    • Detener: /etc/init.d/xinetd stop
    • Iniciar: /etc/init.d/xinetd start
    • Reiniciar: /etc/init.d/xinetd restart
  • Configuración
    • /etc/xinetd.conf
    • /etc/xinetd.d/* (se ignoran los archivos que contengan "." en el nombre)

BIND

  • Registros
    • /var/log/messages
  • Servicios
    • Detener: /etc/init.d/named stop
    • Iniciar: /etc/init.d/named start
    • Reiniciar: /etc/init.d/named restart
  • Configuración
    • /etc/named.conf
  • NOTA: En Debian y Ubuntu, el servicio se denomina "bind9."

Courier-IMAP

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/courier-imap stop
    • Iniciar: /etc/init.d/courier-imap start
    • Reiniciar: /etc/init.d/courier-imap restart
  • Configuración
    • /etc/courier-imap/imapd
    • /etc/courier-imap/imapd-ssl
    • /etc/courier-imap/pop3d
    • /etc/courier-imap/pop3d-ssl

Postfix

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/postfix stop
    • Iniciar: /etc/init.d/postfix start
    • Reiniciar: /etc/init.d/postfix restart
  • Configuración
    • /etc/postfix/master.cf
    • /etc/postfix/main.cf

Qmail

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/qmail stop
    • Iniciar: /etc/init.d/qmail start
    • Reiniciar: /etc/init.d/qmail restart
  • Configuración
    • Archivos de control en /var/qmail/control/
    • /etc/xinetd.d/smtp_psa
    • /etc/xinetd.d/smtps_psa
    • /etc/xinetd.d/submission_psa

Horde

  • Registros
    • Registro de errores: /var/log/psa-horde/psa-horde.log
  • Ningún control de servicios (opera mediante el servidor web Apache)
  • Configuración
    • /etc/psa-webmail/horde/horde.conf
    • /etc/psa-webmail/horde/horde/conf.php

Roundcube

  • Registros
    • Registro de errores: /var/log/plesk-roundcube/errors
  • Ningún control de servicios (opera mediante el servidor web Apache)
  • Configuración
    • /etc/psa-webmail/roundcube/*

Mailman

  • Registros
    • /var/log/mailman/*
  • Servicios
    • Detener: /etc/init.d/mailman stop
    • Iniciar: /etc/init.d/mailman start
    • Reiniciar: /etc/init.d/mailman restart
  • Configuración
    • /etc/httpd/conf.d/mailman.conf
    • /usr/lib/mailman/Mailman/mm_cfg.py
    • /etc/mailman/sitelist.cfg

SpamAssassin

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/spamassassin stop
    • Iniciar: /etc/init.d/spamassassin start
    • Reiniciar: /etc/init.d/spamassassin restart
  • Configuración
    • /etc/spamassassin/local.cf
    • /var/qmail/mailnames/<domain>/<mailbox>/.spamassassin/user_prefs

Parallels Premium Antivirus

  • Registros:
    • /usr/local/psa/var/log/maillog
    • /var/drweb/log/*
  • Control de servicios:
    • Detener: /etc/init.d/drwebd stop
    • Iniciar: /etc/init.d/drwebd start
    • Reiniciar: /etc/init.d/drwebd restart
  • Configuración:
    • /etc/drweb/*

Kaspersky antivirus

  • Registros:
    • /usr/local/psa/var/log/maillog
  • Control de servicios:
    • Detener: /etc/init.d/kavehost stop
    • Iniciar: /etc/init.d/kavehost start
    • Reiniciar: /etc/init.d/kavehost restart
  • Configuración:
    • /opt/kav/sdk8l3/etc/kav-handler.cfg
    • /etc/kavehost.xml

phpMyAdmin

  • Registros:
    • Registro de errores: /var/log/sw-cp-server/error_log
  • Ningún control del servicio (operando mediante el servicio sw-cp-server).
  • Configuración:
    • /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/libraries/config.default.php

phpPGAdmin

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log
  • Ningún control del servicio (operando mediante el servicio sw-cp-server).
  • Configuración:
    • /usr/local/psa/admin/htdocs/domains/databases/phpPgAdmin/conf/config.inc.php

Logrotate

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /usr/local/psa/etc/logrotate.conf
    • /usr/local/psa/etc/logrotate.d/*

Webalizer

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /srv/www/vhosts/system/<domain>/conf/webalizer.conf

AWstats

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /usr/local/psa/etc/awstats/awstats.<domain>-*.conf

Watchdog (monit)

  • Registros:
    • /usr/local/psa/var/modules/watchdog/log/wdcollect.log
    • /usr/local/psa/var/modules/watchdog/log/monit.log
  • Control de servicios:
    • Detener: /usr/local/psa/admin/bin/modules/watchdog/wd --stop
    • Iniciar: /usr/local/psa/admin/bin/modules/watchdog/wd --start
    • Reiniciar: /usr/local/psa/admin/bin/modules/watchdog/wd --restart
  • Configuración:
    • /usr/local/psa/etc/modules/watchdog/monitrc
    • /usr/local/psa/etc/modules/watchdog/wdcollect.inc.php

Watchdog (rkhunter)

  • Registros:
    • /var/log/rkhunter.log
  • Control de servicios:
    • Iniciar: /usr/local/psa/admin/bin/modules/watchdog/rkhunter
  • Configuración:
    • /usr/local/psa/etc/modules/watchdog/rkhunter.conf

Firewall de Plesk

  • Control de servicios:
    • Detener: /etc/init.d/psa-firewall stop
    • Iniciar: /etc/init.d/psa-firewall start
    • Reiniciar: /etc/init.d/psa-firewall restart
  • Configuración:
    • /usr/local/psa/var/modules/firewall/firewall-active.sh
    • /usr/local/psa/var/modules/firewall/firewall-emergency.sh
    • /usr/local/psa/var/modules/firewall/firewall-new.sh

Firewall de Plesk (Redireccionamiento de IP)

  • Control de servicios:
    • Detener: /etc/init.d/psa-firewall-forward stop
    • Iniciar: /etc/init.d/psa-firewall-forward start
    • Reiniciar: /etc/init.d/psa-firewall-forward restart
  • Configuración:
    • /usr/local/psa/var/modules/firewall/ip_forward.active
    • /usr/local/psa/var/modules/firewall/ip_forward.saved

Prohibición de direcciones IP (Fail2Ban)

  • Control de servicios:
    • Detener: /etc/init.d/fail2ban stop
    • Iniciar: /etc/init.d/fail2ban start
    • Reiniciar: /etc/init.d/fail2ban restart
  • Configuración: grupo de reglas IPTables, predeterminadas:-
    • iptables -N fail2ban-plesk-login
    • iptables -A fail2ban-plesk-login -j RETURN
    • iptables -A INPUT -p tcp -m multiport --dports 8880,8443 -j fail2ban-plesk-login

Varnish Nagios Performance Plugin

Varnish is a web application accelerator and sits in front of your web server. It speeds up your application by caching some, if not all of the content meaning it reduces the load on your web server and can reduce the load on you backend as less lookups will be needed by the frontend.

As varnish is the first thing users hit it is imperative it is working properly and you have statistics on how it is performing. This plugin can give you a better insight into how affectively varnish is running and tell you if its having problems.

You can download the latest version here:
check_varnish-v1.0.tar

Install

To use this plugin you need to have varnishstat installed which is installed by default when you install varnish.

Perl is also required for this plugin. If you don’t have Perl installed you can install in by running the command below

1 sudo apt-get install perl
2
3 or
4
5 sudo yum install perl

Now you can download the file above and extract it:

Now you should have a file “check_varnish.pl” make sure that it has execute permissions:

1 chmod u+x check_varnish.pl

You now need to copy this file to your nagios plugins folder. You should consult your nagios config to find out where this is. Mine was ‘/usr/lib/nagios/plugin’

1 mv check_varnish.pl /usr/lib/nagios/plugins/.

How To

check_varnish.pl – Monitor and report on varnish usage

check_varnish.pl [-c|–cache] [-b|–bin <varnishstatbinary>] [-d|–backend <total|ratio>] [-s|–stats <varnish statfield>]  [-t|–technique <lt|gt>] [-w|–warning <number>] [-c|–critical <number>] [-h|–help]

DESCRIPTION

This script will report on various varnish stats including: varnish cache hit ratio backend error count (Total or Ratio) Any other counter in varnishstat If no counters are required the script will ensure the varnish binary is running

OPTIONS

-a –cache – this will make the script output cache_hit ratio perfdata

-b –bin <varnishstat> – to specify a different location of the default varnishstat binary location. Default is ‘/usr/bin/varnishstat’

-d –backend <all|success|unhealthy|busy|fail|reuse|toolate|recycle|retry> – specify script to output backend data you can output ratio, total or both

-h –help – output this message

-w –warning <number> – specify the warning threshold. Required for cache and backend checks

-c –critical <number> – specify the critical threshold. Required for cache and backend checks

-s –stats <varnishstat field> – specify a comma separated list of all the stats you wish to check Critical and Warning can be specified and all values will be compared to these values.

-t –technique <lt|gt> – when specifying stats you can also specify what technique you wish to use to compare the values to the thresholds. specify lt for less than and gt for greater than. Default is gt

EXAMPLES

Check varnish is running

./check_varnish.pl

Check varnish Cache Hit Ratio and warn if ratio is below 0.8

./check_varnish.pl -a -w 0.8 -c 0.6

Check varnish Backends

./check_varnish.pl -d all

Check varnish client requests and drops

./check_varnish.pl -s client_drop,client_req

Nagios Set Up

Once you have run the command in the CLI and all is working you can add the command:

1 define command {
2 command_name                    check_varnish
3 command_line                    $USER1$/check_varnish.pl $ARG1$
4 register                        1
5 }

$USER1$ is your variable pointing to your nagios plugins folder and $ARG1$ are any command line arguments you specify in the service.

1 define service {
2 host_name                       localhost
3 service_description             Varnish
4 check_command                   check_varnish!--cache -w 0.6 -c 0.4
5 register                        1
6 }

The service above will give a warning if the hit ratio goes below 0.6 and critical if the ratio goes below 0.4

NRPE

The below is a line that can be used in the NRPE configuration for remote monitoring:

1 command[check_varnish_cache_hit]=/usr/lib/nagios/plugins/check_varnish.pl --cache -w 0.6 -c 0.4

The NRPE service could look like this:

1 define service {
2 host_name                  varnishserver
3 service_description             Varnish Cache Hit Ratio
4 check_command                   check_nrpe!check_varnish_cache_hit
5 register                        1
6 }

Cómo encontrar y reemplazar texto en varios archivos desde el terminal

En el siguiente ejemplo, usaremos sed para reemplazar todas las ocurrencias de la palabra “mongo” por la palabra “aurelio” en todos los archivos que tengan la extensión .txt y que se encuentren en la carpeta /home/usuario/micarpeta/.

find /home/usuario/micarpeta/ -name *.txt -exec sed -i "s/mongo/aurelio/g" {} ;

o
sed -i 's/Pepe/Jose/g' *.txt

How To Install nginx on CentOS 6 with yum

EPEL stands for Extra Packages for Enterprise Linux. Because yum as a package manager does not include the latest version of nginx in its default repository, installing EPEL will make sure that nginx on CentOS stays up to date.

To install EPEL, open terminal and type in:

sudo yum install epel-release

Step Two—Install nginx

To install nginx, open terminal and type in:

sudo yum install nginx

After you answer yes to the prompt twice (the first time relates to importing the EPEL gpg-key), nginx will finish installing on your virtual private server.

Step Three—Start nginx

nginx does not start on its own. To get nginx running, type:

sudo /etc/init.d/nginx start

You can confirm that nginx has installed on your VPS by directing your browser to your IP address.

You can run the following command to reveal your server’s IP address.

ifconfig eth0 | grep inet | awk '{ print $2 }'


Configure nginx

Open up the nginx configuration.

sudo nano /etc/nginx/sites-available/example

The following configuration will set you up to use nginx as the front end server. It is very similar to the default set up, and the details are under the configuration.

server {
        listen   80; 

        root /var/www/; 
        index index.php index.html index.htm;

        server_name example.com; 

        location / {
        try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {
        
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

         }

         location ~ /\.ht {
                deny all;
        }
}

The following changes were implemented in the configuration:

  • The root was set to the correct web directory
  • index.php was added on the index line
  • try_files attempts to serve whatever page the visitor requests. If nginx is unable, then the file is passed to the proxy
  • proxy_pass lets nginx the address of the proxied server
  • Finally the “location ~ /\.ht {” location block denies access to .htaccess files, if Apache’s document root concurs with nginx’s one

This configuration sets up a system where all extensions with a php ending are rerouted to the apache backend which will run on port 8080.

Activate the virtual host.

sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

Additionally, delete the default nginx server block.

sudo rm /etc/nginx/sites-enabled/default

The next step is to install and configure apache.

Install Apache

With nginx taken care of, it’s time to install our backend, apache.

sudo apt-get install apache2

Since nginx is still not turned on, Apache will start running on port 80.

Configure Apache

We need to configure apache to take over the backend, which as we told nginx, will be running on port 8080. Open up the apache ports file to start setting apache on the correct port:

sudo nano /etc/apache2/ports.conf

Find and change the following lines to have apache running on port 8080, accessible only from the localhost:

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Save and Exit.

Subsequently, open up a new virtual host file, copying the layout from the default apache file:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example
sudo nano /etc/apache2/sites-available/example

The main issue that needs to be addressed here is that the virtual host needs to be, once again, running on port 8080 (instead of the default 80 given to nginx).

The line should look like this:

<VirtualHost 127.0.0.1:8080>

Make sure your Document Root is correct. Save and exit the file and activate that virtual host:

sudo a2ensite example

Before we start testing anything out, we need to equip apache with php. Go ahead and install it now:

 sudo apt-get install php5

Restart both servers to make the changes effective:

sudo service apache2 restart
sudo service nginx restart

Finish Up

We have set up the VPS with nginx running on the front end of our site and apache processing php on the back end. Loading our domain will take us to our site’s default page.

We can check that information is being routed to apache is working by running a common php script.

Go ahead and create the php.info file:

sudo nano /var/www/info.php

Paste the following lines into that file:

<?
phpinfo( );
?>

Save and exit.

Visiting your domain/info.php should show you php info screen, and you’ll be able to see that this was handled by apache. (screenshot here)

Finally, you can see which ports are open and which application is on each one by typing in this command.

sudo netstat -plunt

Cómo optimizar Apache para usar menos memoria RAM

ApacheBuddy, que es muy similar a MySQLTuner, revisa tu configuración de Apache, y te hace sugerencias basadas en la cantidad de memoria que consume cada proceso Apache de tu servidor y la memoria RAM total que tengas.

Aunque es un programa bastante básico, ya que se centra solo en la directiva “MaxClients”, ApacheBuddy es útil, y se puede instalar y ejecutar de manera sencilla en el servidor teniendo acceso root mediante SSH.

“MaxClients” indica el numero máximo de peticiones que se pueden servir al mismo tiempo por el servidor, cualquier número que vaya más allá del límite se pone en cola. Si es demasiado bajo, las conexiones enviadas a la cola pueden agotar el tiempo de espera; Si es demasiado alto puedes tener problemas de memoria y empezar a usar la memoria SWAP del servidor. En Linode.com tenéis una buena explicación de todos los parámetros.

Cómo instalar y usar Apachebuddy para optimizar Apache

1.-Descargamos ApacheBuddy:

wget https://raw.github.com/gusmaskowitz/apachebuddy.pl/master/apachebuddy.pl

2.-Le damos permisos de ejecución:

chmod +x apachebuddy.pl

y ejecutamos el script para que revise nuestra configuración de Apache:

./apachebuddy.pl

3.-Y lo que vamos a obtener es algo como esto:

apachebuddy

 

donde podemos ver unas cuantas cosas importantes:

  1. Cuanta memoria RAM usa cada proceso de Apache en nuestro servidor (máximo, mínimo y media): 28,13MB, 20,21MB, 26.45MB
  2. Cuanta memoria RAM puede usar potencialmente Apache (máxima y media): 529MB y 562.61MB de RAM (alrededor de un 20% de la memoria RAM total del servidor)

En el archivo /etc/httpd/conf/httpd.conf, que es donde se encuentra la configuración de Apache en CENTOS, podemos cambiar el parámetro MaxClients en función de la recomendación del programa. En este caso, al tener “20” y alcanzar solo el 21% de la memoria RAM total del sistema, ApacheBuddy ha considerado que el ajuste es correcto.

Un problema muy común de las configuraciones por defecto de Apache es que suelen dejar MaxClients=150, y eso no hay servidor con 2GB de RAM que lo soporte en un pico de visitas. Tened en cuenta que además de Apache, el servidor tiene que manejar MYSQL (digamos que usa el 50% o 60% de la memoria RAM del servidor) y tu panel de control (cPanel/WHM puede llevar a consumir 512MB mínimo -otro 20%- y Virtualmin unos 100MB), así que no podemos dejar que en un pico de visitas Apache use toda la memoria RAM. Sí dejas MaxClients en 150, cuando tengas muchas visitas el servidor no lo va a aguantar… mejor que esperen en la cola…

« Older posts

© 2016 Agcapa

Theme by Anders NorenUp ↑

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR