Newscoop 3 para periodistas y editores

Instalación manual 

El siguiente método de instalación manual esta diseñado para administradores de sistema más experimentados y asume que tienes permisos sudo y root en el servidor de destino. Si los paquetes listos para usarse de Newscoop no están disponibles para tu distribución GNU/Linux preferida, puedes instalar el software manualmente utilizando el archivo tipo tarball disponible para descargarse desde Sourcefabric:

http://www.sourcefabric.org/es/newscoop/descarga/

Dependencias

Antes de empezar la instalación manual, deberás verificar que todos los paquetes de dependencias requeridos por Newscoop están ya instalados y funcionando. Estas dependencias son:

1.   Apache web server (http://www.apache.org) versión 2.0.x o la más reciente.

En Debian o Ubuntu GNU/Linux, puedes instalar el metapaquete apache2, el cual instalará todos los paquetes del servidor web que necesitas..

$ sudo apt-get install apache2

2.  Sistema de administración de base de datos MySQL (http://www.mysql.com) versión 5.0 o la más reciente.

Se requieren dos componentes de MySQL para Newscoop:

·         el servidor

·         los programas del cliente

Estos componentes usualmente vienen en paquetes separados, debido a que es posible que prefieras correr el servidor de MySQL en una máquina diferente a la del cliente MySQL, el cual deberá ser instalado en la misma máquina donde se encuentra instalado Newscoop. En Debian/Ubuntu, al instalar el metapaquete mysql-server se instalará la versión más reciente de ambos paquetes, del  servidor y del cliente.

$ sudo apt-get install mysql-server

Durante la instalación de MySQL te solicitarán establecer una contraseña root para el servidor de MySQL, lo cuál es una medida de seguridad importante. Anota la contraseña y mantenla en un lugar seguro, la necesitarás pronto.

Toma en cuenta que el usuario root de MySQL es diferente del usuario root del sistema.  Ambos deben tener contraseñas diferentes .

3.     Lenguaje de programación PHP (http://www.php.net) versión 5.0 o la versión más reciente.

Los siguientes módulos de PHP deben instalarse:

  • php5-cli – Módulo de interfaz de línea de comando
  • php5-mysql – Funciones para acceder a la base de datos del servidor MySQL
  • php5-gd – Provee un módulo para manipular las gráficas de los scripts PHP
$ sudo apt-get install php5-cli php5-mysql php5-gd

Estos módulos tienen los mismos nombres en los paquetes equivalentes de Debian/Ubuntu. También necesitarás el módulo PHP para el servidor web Apache, un paquete que se conoce con el nombre de libapache2-mod-php5 en Debian/Ubuntu. Este paquete deberá ser instalado automáticamente como una dependencia cuando instales los paquetes PHP antes mencionados.

4. ImageMagick (http://www.imagemagick.org).

Se necesita para crear las miniaturas de las imágenes. Disponible en el paquete imagemagick de Debian/Ubuntu.

$ sudo apt-get install imagemagick

Todas estas dependencias de Newscoop están disponibles como paquetes estándar en la mayoría de las distribuciones GNU/Linux.

Tendría que ser fácil encontrarlas utilizando el administrador de paquetes y programas de tu distribución, aunque los nombres exactos de los paquetes puedan variar de los ejemplos descritos arriba para Debian/Ubuntu.

Configuración del nombre de usuario y contraseña de la base de datos


La instalación existente de Newscoop debería tener el nombre de la base de datos ya configurada en el servidor MySQL, con acceso protegido por un nombre de usuario y una contraseña. Para una instalación nueva de Newscoop, necesitarás decirle al instalador  que cree una base de datos para almacenar tus contenidos en ella. Esto significa que antes necesitarás un nombre de usuario de MySQL con privilegios para poder crear la base de datos. Si aún no tienes una cuenta, puedes configurar un nombre de usuario y contraseña en la base de datos para el instalador de Newscoop siguiendo los siguientes pasos: 

1. Conectate al sistema de administración de la base de datos usando tu cuenta root con la contraseña que estableciste durante la instalación de MySQL.

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.41-3ubuntu12.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2. El prompt cambiará a mysql>prompt, lo cuál requiere un punto y coma al final de cada comando. Crea una cuenta de usuario para conectar Newscoop con la base de datos, limitado a conectarse desde el localhost en caso de que Newscoop y MySQL estén instalados en el mismo servidor. De lo contrario, especifica el servidor desde el que Newscoop se estará conectando hacia  MySQL. Anota en un lugar seguro el nombre de usuario (newscoop_user en el ejemplo de abajo) y contraseña (newscoop_user_password según el ejemplo) de la cuenta  que creaste.  Necesitarás estos datos durante la instalación de Newscoop.

mysql> CREATE USER 'newscoop_user'@'localhost'
    -> IDENTIFIED BY 'newscoop_user_password';
Query OK, 0 rows affected (0.04 sec)

3. Asigna privilegios de acceso al usuario que acabas de crear. En este ejemplo, newscoop.*, significa todas las tablas llamadas newscoop, que aún no han sido creadas. Deberás proveer el nombre de esta base de datos al instalador de Newscoop, para poder crear la base de datos después.

mysql> GRANT ALL ON newscoop.*
    -> TO 'newscoop_user'@'localhost';
Query OK, 0 rows affected (0.00 sec) 

4. Sal del sistema de administración de la base de datos y regresa a tu sesión de promt en la terminal.

mysql> quit;
Bye
$

Módulos PHP 

En Debian o Ubuntu, los módulos PHP que tienes que instalar deberán configurarse automáticamente, con una entrada para cada módulo añadida al directorio  /etc/php5/apache2/conf.d/. También puedes crear tus propias opciones de personalización PHP utilizando archivos en ese directorio, el cual no deberá ser sobrescrito cuando se actualice el archivo principal php.ini.

En otras distribuciones de GNU/Linux, deberás añadir una línea para cada módulo al archivo php.ini, tal como /etc/php5/apache2/php.ini o similar.  Se deben habilitar las siguientes extensiones. Si la línea esta ya presente pero inicia con un comentario de punto y coma ';' necesitarás remover este caracter para que funcione la extensión correspondiente.
extension=gd.so
extension=mysqli.so
extension=mysql.so

Configuración PHP 

En cualquier distribución GNU/Linux, el archivo php.ini contiene algunas configuraciones predeterminadas que deberán confirmarse o ajustarse para permitir un óptimo funcionamiento y seguridad de Newscoop. Puedes hacer esto abriendo el archivo en tu editor de texto:

$ sudo nano /etc/php5/apache2/php.ini

Recomendamos realizar las siguientes configuraciones:

1. Desactiva register_globals porque es un potencial hueco de seguridad:

register_globals = Off

2. Establece la cantidad de memoria disponible en al menos 128MB:

memory_limit = 128M

3. Desactiva las magic quotes:

magic_quotes_gpc = Off

4. Permite la carga de archivos HTTP:

file_uploads = On

Los valores de la anterior configuración vienen por defecto en Debian o Ubuntu.  Puede que desees ajustar las dos siguientes configuraciones, que afectan el tamaño máximo de los archivos multimedia que suban los usuarios de Newscoop.

5. El tamaño máximo de los datos POST que PHP acepta son por defecto 8MB en Debian/Ubuntu. Puede que desees que esto sea mayor, por ejemplo:

post_max_size = 100M

6. El tamaño máximo para subir archivos es por defecto 2MB en Debian/Ubuntu. Es muy probable que esto sea insuficiente para archivos multimedia adjuntos muy pesados, así que tal vez quieras modificar este valor a uno más alto. Sin embargo, no deberá ser mayor al tamaño máximo asignado a POST establecido arriba, de otra manera puede que falle la carga de archivos grandes.

upload_max_filesize = 100M

7. Posiblemente también desees desactivar la sesión automática de recolección de basura, la cual puede causar errores de permisos que se mostrarán en el navegador si tu servidor corre con Debian o Ubuntu. Estas distribuciones de GNU/Linux utilizan un comando tipo cron /etc/cron.d/php5 que programa la recolección de basura.

session.gc_probability = 0

Configuración Apache 

La configuración del servidor web Apache necesitará ser ajustada para establecer la ruta de acceso a los archivos y plantillas de Newscoop. En Debian o Ubuntu, los archivos de configuración de Apache se encuentran usualmente en el directorio /etc/apache2/sites-available/.

1.    Crea un archivo como newscoop que contenga la definición de un servidor virtual.

$ sudo nano /etc/apache2/sites-available/newscoop

Para una publicación con el dominio www.example.com, podrías usar una definición de servidor virtual como la siguiente:

<VirtualHost *:80>
      DocumentRoot /var/www/newscoop
      ServerName example.com
      ServerAlias www.example.com
      DirectoryIndex index.php index.html
      <Directory /var/www/newscoop>
              Options -Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
      </Directory>
</VirtualHost>  

Si el ServerName o ServerAlias que estás utilizando aún no está configurado en el DNS para la dirección IP de esta máquina en particular, puedes crear un alojamiento temporal en el archivo /etc/host/ lo cual te permitirá probar la instalación localmente.

2. Deshabilita la configuración predeterminada de Apache si no la estas utilizando.

$ sudo a2dissite default
Site default disabled.
Run '/etc/init.d/apache2 reload' to activate new configuration!

3. Habilita la configuración de Newscoop que acabas de crear.

$ sudo a2ensite newscoop
Enabling site newscoop.
Run '/etc/init.d/apache2 reload' to activate new configuration!

4. Puede que también necesites habilitar el módulo reescribible de Apache. En Debian/Ubuntu, puedes hacer esto con el comando a2enmod:  

$ sudo a2enmod rewrite

El servidor debe responder:

Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!

5. Reinicia Apache como se indica en la salida del comando de arriba, de forma que la configuración y los nuevos módulos de Newscoop puedan cargarse:

$ sudo /etc/init.d/apache2 restart

El servidor debe responder:

* Restarting web server apache2                           [ OK ]

6. Extrae el tarball de Newscoop que descargaste en tu directorio de trabajo. Esta acción generará un directorio llamado 'newscoop'. 

$ tar -xvzf newscoop-3.5.0.tar.gz

7. Cambia al directorio 'newscoop' y examina los contenidos con el comando ls:

$ cd newscoop
$ ls

El resultado de este comando deberá ser similar a:

ChangeLog  COPYING  CREDITS  documentation  INSTALL  README  src  UPGRADE

8. Copia los contenidos del directorio src en el directorio DocumentRoot del servidor virtual Apache que configuraste, tal como /var/www/newscoop/

$ sudo cp -r newscoop/* /var/www/newscoop/

9. Cambia asigna la propiedad del directorio DocumentRoot al usuario del servidor web, por ejemplo www-data en Debian o Ubuntu.

$ sudo chown -R www-data /var/www/newscoop/

10. Abre un navegador con el URL del ServerName o ServerAlias  Apache que configuraste antes. Si ves la página de instalación de Newscoop significa que estas listo para proseguir con los pasos de instalación. 

Instalación de XCache

Este paso es opcional, pero es altamente recomendable para el desempeño óptimo de Newscoop. En Ubuntu puedes instalar XCache con el siguiente comando:    

$ sudo apt-get install php5-xcache

Si deseas ajustar la configuración de XCache de acuerdo a tus necesidades:

$ sudo nano /etc/php5/conf.d/xcache.ini

En un servidor con Debian o Ubuntu con dos procesadores, un ejemplo de ajustes a la configuración predeterminada sería así:

; Configure this to use admin pages
xcache.admin.user = "my_admin_name"

; xcache.admin.pass = md5($your_password)
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"

; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size  =                32M

; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 2

; for *nix, xcache.mmap_path is a file path, not directory.
xcache.mmap_path =    "/var/cache/xcache"

El valor de xcache.admin.pass mostrado arriba es solo un ejemplo. Debes generar tu propia contraseña cifrada md5 usando un comando de línea tal como: 

$ echo -n "password"|md5sum

Puedes configurar tu VirtualHost Apache para permitir acceso  administrador a las estadísticas Xcache desde el localhost, o una dirección IP específica que determines. Añade una sección como la siguiente para la definición del VirtualHost que creaste con anterioridad: 

# php xcache stats
Alias /xcache/ /usr/share/xcache/admin/
<Directory "/usr/share/xcache/admin/">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from localhost
</Directory>