Inicio   defunct.gatopelao.org(Terminales / Xen / freeNX / etc)
agenda(2)  barrufet(5)  debian(1)  linux(1)  network(2)  rediris(3)  statusnet(3)  storage(2)  xen(4)  xmpp(1)  
weblog gatopelao

Tue, 13 Oct 2009

postgresql8.3 y statusnet0.8.1


Instalé statusnet con postgresql y después de probar el funcionamiento del site encuentro que postgresql no está demasiado testeado.

Si el usuario olvida la contraseña, la web tiene un formulario para recuperarla. El usuario entra su nombre o correo-e y la aplicación le manda un correo con un link donde pueda introducir un nuevo contraseña.

El problema es que cuando el usuario dé a ese link, la aplicación dice que el enlace (o la petición) se ha caducado.

En le fichero actions/recoverpassword.php se crea la petición y se guarda el la base de datos. Pero mirando la base de datos encontré que el campo 'modified' tipo TIMESTAMP, está NULL.

En la lista de statusnet dicen que en una basa de datos mysql, los campos de tipo timestamp se llenan automaticamente. Parece que no es lo mismo en postgresql.

Entonces....

# su postgres
$ createlang plpgsql statusnet
$ exit

# vim a_pg_function.sql
CREATE FUNCTION confirm_time_stamp() RETURNS trigger AS $confirm_time_stamp$
    BEGIN
        -- Add time stamp to confirm_address:modify
        NEW.modified := current_timestamp;
        RETURN NEW;
    END;
$confirm_time_stamp$ LANGUAGE plpgsql;
CREATE TRIGGER confirm_time_stamp BEFORE INSERT OR UPDATE ON confirm_address
    FOR EACH ROW EXECUTE PROCEDURE confirm_time_stamp();

# psql -h localhost -U statusnet -d statusnet -f a_pg_function.sql
Ahora puedo recuperar mi contraseña por correo. Pero parece que no está muy testeado el 0.8.1 con postgres. De momento me quedo con mysql.

[/statusnet] permanent link


Wed, 07 Oct 2009

Language settings
Al instalar 0.8.1 no hay manera de cambiar el idioma de la aplicación. Me aseguro que tengo instalado los locales.

# dpkg-reconfigure locales

Defino es_ES en config.php como idioma por omisión pero no va.
$config['site']['language'] = 'es_ES.UTF-8';

ni tampoco puedo cambiar el idioma desde la configuración del perfil del usuario.

# vim lib/language.php
//'es' => array('q' => 1, 'lang'=> 'es', 'name'=> 'Spanish', 'direction'=>'ltr'),
'es' => array('q' => 1, 'lang'=> 'es_ES','name'=> 'Spanish', 'direction'=>'ltr'),

Así se resuelve.

[/statusnet] permanent link


Instalar statusnet.0.8.1

http://gitorious.org/statusnet/mainline/blobs/master/README

Packages
# apt-get install git-core
# apt-get install apache2 postgresql
# apt-get install libapache2-mod-php5 php5-cli php-pear php5-pgsql php5-curl php5-gmp php5-gd
# apt-get install postfix

# cd /usr/local/src
# wget http://status.net/statusnet-0.8.1.tar.gz
# cd /var/www
# tar zxvf /usr/local/src/statusnet-0.8.1.tar.gz ./
# ln -s ./statusnet-0.8.1 ./statusnet


Postgresql
# su postgres
$ psql
postgres=# create user statusnet with password '1234';
postgres=# create database statusnet with owner statusnet encoding 'UTF8';
postgres=# \q
$ exit
# vim /etc/postgresql/8.3/main/pg_hba.conf
host    statusnet   statusnet   127.0.0.1/32          md5 sameuser
# /etc/init.d/postgresql-8.3 restart

# su postgres
$ createlang plpgsql statusnet

mysql
CREATE USER 'statusnet'@'localhost' IDENTIFIED BY '1234';
create database statusnet;
grant all on statusnet.* to 'statusnet'@localhost identified by '1234';


Apache
# cd /etc/apache2/sites-enabled/
# mv 000-default 000-default.orig
# vim 000-defualt

<VirtualHost *>
        ServerName ceroacinco
        ServerAlias 192.168.2.22
        DocumentRoot /var/www/statusnet
        <Directory /var/www/statusnet>
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

# a2enmod rewrite
# a2enmod php5
# /etc/init.d/apache2 restart

Configurar StatusNet

# cd statusnet
# cp htaccess.sample .htaccess

Página de configuración
http://mi_servidor/install.php
Esto de creará config.php

Para ver las librerías que te falten, mira la página..
# mv config.php config.php.bak
http://mi_servidor/install.php?checklibs=true
Esto te dirá que más te hace falta instalar.

Puedes instalar lo que te falta haciendo
# apt-get install  php5-dev
# pear channel-update pear.php.net
# pear install channel://pear.php.net/Validate-0.8.1
# pear install DB_DataObject
# pear install Mail
etc, etc

O también puedes instalar las liberías copiando las desde extlib/ hasta /usr/share/php
# cp extlib/markdown.php /usr/share/php
etc, etc

Ahora mira config.php.sample para saber las opciones de configuración.

Nota: Si quieres borrar la base de datos y empezar de nuevo. Primero borrala desde postgres y despues.
# cd /var/www/statusnet
# psql -h localhost -U statusnet -d statusnet -f db/statusnet_pg.sql

UPDATE 2009/10/14:
Si quieres llevar el servidor mysql en una maquina y apache en otra.

# vim /etc/mysql/my.cnf
#bind-address = 127.0.0.1
#ip de mi servidor mysql
bind-address = 10.20.103.11

# /etc/init.d/mysql restart

Tambien crear usuario que pueda acceder desde el host del apache(10.20.103.10).

CREATE USER 'statusnet'@'%' IDENTIFIED BY '1234';
create database statusnet;
GRANT ALL ON statusnet.* TO statusnet@'10.20.103.10' IDENTIFIED BY '1234';

[/statusnet] permanent link


June.2010(2)   May.2010(2)   March.2010(1)   January.2010(1)   December.2009(3)   November.2009(4)   October.2009(11)  
Blog software: Blosxom.com The unofficial Blosxum user group
RSS Feed rss feed