Instalar un nodo público de gnusocial en Debian Jessie

Al grano, instalamos el software necesario:

sudo apt-get install mariadb-server nginx php5 php5-curl php5-gd php5-intl php5-fpm php5-mysqlnd php-mail php-pear gettext git exim4

Después de hacer esto habremos configurado el servidor de mysql y podremos ver la pass de debian-sys-maint en /etc/mysql/mysql.conf. Es la pass que vamos a usar para lanzar este comando:

mysql -u debian-sys-maint -ppassword

Esto va a entrar en la shell de mysql inmediatamente creamos la db:

MariaDB [(none)]> create database gnusocial;

Si hemos hecho algo mal, siempre puedes volver a instalar y volver a crearla previo a borrarla tal que así:

MariaDB [(none)]> drop database gnusocial;

Ahora vamos a dar permisos a debian-sys-maint para la base de datos de gnusocial

>MariaDB [(none)]> GRANT ALL PRIVILEGES ON gnusocial.* TO 'debian-sys-maint'@'localhost';

Nos metemos al directorio /var/www descargamos gnusocial y damos los permisos necesarios a nginx:

cd /var/www
git clone https://github.com/foocorp/gnu-social gnusocial
chown www-data:www-data -R /var/www/gnusocial 
chmod a+w /var/www/gnusocial

Bajamos el plugin de Qvitter porque a la gente no le gusta el theme default, casi que lo evitan, (importante-> Mayúscula el nombre el directorio):

cd plugins
git clone https://github.com/hannesmannerheim/qvitter Qvitter

Configuramos nginx para que sirva social en los puertos 80 y 443:

cd /etc/nginx/sites-avaliable
nano gnusocial.conf
server {
listen 80;
        listen [::]:80;
        server_name gnusocial.net;

        access_log /var/log/gnusocial.access.log;
        error_log  /var/log/gnusocial.error.log;
        return  301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        server_name gnusocial.net;
        charset utf-8;
        index index.php index.html index.htm;
        add_header Strict-Transport-Security "max-age=31536000;";
        add_header Pragma "no-cache";
        add_header Cache-Control "private, max-age=0, no-cache, no-store";

        ssl on;
        ssl_certificate /etc/letsencrypt/live/gnusocial.net/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/gnusocial.net/privkey.pem;

        access_log /var/log/gnusocial.access.log;
        error_log  /var/log/gnusocial.error.log;
        
       root /var/www/gnusocial; 
       index -_-.php index.php;
         
         location ~ \.php$ {
               include fastcgi_params;
               fastcgi_pass 127.0.0.1:9000;
               #fastcgi_pass unix:/var/run/php5-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_intercept_errors on;
               fastcgi_split_path_info ^(.+\.php)(.*)$;
               fastcgi_hide_header X-Powered-By;
 }

 location / {
 try_files $uri $uri/ @gnusocial;
 }
location @gnusocial {
rewrite ^(.*)$ /index.php?p=$1 last;
}
}

Hacemos que nginx ponga el site en sitios activos tal que así:

cd ../sites-enable
ln -s ../sites-avaliable/gnusocial.conf .

Ahora vamos a instalar social entrando en nuestro dominio en nuestro caso: https://gnusocial.net/install.php

gnusocialinstall1-777x1024

Rellenamos los campos, recomendamos activar el ssl, puedes usar LetsEncrypt para ello y usar como ejemplo el archivo de configuración de nginx. Hay que seleccionar el modo público para que la gente pueda registrarse libremente y para finalizar, le damos al botón submit. Habremos generado el archivo config.php dentro de /var/www/gnusocial. Ahora tenemos que editarlo con nano para añadir el plugin de qvitter la configuración de correo si habéis instalador exim4:

if (!defined('GNUSOCIAL')) { exit(1); }

$config['site']['name'] = 'gnusocial.net';

$config['site']['server'] = 'gnusocial.net';
$config['site']['path'] = false; 

$config['site']['ssl'] = 'always'; 

$config['site']['fancy'] = true;

$config['db']['database'] = 'mysqli://debian-sys-maint:password@localhost/gnusocial';

$config['db']['type'] = 'mysql';

// Uncomment below for better performance. Just remember you must run
// php scripts/checkschema.php whenever your enabled plugins change!
//$config['db']['schemacheck'] = 'script';

$config['site']['profile'] = 'public';

addPlugin('Qvitter');
addPlugin('StoreRemoteMedia');

$config['mail']['domain'] = 'gnusocial.net';
// See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array(
'host' => 'localhost',
'port' => 25,

);
);

Después de hacer esto es recomendado por la wiki cambiar el fichero config.php a permisos más restrictivos tal que así:

sudo chmod 400 config.php

Ahora ya deberíamos poder logearnos con el usuario administrador que hemos configurado al instalar y empezar a disfrutar de nuestro nodo.

Forget the bird, use the Gnu!!!

8 Comments

  1. +1 foo, así tenemos la conf guardada , aunque esperamos que no nos haga falta usarla otra vez :( xDDD

  2. Gracias por el tuto. Lo malo de dicha versión de GNUSocial que viene en Debian es que está en Beta, aunque se agradece que hayan estabilizado dicha versión.

  3. Ah, por cierto, GNUSocial ya tiene nuevo GIT desde hace un buen tiempo, y usan GitLab para gestionar los repositorios..

    PD: Lapsus calami por lo del repo, recién me di cuenta que estaban usando el repo de GitHub que estaba abandonado.

  4. Upate para la posteridad interesante

    Ir a etc/php5/fpm/pool.d

    editar http://www.conf

    cambiar la linea

    pm = dynamic

    por

    pm = ondemand

    especialmente para nodos con pocos recursos o de uno solo usuario

  5. Activar opción para que ser borren los usuarios
    root@gnusocial:/var/www/gnusocial/scripts# php setconfig.php profile delete true

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax