|
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
|