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
dimarts, 23 de desembre del 2008
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
dimarts, 26 d’agost del 2008
Problemes apache2 Ubuntu 8 Hardy
Explico la solució del següent problema al instal·lar un servidor LAMP amb Ubuntu 8 Hardy:
- Al enllaçar a scripts php amb FireFox, no els executa sino que et demana amb quina aplicació els vols obrir, o be si els vols guardar.
Després de molt investigar i de vàries reinstal·lacions, la solució que m'ha funcionat es la següent:
- Al arxiu /etc/apache2/sites-enables/000-default, li faltaven indicar el ServerName i el DirectoryIndex.
El fitxer queda de la següent forma (en negreta les modificacions):
NameVirtualHost *
<Virtualhost *>
ServerAdmin webmaster@localhost
ServerName pochtatil
DocumentRoot /var/www/
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
...
Finalment només cal reiniciar l'apache:
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start
- Al enllaçar a scripts php amb FireFox, no els executa sino que et demana amb quina aplicació els vols obrir, o be si els vols guardar.
Després de molt investigar i de vàries reinstal·lacions, la solució que m'ha funcionat es la següent:
- Al arxiu /etc/apache2/sites-enables/000-default, li faltaven indicar el ServerName i el DirectoryIndex.
El fitxer queda de la següent forma (en negreta les modificacions):
NameVirtualHost *
<Virtualhost *>
ServerAdmin webmaster@localhost
ServerName pochtatil
DocumentRoot /var/www/
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride None
...
Finalment només cal reiniciar l'apache:
sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start
Canviar etiqueta unitat USB
Tot això s'ha fet sota Ubuntu 8.04, amb escriptori Gnome.
Per canviar el nom que es veu a l'escriptori, cal canviar-ho des de un sistema Windows (quan descobreixi com fer-ho amb Linux, ja ho publicaré).
Per a muntar el dispositiu USB en un altre lloc, cal canviar el punt de muntatge amb el menú propietats que apareix clicant el botó dret sobre la incona del escriptori. El punt de muntatge cal que sigui un nom, sense caràcters estranys, i que el sistema penjarà del directori /media. Cal que aquest punt de muntatge no existeixi. Al desmuntar i tornar a muntar el dispositiu, ja funcionarà.
Si ens hem equivocat en aquest últim punt, i els sistema ens dona un error dient que no pot muntar el dispositiu doncs conté caràcters incorrectes al path de muntatge, ho podem arreglar amb el programa gconf-editor, modificant a la clau /system/storage/volumes el uuid que correspongui.
Per canviar el nom que es veu a l'escriptori, cal canviar-ho des de un sistema Windows (quan descobreixi com fer-ho amb Linux, ja ho publicaré).
Per a muntar el dispositiu USB en un altre lloc, cal canviar el punt de muntatge amb el menú propietats que apareix clicant el botó dret sobre la incona del escriptori. El punt de muntatge cal que sigui un nom, sense caràcters estranys, i que el sistema penjarà del directori /media. Cal que aquest punt de muntatge no existeixi. Al desmuntar i tornar a muntar el dispositiu, ja funcionarà.
Si ens hem equivocat en aquest últim punt, i els sistema ens dona un error dient que no pot muntar el dispositiu doncs conté caràcters incorrectes al path de muntatge, ho podem arreglar amb el programa gconf-editor, modificant a la clau /system/storage/volumes el uuid que correspongui.
dijous, 21 d’agost del 2008
digikam a Gnome (problemes metadata)
digikam es un gestor fotogràfic molt complet, desenvolupat per a KDE. El podem fer funcionar a Gnome sense problemes (amb instal·ladors tipus Synaptic).
Si experimentem problemes amb la informació metadata de les imatges, es que ens falta instal·lar el paquet kdegraphics-kfile-plugins (amb el mateix Synaptic)
Font: http://www.digikam.org/drupal/node/166
Afegit el 14/04/2009: A partir de la versió 8.10 de Ubuntu sembla ser que això no funciona.
Si experimentem problemes amb la informació metadata de les imatges, es que ens falta instal·lar el paquet kdegraphics-kfile-plugins (amb el mateix Synaptic)
Font: http://www.digikam.org/drupal/node/166
Afegit el 14/04/2009: A partir de la versió 8.10 de Ubuntu sembla ser que això no funciona.
Etiquetes de comentaris:
digikam,
gestor fotografic,
gestor fotografico,
kde,
kdegraphics
dimarts, 29 de juliol del 2008
Encriptar unitats USB amb Linux
Cal instal·lar el paquet cryptsetup.
Connectem la unitat USB, ja sigui un memory stick o un disc dur extern, i des de un terminal mirem el nom del dispositiu amb dmesg (per exemple, serà /dev/sdc).
Tot seguit particionem el dispositiu, si així ho volem.
Per encriptar una partició i donar-li format fat32 farem el següent: sudo luksformat /dev/sda1
Podem utilitzar la opció -t per donar format en un altre sistema de fitxers: sudo luksformat -t ntfs /dev/sda
El format LUKS ve de les sigles Linux Unified Key Support.
Es pot accedir des de Windows amb el software FreeOTFE.
Podem consultar el manual per a altres opcions.
Referències: http://ubuntu.wordpress.com/2006/01/24/use-an-encrypted-usb-drivepartition/
Avançat: HOWTO: Disk encryption with dm-crypt / LUKS and Debian
Connectem la unitat USB, ja sigui un memory stick o un disc dur extern, i des de un terminal mirem el nom del dispositiu amb dmesg (per exemple, serà /dev/sdc).
Tot seguit particionem el dispositiu, si així ho volem.
Per encriptar una partició i donar-li format fat32 farem el següent: sudo luksformat /dev/sda1
Podem utilitzar la opció -t per donar format en un altre sistema de fitxers: sudo luksformat -t ntfs /dev/sda
El format LUKS ve de les sigles Linux Unified Key Support.
Es pot accedir des de Windows amb el software FreeOTFE.
Podem consultar el manual per a altres opcions.
Referències: http://ubuntu.wordpress.com/2006/01/24/use-an-encrypted-usb-drivepartition/
Avançat: HOWTO: Disk encryption with dm-crypt / LUKS and Debian
Subscriure's a:
Missatges (Atom)