Article ID: 1177, created on Feb 10, 2009, last review on May 11, 2014

  • Applies to:
  • Plesk 8.0 for Linux/Unix
  • Plesk 7.5.x Reloaded
  • Plesk 7.1.x Reloaded
  • Plesk 7.0.x
  • Plesk 6.x
  • Plesk 5.x

Resolución

Las versiones de Parallels Plesk Panel para FreeBSD anteriores a la v8.1.0 incluyen Apache y módulos apache que ya vienen compilados con FD_SETSIZE = 16384. Si experimenta un problema relacionado con un nivel insuficiente de descriptores de archivo, el motivo de esta incidencia reside en alguna aplicación de sistema que no es Parallels Plesk Panel, probablemente a alguna librería estándar de sistema OpenSSL cargada de forma dinámica por el Apache de Parallels Plesk Panel. Para que los archivos de la librería de sistema OpenSSL se recompilen con un valor FD_SETSIZE más elevado, haga lo siguiente:

- obtenga las fuentes FreeBSD para la versión de su FreeBSD, por ejemplo usando la utilidad `cvsup`. Si desea más información, consulte el capítulo "Obteniendo FreeBSD" en el Manual de FreeBSD. Le recomendamos no obtener las fuentes originales para la misma versión de FreeBSD que esté usando, sino obtener las fuentes actualizadas de tipo ESTABLE para su versión de FreeBSD.

- edite los archivos /usr/src/sys/sys/select.h y /usr/include/sys/select.h y modifique allí el valor FD_SETSIZE de 1024U a 16384U:

#ifndef FD_SETSIZE
#define FD_SETSIZE 16384U

El archivo /usr/include/sys/select.h se usa para realizar compilaciones de software de terceros, por ejemplo desde la recolección de puertos, no lo usaremos en este momento, aunque puede serle útil en un futuro. El archivo /usr/src/sys/sys/select.h lo usaremos durante nuestras compilaciones desde fuentes FreeBSD.

- ejecute los siguientes comandos para recompilar todos los archivos de sistema, incluyendo las librerías OpenSSL:
# rm -rf /usr/obj/usr
# cd /usr/src
# make clean ; make cleandepend
# make buildworld

- ahora es un buen momento para actualizar no sólo las librerías de OpenSSL sino también los archivos y librerías de sistema y para actualizar/modificar el kernel. Si desea realizar estas acciones y proceder con la actualización del sistema/kernel, consulte el capítulo "The Cutting Edge" del Manual de FreeBSD.

- si su sistema/kernel está actualizado o no desee actualizar nada aparte de las galerías de OpenSSL, puede buscar los archivos usados por Apache y reemplazarlos de forma manual por copias nuevas. A continuación le mostramos un ejemplo para FreeBSD 6.0:
# ldd /usr/local/psa/apache/bin/httpd
/usr/local/psa/apache/bin/httpd:
libaprutil-0.so.9 => /usr/local/psa/apache/lib/libaprutil-0.so.9 (0x281cb000)
libapr-0.so.9 => /usr/local/psa/apache/lib/libapr-0.so.9 (0x281dd000)
libm.so.4 => /lib/libm.so.4 (0x281f8000)
libcrypt.so.3 => /lib/libcrypt.so.3 (0x28211000)
libssl.so.4 => /usr/lib/libssl.so.4 (0x28229000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x28257000)
libz.so.3 => /lib/libz.so.3 (0x2834e000)
libc.so.6 => /lib/libc.so.6 (0x2835e000)

En este ejemplo para FreeBSD 6.0, estos archivos son

/lib/libcrypt.so.3
/lib/libcrypto.so.4
/usr/lib/libssl.so.4

haga copias de seguridad de estos archivos:
# cp -p /lib/libcrypt.so.3 /lib/libcrypt.so.3.back ; \
cp -p /lib/libcrypto.so.4 /lib/libcrypto.so.4.back ; \
cp -p /usr/lib/libssl.so.4 /usr/lib/libssl.so.4.back

Ahora reemplácelos por las copias que hemos compilado (presentes en las subcarpetas /usr/obj/usr/src/). Si está usando una conexión remota a la consola del servidor, ejecute los comandos que aparecen a continuación como un único comando (tal y como mostramos en el ejemplo que aparece a continuación) para así evitar que su conexión ssh falle o se cuelgue:
# cd /usr/obj/usr/src/ ; \
cp ./secure/lib/libcrypto/libcrypto.so.4 /lib/libcrypto.so.4 ; \
cp ./secure/lib/libssl/libssl.so.4 /usr/lib/libssl.so.4 ; \
chflags noschg /lib/libcrypt.so.3 ; \
cp ./lib/libcrypt/libcrypt.so.3 /lib/libcrypt.so.3 ; \
chflags schg /lib/libcrypt.so.3

- ahora reinicie el servidor

aa571057eefb4e790d223bad9e05ace1 a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 097728dc0a325f6309aa7a3997d4cacc d3cd9f1770da96e5b5046d20def9f8eb 47085b48068f187235a1eb6bafa960e5 b8ef5052d936e902043e41759118114e 6ef964a54451eeb60b9cce8b8001a1d4 5778c2b4a3885c30396ddfa598ae90e9 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF