{"id":626,"date":"2009-02-23T16:20:43","date_gmt":"2009-02-23T16:20:43","guid":{"rendered":"http:\/\/blografia.net\/vicm3\/?p=626"},"modified":"2009-02-23T16:20:43","modified_gmt":"2009-02-23T16:20:43","slug":"debian-lighttpd-mailman","status":"publish","type":"post","link":"https:\/\/blografia.net\/vicm3\/2009\/02\/debian-lighttpd-mailman\/","title":{"rendered":"Debian + Lighttpd + Mailman"},"content":{"rendered":"<p>Bueno despu\u00e9s de darme de topes con esto, ya logre que funcione esta configuraci\u00f3n, que me dio muchos problemas&#8230; para empezar por que no me enviaba el error y as\u00ed ni encontraba el por que marcaba error.<\/p>\n<p>Primero he de decir que tal cual lo \u00fanico que debe hacer uno para que se ejecuten los cgi de mailman en Debian es lighttpd-enable-mod cgi y en lighttpd.conf agregar:<\/p>\n<blockquote><p>\nalias.url +=     (<\/p>\n<p>\t\u00ab\/cgi-bin\/\u00bb => \u00ab\/usr\/lib\/cgi-bin\/\u00bb,<\/p>\n<p>        \u00ab\/pipermail\/\u00bb => \u00ab\/var\/lib\/mailman\/archives\/public\/\u00bb,<\/p>\n<p>        \u00ab\/images\/mailman\/\u00bb => \u00ab\/usr\/share\/images\/mailman\/\u00bb,<\/p>\n<p>)\n<\/p><\/blockquote>\n<p>Como podr\u00e1n ver en \/usr\/lib\/cgi-bin es donde Debian realmente guarda los cgi (derivado de como ha ido creciendo esta instalaci\u00f3n a\u00fan tengo \/var\/www\/html\/ (que en Debian debiera ser \/var\/www ) ahora el detalle esta en que lighttpd corre como el usuario 33 (www-data) y normalmente mailman espera al 38 (list) asi que no encontraba ni el error por que al ejecutarlo como lighttpd ni escrib\u00eda en los logs.<\/p>\n<p>Primero pens\u00e9 en hacer strace de lighttpd, craso error, como el sitio esta vivo y tiene muchas visitas en unos segundos me llenaba de pantallas y aun cuando encontraba el error no lograba distinguirlo de muchas otras cosas que se ejecutaban casi al mismo tiempo.<\/p>\n<p>Entonces fui directamente a \/usr\/lig\/cgi-bin\/mailman y le di file listinfo:<\/p>\n<blockquote><p>\nlistinfo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU\/Linux 2.6.8, stripped\n<\/p><\/blockquote>\n<p>Entonces, pues a ejecutarlo, <\/p>\n<blockquote><p>\n.\/listinfo <\/p>\n<p>Status: 405 Method not allowed<\/p>\n<p>Content-type: text\/plain<\/p>\n<p>The method is not allowed\n<\/p><\/blockquote>\n<p>Mhh, por ah\u00ed record\u00e9 que con su se pueden enviar comandos con su y el usuario as\u00ed que<\/p>\n<blockquote><p>\nsu &#8211; www-data -c \/usr\/lib\/cgi-bin\/mailman\/listinfo <\/p>\n<p>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<\/p>\n<p>[&#8212;&#8211; Mailman Version: 2.1.11 &#8212;&#8211;]<\/p>\n<p>[&#8212;&#8211; Traceback &#8212;&#8212;]<\/p>\n<p>Traceback (most recent call last):<\/p>\n<p>  File \u00ab\/var\/lib\/mailman\/scripts\/driver\u00bb, line 82, in run_main<\/p>\n<p>    immediate=1)<\/p>\n<p>  File \u00ab\/usr\/lib\/mailman\/Mailman\/Logging\/StampedLogger.py\u00bb, line 52, in __init__<\/p>\n<p>    Logger.__init__(self, category, nofail, immediate)<\/p>\n<p>  File \u00ab\/usr\/lib\/mailman\/Mailman\/Logging\/Logger.py\u00bb, line 50, in __init__<\/p>\n<p>    self.__get_f()<\/p>\n<p>  File \u00ab\/usr\/lib\/mailman\/Mailman\/Logging\/Logger.py\u00bb, line 68, in __get_f<\/p>\n<p>    1)<\/p>\n<p>  File \u00ab\/usr\/lib\/python2.5\/codecs.py\u00bb, line 817, in open<\/p>\n<p>    file = __builtin__.open(filename, mode, buffering)<\/p>\n<p>IOError: [Errno 13] Permission denied: &#8216;\/var\/lib\/mailman\/logs\/error&#8217;<\/p>\n<p>Content-type: text\/html<\/p>\n<p><head><title>Bug in Mailman version 2.1.11<\/title><\/head><\/p>\n<p><body bgcolor=#ffffff><\/p>\n<h2>Bug in Mailman version 2.1.11<\/h2>\n<p><h3>We&#8217;re sorry, we hit a bug!<\/h3>\n<p>Please inform the webmaster for this site of this<\/p>\n<p>problem.  Printing of traceback and other system information has been<\/p>\n<p>explicitly inhibited, but the webmaster can find this information in the<\/p>\n<p>Mailman error logs.<\/p>\n<p>[&#8212;&#8211; Python Information &#8212;&#8211;]<\/p>\n<p>sys.version     = 2.5.2 (r252:60911, Jan  4 2009, 17:40:26) <\/p>\n<p>[GCC 4.3.2]<\/p>\n<p>sys.executable  = \/usr\/bin\/python<\/p>\n<p>sys.prefix      = \/usr<\/p>\n<p>sys.exec_prefix = \/usr<\/p>\n<p>sys.path        = \/usr<\/p>\n<p>sys.platform    = linux2<\/p>\n<p>[&#8212;&#8211; Environment Variables &#8212;&#8211;]<\/p>\n<p>\tLANG: en_US<\/p>\n<p>\tTERM: xterm<\/p>\n<p>\tSHELL: \/bin\/sh<\/p>\n<p>\tLANGUAGE: en_MX:en_US:en_GB:en<\/p>\n<p>\tSHLVL: 1<\/p>\n<p>\tPYTHONPATH: \/var\/lib\/mailman<\/p>\n<p>\tPWD: \/var\/www<\/p>\n<p>\tLOGNAME: www-data<\/p>\n<p>\tUSER: www-data<\/p>\n<p>\tHOME: \/var\/www<\/p>\n<p>\tMAIL: \/var\/mail\/www-data<\/p>\n<p>\t_: \/usr\/lib\/cgi-bin\/mailman\/listinfo\n<\/p><\/blockquote>\n<p>Ahi estaba el primer detalle:<\/p>\n<blockquote><p>\nIOError: [Errno 13] Permission denied: &#8216;\/var\/lib\/mailman\/logs\/error&#8217;\n<\/p><\/blockquote>\n<p>\/var\/log\/mailman no es puede ser escrito cuando es invocado por www-data en este caso lighttpd a dar chown www-data.www-data \/var\/log\/mailman -R<\/p>\n<p>Bueno despu\u00e9s de arreglar eso a invocarlo de nuevo:<\/p>\n<blockquote><p>\n\/usr\/lib\/cgi-bin\/mailman# su &#8211; www-data -c \/usr\/lib\/cgi-bin\/mailman\/listinfo <\/p>\n<p>Status: 405 Method not allowed<\/p>\n<p>Content-type: text\/plain<\/p>\n<p>The method is not allowed<\/p>\n<\/blockquote>\n<p>Bueno al menos ya tenemos el mismo comportamiento que cuando lo ejecuto directo como root, pero mejor a\u00fan ahora si escribe el error en \/var\/log:<\/p>\n<blockquote><p>\nFeb 23 15:02:31 2009 admin(10633): @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ <\/p>\n<p>admin(10633): [&#8212;&#8211; Mailman Version: 2.1.11 &#8212;&#8211;] <\/p>\n<p>admin(10633): [&#8212;&#8211; Traceback &#8212;&#8212;] <\/p>\n<p>admin(10633): Traceback (most recent call last):<\/p>\n<p>admin(10633):   File \u00ab\/var\/lib\/mailman\/scripts\/driver\u00bb, line 110, in run_main<\/p>\n<p>admin(10633):     main()<\/p>\n<p>admin(10633):   File \u00ab\/usr\/lib\/mailman\/Mailman\/Cgi\/listinfo.py\u00bb, line 42, in main<\/p>\n<p>admin(10633):     listinfo_overview()<\/p>\n<p>admin(10633):   File \u00ab\/usr\/lib\/mailman\/Mailman\/Cgi\/listinfo.py\u00bb, line 87, in listinfo_overview<\/p>\n<p>admin(10633):     mlist = MailList.MailList(name, lock=0)<\/p>\n<p>admin(10633):   File \u00ab\/usr\/lib\/mailman\/Mailman\/MailList.py\u00bb, line 130, in __init__<\/p>\n<p>admin(10633):     self.Load()<\/p>\n<p>admin(10633):   File \u00ab\/usr\/lib\/mailman\/Mailman\/MailList.py\u00bb, line 638, in Load<\/p>\n<p>admin(10633):     dict, e = self.__load(file)<\/p>\n<p>admin(10633):   File \u00ab\/usr\/lib\/mailman\/Mailman\/MailList.py\u00bb, line 604, in __load<\/p>\n<p>admin(10633):     fp = open(dbfile)<\/p>\n<p>admin(10633): IOError: [Errno 13] Permission denied: &#8216;\/var\/lib\/mailman\/lists\/anime\/config.pck&#8217;<\/p>\n<p>admin(10633): [&#8212;&#8211; Python Information &#8212;&#8211;] <\/p>\n<p>admin(10633): sys.version     =   2.5.2 (r252:60911, Jan  4 2009, 17:40:26) <\/p>\n<p>[GCC 4.3.2] <\/p>\n<p>admin(10633): sys.executable  =   \/usr\/bin\/python <\/p>\n<p>admin(10633): sys.prefix      =   \/usr <\/p>\n<p>admin(10633): sys.exec_prefix =   \/usr <\/p>\n<p>admin(10633): sys.path        =   \/usr <\/p>\n<p>admin(10633): sys.platform    =   linux2 <\/p>\n<p>admin(10633): [&#8212;&#8211; Environment Variables &#8212;&#8211;] <\/p>\n<p>admin(10633): \tREDIRECT_STATUS: 200 <\/p>\n<p>admin(10633): \tSERVER_SOFTWARE: lighttpd\/1.4.19 <\/p>\n<p>admin(10633): \tSCRIPT_NAME: \/cgi-bin\/mailman\/listinfo <\/p>\n<p>admin(10633): \tREQUEST_METHOD: GET <\/p>\n<p>admin(10633): \tHTTP_KEEP_ALIVE: 300 <\/p>\n<p>admin(10633): \tSERVER_PROTOCOL: HTTP\/1.1 <\/p>\n<p>admin(10633): \tCONTENT_LENGTH: 0 <\/p>\n<p>admin(10633): \tHTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 <\/p>\n<p>admin(10633): \tHTTP_USER_AGENT: Mozilla\/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko\/2009011912 Firefox\/3.0.6 <\/p>\n<p>admin(10633): \tHTTP_CONNECTION: keep-alive <\/p>\n<p>admin(10633): \tSERVER_NAME: foo.bar<\/p>\n<p>admin(10633): \tREMOTE_PORT: 58661 <\/p>\n<p>admin(10633): \tSERVER_PORT: 80 <\/p>\n<p>admin(10633): \tSERVER_ADDR: 0.0.0.0 <\/p>\n<p>admin(10633): \tDOCUMENT_ROOT: \/var\/www\/html <\/p>\n<p>admin(10633): \tPYTHONPATH: \/var\/lib\/mailman <\/p>\n<p>admin(10633): \tSCRIPT_FILENAME: \/usr\/lib\/cgi-bin\/mailman\/listinfo <\/p>\n<p>admin(10633): \tHTTP_HOST: foo.bar<\/p>\n<p>admin(10633): \tREQUEST_URI: \/cgi-bin\/mailman\/listinfo <\/p>\n<p>admin(10633): \tHTTP_ACCEPT: text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8 <\/p>\n<p>admin(10633): \tGATEWAY_INTERFACE: CGI\/1.1 <\/p>\n<p>admin(10633): \tREMOTE_ADDR: foo.bar<\/p>\n<p>admin(10633): \tHTTP_ACCEPT_LANGUAGE: en-us,en;q=0.5 <\/p>\n<p>admin(10633): \tHTTP_ACCEPT_ENCODING: gzip,deflate <\/p>\n<blockquote>\n<p>Mhh&#8230; aqui lo importante<\/p>\n<blockquote><p>\nadmin(10633): IOError: [Errno 13] Permission denied: &#8216;\/var\/lib\/mailman\/lists\/anime\/config.pck&#8217;<\/p>\n<p>admin(10633): [&#8212;&#8211; Python Information &#8212;&#8211;]\n<\/p><\/blockquote>\n<p>El directorio lists y todo su contenido tiene como due\u00f1o root.list entonces pues ahora nuestro binario (setgid) no puede leer las listas&#8230; pero entonces ya estamos de gane:<\/p>\n<blockquote><p>\nchown www-data.list lists\/ -R\n<\/p><\/blockquote>\n<p>**Y voila tenemos mailman funcionando en Debian con lighttpd. Resumiendolo en pocos pasos.**<\/p>\n<p>1) Es necesario activar el modulo cgi de lighttpd (si esta uno en stable, es este caso Lenny, no hay necesidad de modificar su configuraci\u00f3n.<\/p>\n<p>2) En lighttpd.conf hay que a\u00f1adir alias a los archivos que se van a usar:<\/p>\n<blockquote><p>\nalias.url +=     (<\/p>\n<p>\t\u00ab\/cgi-bin\/\u00bb => \u00ab\/usr\/lib\/cgi-bin\/\u00bb,<\/p>\n<p>\t\u00ab\/pipermail\/\u00bb => \u00ab\/var\/lib\/mailman\/archives\/public\/\u00bb,<\/p>\n<p>        \u00ab\/images\/mailman\/\u00bb => \u00ab\/usr\/share\/images\/mailman\/\u00bb,<\/p>\n<p>)\n<\/p><\/blockquote>\n<p>3) \/var\/log\/mailman tiene como due\u00f1o root.list y debe ser www-data.list para que pueda escribir lighttpd ahi<\/p>\n<p>4) \/var\/lib\/mailman\/list tiene como due\u00f1o a root.list y tambien debe ser www-data.lists para que pueda leer y modificar ahi lighttpd (bueno mas bien el script pero que es invocado por lighttpd), tambi\u00e9n a archives\/ data\/ deben cambiarseles los permisos o de lo contrario la pagina del administrador no funciona correctamente<\/p>\n<p>5) newlist en caso de que aun no tengamos listas creadas.<\/p>\n<p>Actualizaci\u00f3n: 28 Feb, a\u00f1ado m\u00e1s directorios que deben tener permisos www-data.list<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bueno despu\u00e9s de darme de topes con esto, ya logre que funcione esta configuraci\u00f3n, que me dio muchos problemas&#8230; para empezar por que no me enviaba el error y as\u00ed ni encontraba el por que marcaba error. Primero he de &hellip; <a href=\"https:\/\/blografia.net\/vicm3\/2009\/02\/debian-lighttpd-mailman\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[13],"class_list":["post-626","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-anime"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":554,"url":"https:\/\/blografia.net\/vicm3\/2008\/06\/cuando-estable-es-demasiado-estable\/","url_meta":{"origin":626,"position":0},"title":"Una de ROR","author":"vicm3","date":"5 junio, 2008","format":false,"excerpt":"Tenemos por ahi una aplicaci\u00f3n corriendo en Ruby on Rails (ROR). En Debian Etch (stable), sin embargo para utilizarla de manera nativa nos encontramos con que usarla como fast cgi en Apache 1.3.x es por decirlo de una manera bonita, extremadamente dificil. Asi que usamos un backport de mongrel... primer\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":633,"url":"https:\/\/blografia.net\/vicm3\/2009\/03\/debian-moodle-suhosin\/","url_meta":{"origin":626,"position":1},"title":"Debian + Moodle + Suhosin","author":"vicm3","date":"13 marzo, 2009","format":false,"excerpt":"Resulta que viendo los headers de un sitio que frecuento (curl -i) me di cuenta que corren php-suhosin, el cual es una aproximaci\u00f3n similar a mod_security, pero sin los problemas de licenciamiento del mismo, de hecho ya alguien en otro momento me lo hab\u00eda sugerido cuando tuve que dejar atr\u00e1s\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":378,"url":"https:\/\/blografia.net\/vicm3\/2007\/01\/la_ociocidad_es_la_madre_de_todos_los_vicios\/","url_meta":{"origin":626,"position":2},"title":"La ociocidad es la madre de todos los vicios&#8230;","author":"vicm3","date":"13 enero, 2007","format":false,"excerpt":"O al menos eso dicen, bueno pues nomas por que estaba viendo que por ahi hay vps realmente baratos, que ofrecen muy pocos recursos 64MB de RAM, 2GB de disco, y 100GB de transferencia mensual. Como tener el juguete 3 meses me cuesta lo mismo que comprar un baileys... (que\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":61,"url":"https:\/\/blografia.net\/vicm3\/2005\/02\/servidor_de_desarrollo\/","url_meta":{"origin":626,"position":3},"title":"Servidor de desarrollo&#8230;","author":"vicm3","date":"19 febrero, 2005","format":false,"excerpt":"Para correr BB en debian (notese que no use los instaladores...) la idea era intentar agarrar la aplicacion de respaldo y hacer que corriera en otro linux... 1. primer problema...librerias dinamicas que cambian de nombre... grandioso. a dar prueba y error... ----------- [exec] \/usr\/blackboard\/apps\/modperl\/bin\/httpd: error while loading shared libraries: libdb.so.3:\u2026","rel":"","context":"En \u00abGeneral\u00bb","block_context":{"text":"General","link":"https:\/\/blografia.net\/vicm3\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":59,"url":"https:\/\/blografia.net\/vicm3\/2005\/02\/la_pesadilla_del_sysadmin\/","url_meta":{"origin":626,"position":4},"title":"La pesadilla del sysadmin","author":"vicm3","date":"17 febrero, 2005","format":false,"excerpt":"Bueno, no se cual sea la peersonal... pero la mia es que el correo se pierda... y que lo haga en un momento realmente importante... esa pesadilla se hizo realidad el dia de hoy. A las dos y media de la tarde a la lista de consol habian llegado mas\u2026","rel":"","context":"En \u00abGeneral\u00bb","block_context":{"text":"General","link":"https:\/\/blografia.net\/vicm3\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":526,"url":"https:\/\/blografia.net\/vicm3\/2008\/02\/y-seguimos-con-vmsplice\/","url_meta":{"origin":626,"position":5},"title":"Y seguimos con vmsplice&#8230;","author":"vicm3","date":"13 febrero, 2008","format":false,"excerpt":"Que la canci\u00f3n repare el asunto del kernel en m\u00ed maquina, pero romp\u00ed la aceleraci\u00f3n de OpenGL para la trinche tarjeta nvidia que tengo (nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x]), voy a hacer un sumario r\u00e1pido de que burradas comet\u00ed: Primero, envi\u00e9 un bugreport al BTS de debian\u2026","rel":"","context":"En \u00abSin categor\u00eda\u00bb","block_context":{"text":"Sin categor\u00eda","link":"https:\/\/blografia.net\/vicm3\/category\/sin-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/comments?post=626"}],"version-history":[{"count":0,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/posts\/626\/revisions"}],"wp:attachment":[{"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/media?parent=626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/categories?post=626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blografia.net\/vicm3\/wp-json\/wp\/v2\/tags?post=626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}