jcatala.net

Compartint el coneixement

UNIX

GNU/Linux

Drupal i PHP

XHTML/CSS

Python

Android

Viatges

Off Topic

Logo Jcatala

Configurar les url netes de Drupal a un servidor NGINX

16 de Abril de 2014 per joan

El servidor NGINX no entén les directives del fitxer .htaccess, aleshores si vols prescindir de l'Apache i usar NGINX al teu servidor no et funcionaran les url netes.

Per defecte, amb NGINX tenia la següent configuració:

    server {
        server_name _;
        root /var/www/html;

        location / {
          try_files $uri @rewrite;
        }

        location @rewrite {
                rewrite ^/(.*)$ /index.php;
        }

I mirant els fòrums de Drupal, he trobat la solució ràpidament al comentari següent: https://drupal.org/comment/4365242#comment-4365242 , he fet copiar&pegar, literalment, aleshores finalment, tinc a la meua configuració de NGINX:

    server {
        server_name _;
        root /var/www/html;

        location / {
                # This is cool because no php is touched for static content
                try_files $uri @rewrite;
        }
        location @rewrite {
                # Some modules enforce no slash (/) at the end of the URL
                # Else this rewrite block wouldn't be needed (GlobalRedirect)
                rewrite ^/(.*)$ /index.php?q=$1;
        }

He reiniciat el servidor NGINX i ha funcionat a la perfecció.

Sobre un error "Unable to allocate memory for pool" a un Drupal corrent a un servidor antic

11 de Abril de 2014 per joan

Avui, de sobte, he experimentat el següent error a un Drupal 7, amb la última versió, que estava funcionant correctament:

Warning: include(): Unable to allocate memory for pool. en theme_render_template() (línea 1517 de /var/www/html/sepam-d7/includes/theme.inc).

No és un tema del Drupal, sinó de la configuració del APC de la caché de PHP, que pot ser estiga definida al teu php.ini o a un apc.ini enllaçat al teu php.ini

Com que estic treballant en un servidor de manera temporal i, una vegada la web estiga finalitzada, la passarem a un servidor en producció, de moment l'he solventat modificant al index.php de Drupal amb:

ini_set('apc.cache_by_default',0);

You're wrong (NOFX)

10 de Abril de 2014 per joan

Permitint un accès remot al nostre servidor MySQL en Debian

30 de Març de 2014 per joan

Si estàs fent algun desenvolupament i necessites poder accedir des d'un equip remot a alguna base de dades que tingues al teu servidor MySQL, pots fer-ho fàcilment seguint aquest xicotet article.

Anem a editar la configuració del MySQL de la nostra Debian per a dir-li que es tracta d'un servidor i pot rebre peticions des de fora. Editem aleshores el fitxer /etc/mysql/my.conf i delimitem exactament la IP del nostre Debian, que serà el servidor MySQL:

bind-address = 192.168.1.39

(NOTA: Abans tenim el skip-networking, però ara a les noves versions de MySQL ja no existeix aquesta opció. Si simplement no volem que el nostre servidor MySQL siga accesible remotament, ficarem "localhost" i ja està)

Ara, reiniciem MySQL:

/etc/init.d/mysql restart

I a continuació, simplement farem els grants que necessitem per a donar l'accès remot als usuaris. Per exemple, si jo vull accedir des del meu portàtil Lenovo amb IP 192.168.1.38 on tinc també una Debian Sid, ficarem la següent ordre:

mysql> GRANT ALL ON ofisam.* TO 'joan'@'192.168.1.38' IDENTIFIED BY '1234';

I ja està. Des d'aquest moment l'usuari 'joan' amb ocntrasenya '1234' ja pot accedir remotament des del portàtil Lenovo.

Configurant el MySQL JDBC Connector del LibreOffice en Debian

30 de Març de 2014 per joan

Si necessites connectar el LibreOffice Base amb alguna base de dades MySQL externa, pots configurar fàcilment el JDBC Connector i fer-lo servir com a gestor de les teues taules, consultes i informes.
Nomès cal descarregar el mysql-connector-java-5.1.6-bin.jar, per exemple des d'aquesta pàgina i modificar el ClassPath des de les opcions de configuració del LibreOffice.

MySQL JDBC Connector LibreOffice

MySQL JDBC Connector LibreOffice

MySQL JDBC Connector LibreOffice

Espere que et siga útil aquest xicotet article.

Mètode Toplevel() per obrir noves finestres a la nostra aplicació Tkinter

28 de Març de 2014 per joan

Tal com s'explica a http://effbot.org/tkinterbook/toplevel.htm , quan volem obrir noves finestres que siguen tancades si es tanca l'aplicació, farem ús del métode Toplevel() del tkinter. Ací un exemple:

    #fiquem a una sola tupla el resultat del SELECT i enmagatzenem el telèfon i el nom de la EELL
    resultatMostrarTelefon = resultado[0]
    variable_telefon = resultatMostrarTelefon[2]
    variable_nomeell = resultatMostrarTelefon[1]

    finestraTelefon = Toplevel()
    finestraTelefon.attributes('-topmost', 1)
    finestraTelefon.geometry('500x100+700+300')
    finestraTelefon.title('Telèfon de ' + variable_nomeell)  
    labelTelefono = Label(finestraTelefon, text=variable_telefon, font=('times', 30, 'bold'))
    labelTelefono.grid(row=0)
    #finestraTelefon.mainloop()

Una pàgina Drupal que redirecciona a una pàgina externa

13 de Març de 2014 per joan

Avui a la feina m'han demanant redirigir una ruta concreta d'un portal que funciona amb Drupal. Ací baix deixe el condicional que comprova la ruta de la URL passada. És molt senzill. Cal dir que açò també es pot fer amb el fitxer .htaccess però ací deixe una manera de fer-ho des de Drupal, per si a algú li servix:

//
// Un hack temporal per a Xavier.
// Aquest codi mira per la url i, quan detecta que es "/mostra"
// redirigeix a la web de Vins de la terra.
//
if (module_exists('path')) { $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
    if (substr_count($alias,"mostra")>0) { ?>
            <html>
                 <meta http-equiv="refresh" content="1;url='http://www.vinsdelaterra.com'"> <head></head>
                 <body>
                 </body>
            </html>
    <?php
    }
}

Kiam vi uzos Klaku.net?

10 de Març de 2014 per joan

Saluton kara samlingvano! La tago havas nur 24 horojn (en la planedo Tero jes, en aliaj planedoj dependas). De tiaj 24 horoj, vi dormas ok (pli-malpli), vi laboras/studas inter ses kaj naŭ (pli-malpli), vi manĝas kaj drinkas kafon du (pli-malpli), seksumas unu (aŭ eble kvin minutoj) kaj poste vi havas la nomatan "liberan tempon", ĉu ne? Dum via libera tempo, vi ŝatas legi kaj skribi en Interreto, kaj por amuzigi kaj por esti informata, ĉu ne?

Nu, vi devus scii ke, ene de la esperanto-blogaro, ni havas multajn multjan intersajn blogojn en iPernity, Tumblr, Wordpress, ktp. Mi konas diversajn komunikiloj kiel Cina Radio Internacia, Libera Folio, Le Monde Diplomatique, ktp, kaj ili regule publikigas novaĵojn. Mi konas bonegajn forumojn kiel la forumoj de Lernula forumoj de AEA, ktp, kie oni povas sekvi diskutojn ka debatojn pri plurdiversaj temoj. Ankaŭ mi konas politikajn organizoj kiel SAT (tutmonda)La Solidareco (SudKoreio) kaj ili publikigas interesajn artikolojn kaj eventoj. Kaj ankaŭ ekzistas Facebook, Twitter, debatojn en Linkedin, videoj en Youtube, Vimeo, ktp, ktp, ktp..., tamen NE eblas legi kaj sekvi ĉiujn retejojn regule, ĉar la tempo mankas al ni ĉiuj.

Mia demando estas, kiam vi uzos Klaku.net por informigi pri viaj plej ŝatataj novaĵoj kaj konigi ilin al aliaj esperanto-parolantoj?

Dankon por legi.

Passar de MySQL a SQLite

4 de Març de 2014 per joan

Hi han prou scripts i utilitats per la xarxa, però aquest m'ha agradat per lo ràpid i eficient que és.

Nomès cal fer un mysqldump de la teua base de dades amb:

$ mysqldump -u USUARI -pCONTRASENYA --compatible=ansi --skip-opt > fitxer_dump

I després executar l'script següent passant com a argument el dump:

#!/bin/bash
if [ "x$1" == "x" ]; then
  echo "Usage: $0 <dumpname>"
  exit
fi

cat $1 |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
grep -v ' PRIMARY KEY ' |
sed '/^SET/d' |
sed 's/ unsigned / /g' |
sed 's/ auto_increment/ primary key autoincrement/g' |
sed 's/ smallint([0-9]*) / integer /g' |
sed 's/ tinyint([0-9]*) / integer /g' |
sed 's/ int([0-9]*) / integer /g' |
sed 's/ character set [^ ]* / /g' |
sed 's/ enum([^)]*) / varchar(255) /g' |
sed 's/ on update [^,]*//g' |
sed 's/\\r\\n/\\n/g' |
sed 's/\\"/"/g' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
  $a=$1;
  s/\\'\''/'\'\''/g;
  s/\\n/\n/g;
  s/\),\(/\);\n$a\(/g;
}
' > $1.sql
cat $1.sql | sqlite3 $1.db > $1.err
ERRORS=`cat $1.err | wc -l`
if [ $ERRORS == 0 ]; then
  echo "Conversion completed without error. Output file: $1.db"
  rm $1.sql
  rm $1.err
else
  echo "There were errors during conversion.  Please review $1.err and $1.sql for details."
fi

joan-en-riseup.net copyleft © 2001-2014 - Tutmonde - Benicass.im

desenvolupat amb Drupal