dimarts, 16 de juny del 2009
Crear un daemon ubuntu linux amb php
El resum no està disponible. Fes clic
en aquest enllaç per veure la publicació.
divendres, 29 de maig del 2009
vmware 2.0 configurar despres d'un canvi en el kernel
Si les actualitzacions automàtiques del nostre linux ens han canviar la versió del kernel, o bé si ho hem fet manualment, caldrà configurar de nou el vmware 2.0
Això cal fer-ho amb la instrucció
# /usr/bin/vmware-config.pl
i seguir les instruccions en pantalla.
Això cal fer-ho amb la instrucció
# /usr/bin/vmware-config.pl
i seguir les instruccions en pantalla.
Etiquetes de comentaris:
actualització,
configuració,
kernel,
linux,
vmware
dilluns, 11 de maig del 2009
vmware 2.0, configuració correcta del teclat
Si al treballar amb vmware 2.0 detectem que els sistemes hostatjats no responen correctament al teclat (sobretot ho notarem amb les fletxes dels cursors), podem provar una de les següents solucions:
Editar el fitxer /etc/vmware/config i afegir la línia següent:
xkeymap.nokeycodeMap = true
o bé afegint les línies següents:
xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
En ambdos casos caldrà reiniciar el vmware amb
/etc/init.d/vmware stop
/etc/init.d/vmware start
Aquesta solució la he trovat a http://blogs.unbolt.net/index.php/brinley/2008/11/12/vmware-server-2-0-breaks-keyboard-mappin-10
Editar el fitxer /etc/vmware/config i afegir la línia següent:
xkeymap.nokeycodeMap = true
o bé afegint les línies següents:
xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
En ambdos casos caldrà reiniciar el vmware amb
/etc/init.d/vmware stop
/etc/init.d/vmware start
Aquesta solució la he trovat a http://blogs.unbolt.net/index.php/brinley/2008/11/12/vmware-server-2-0-breaks-keyboard-mappin-10
dimarts, 14 d’abril del 2009
Problemes amb PHP5 i les extensions dinàmiques
Amb la nova versió del php, la 5.2.5, hi ha hagut un canvi en la forma de carregar els fitxers dinàmics tipus dll o so.
En la nova versió cal que els fitxers estiguin en el directori per defecte definit en la directiva extension_dir del php.ini (/etc/php5/apache2/php.ini)
En el meu cas, el problema el vaig trobar al intentar carregar la llibreria phpchartdir520.dll del ChartDirector. Al executar la pàgina web que la requeria, apareixia un missatge d'error tipus:
La solució es basa en copiar els fitxers necessaris (la llibreria requerida) al directori per defecte indicat a la directiva extension_dir.
Per al cas concret del ChartDirector, ha calgut copiar els següents arxius:
En la nova versió cal que els fitxers estiguin en el directori per defecte definit en la directiva extension_dir del php.ini (/etc/php5/apache2/php.ini)
En el meu cas, el problema el vaig trobar al intentar carregar la llibreria phpchartdir520.dll del ChartDirector. Al executar la pàgina web que la requeria, apareixia un missatge d'error tipus:
dl(): Temporary module name should contain only filename
Aquest missatge apareix quant s'intenta carregar dinàmicament una llibreria que no es troba en el directori per defecte abans indicat. Segurament abans d'aquest missatge ens haurà donat un altre missatge similar indicant que ha intentat carregar la llibreria des del directori per defecte.La solució es basa en copiar els fitxers necessaris (la llibreria requerida) al directori per defecte indicat a la directiva extension_dir.
Per al cas concret del ChartDirector, ha calgut copiar els següents arxius:
- phpchartdir520.dll
- libchartdir.so
- chartdir.lic
- fonts/
Etiquetes de comentaris:
dinamiques,
dll,
extension_dir,
extensions,
php5
dimarts, 23 de desembre del 2008
Reinstal·lar un paquet Debian
Si hem desinstal·lat un paquet Debian (a Ubuntu hem fet apt-get remove "paquet") i, al instal·lar-lo de nou ens dona errors, podem intentar fer el següent:
Per exemple, si fos la paquet postfix:
apt-get install --reinstall postfix
Per exemple, si fos la paquet postfix:
apt-get install --reinstall postfix
dimarts, 16 de desembre del 2008
Serveis escoltant peticions de xarxa
Per conèixer els serveis que tenim escoltant peticions de xarxa podem executar:
netstat -tap
Si volem buscar algun servei en concret poden executar, per exemple:
netstat -tap | grep pop3
netstat -tap
Si volem buscar algun servei en concret poden executar, per exemple:
netstat -tap | grep pop3
divendres, 5 de setembre del 2008
PHP5: session_start() i session_write_close()
Al posar en funcionament un servidor LAMP, ens serà prou fàcil i trobarem molta informació sobre multitasking, tant a l'Apache com al MySQL com per al PHP.
Jo em vaig trobar amb un cas curiós. Tot i haver configurat tot assegurant les capacitats de multitasca, al treballar desde un mateix client web i amb una mateixa sessió el multitasquing no funcionava. Fins que no es carregava una pàgina no s'iniciava la càrrega de la següent.
Després de molt buscar vaig trovar (al manual oficial del PHP, que ja te gràcia la cosa) que al iniciar un script php i cridar la funció session_start() el php bloqueja la crida de aquesta funció des de altres scripts per a la mateixa sessió. El motiu es prou raonable, doncs els valors de la sessió son per passar-los d'un script a l'altre, i si en un script els estem modificant podriem generar inconsistències als altres scripts.
Per sort, vaig descobrir que la funció session_write_close() bloqueja les variables de la sessió per a escriptura, però permet treballar amb tota normalitat amb la seva funcionalitat. Així doncs, per a cada script cal començar amb la funció session_start() i, en el moment en que el script ja no tingui que actualitzar l'array $_SESSION, ja podem executar la funció session_write_close(), fet que permetrà desbloquejar la execució d'altres scripts que estiguin aturats en el semàfor per a la funció session_start().
Evidentment, aquest problema de paralelisme es dona per a una mateixa sessió (un mateix client). Ja veurem si més endavant, en futures versions de PHP es permeten múltiples sessions per a un mateix client.
Jo em vaig trobar amb un cas curiós. Tot i haver configurat tot assegurant les capacitats de multitasca, al treballar desde un mateix client web i amb una mateixa sessió el multitasquing no funcionava. Fins que no es carregava una pàgina no s'iniciava la càrrega de la següent.
Després de molt buscar vaig trovar (al manual oficial del PHP, que ja te gràcia la cosa) que al iniciar un script php i cridar la funció session_start() el php bloqueja la crida de aquesta funció des de altres scripts per a la mateixa sessió. El motiu es prou raonable, doncs els valors de la sessió son per passar-los d'un script a l'altre, i si en un script els estem modificant podriem generar inconsistències als altres scripts.
Per sort, vaig descobrir que la funció session_write_close() bloqueja les variables de la sessió per a escriptura, però permet treballar amb tota normalitat amb la seva funcionalitat. Així doncs, per a cada script cal començar amb la funció session_start() i, en el moment en que el script ja no tingui que actualitzar l'array $_SESSION, ja podem executar la funció session_write_close(), fet que permetrà desbloquejar la execució d'altres scripts que estiguin aturats en el semàfor per a la funció session_start().
Evidentment, aquest problema de paralelisme es dona per a una mateixa sessió (un mateix client). Ja veurem si més endavant, en futures versions de PHP es permeten múltiples sessions per a un mateix client.
Etiquetes de comentaris:
php sessions,
php5,
sesiones php,
session_start,
session_write_close,
sessions php
Subscriure's a:
Missatges (Atom)
