Newscoop 4 para periodistas y editores

Instalación manual

El siguiente método de instalación manual es el más recomendable para los administradores de sistema avanzados, y asume que tienes derechos de raíz o sudo en el servidor de destino. Si los paquetes preparados de Newscoop no están disponibles para la distribución GNU/Linux de tu elección, puedes instalar el software manualmente con el tarball descargable en Sourcefabric:

http://newscoop.sourcefabric.org/

Dependencias

Antes de iniciar una instalación manual, debes verificar que los paquetes de dependencias que Newscoop necesita estén ya instalados y funcionen correctamente. Estas dependencias son:

1. Servidor web Apache (http://www.apache.org) versión 2.0.x o posterior.

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

sudo apt-get install apache2

En Red Hat Enterprise, puedes instalar Apache usando el paquete httpd y configurándolo para que inicie con estos comandos (como raíz):

yum install httpd
chkconfig --levels 235 httpd on
service httpd start

2. Sistema de manejo para base de datos MySQL (http://www.mysql.com) versión 5.0 o posterior. Lee el capítulo newer. See the chapter Instalación de MySQL para conocer más.

3. Lenguaje de codificación PHP (http://www.php.net) versión 5.3 o posterior.

Los siguientes módulos de PHP deben instalarse:

  • php5-cli - módulo de la interfaz de línea de comandos
  • php5-mysql - funciones para accesar el servidor de base de datos MySQL
  • php5-gd - provee un módulo para manejar gráficas de códigos PHP

Estos módulos tienen los mismos nombres en los paquetes equivalentes Debian/Ubuntu que puedes instalar con el comando:

sudo apt-get install php5-cli php5-mysql php5-gd

En Red Hat Enterprise, puedes instalar estos paquetes con:

yum install php php-gd php-mysql

El paquete php-cli se instala automáticamente como dependencia del paquete php en Red Hat Enterprise. También necesitarás el módulo PHP para el servidor web Apache, el cual tiene el nombre de paquete libapache2-mod-php5 en Debian/Ubuntu. Este paquete debe instalarse automáticamente como dependencia al instalar los paquetes PHP antes mencionados.

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

Se necesita para crear viñetas de las imágenes. Está disponible en el paquete Debian/Ubuntu llamado imagemagick:

sudo apt-get install imagemagick

y en Red Hat Enterprise se consigue con:

yum install ImageMagick

Todas estas dependencias de Newscoop están disponibles como paquetes estándar en la mayoría de distribuciones GNU/Linux. Deberías poder encontrarlas con tu administrador de distribución de paquetes para software, pero los nombres de los paquetes pueden variar de los ejemplos antes mencionados para Debian/Ubuntu y Red Hat Enterprise.

Configurar la cuenta de usuario y la contraseña para la base de datos

Una instalación existente de Newscoop debe tener una base de datos nombrada y configurada en el servidor MySQL, con acceso protegido por una cuenta de usuario y una contraseña. Para una nueva instalación de Newscoop, necesitarás pedirle al instalador que cree una base de datos para almacenar tus contenidos. Lee el capítulo Instalación de MySQL para conocer más detalles.

Módulos PHP

En Debian o Ubuntu, los módulos PHP que has instalado deben configurarse automáticamente, con una entrada a cada módulo agregada al directorio /etc/php5/apache2/conf.d/. También puedes crear tu propias opciones personalizadas de PHP con los archivos de ese directorio, el cual no debe sobreescribirse sobre el archivo principal php.ini cuando se actualice. Red Hat Enterprise también configura estos módulos automáticamente.

En otras distribuciones de GNU/Linux, puede que necesites agregar una línea a cada módulo del archivo php.ini, como /etc/php5/apache2/php.ini o una similar. Las siguientes extensiones deben habilitarse. Si una línea ya está presente pero inicia con un punto y coma, deberás eliminar este caracter para que la extensión funcione.

extension=gd.so
extension=mysqli.so
extension=mysql.so

Configuración PHP

En cualquier distribución GNU/Linux, el archivo php.ini contiene las configuraciones predeterminadas que deberás ajustarse o revisarse para habilitar el mejor y más seguro funcionamiento de Newscoop. Puedes hacerlo al abrir el archivo en el editor de textos, como nano:

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

Es un archivo largo, así que usa la herramienta de búsqueda en nano (Ctrl+W) para hallar las líneas que necesitas. Las configuraciones recomendadas son las siguientes:

1. Apaga register_globals porque es un alto riesgo de seguridad:

register_globals = Off

2. Fija la cantidad de memoria disponible en 128MB:

memory_limit = 128M

3. Apaga las anotaciones magic:

magic_quotes_gpc = Off

4. Permite la carga de archivos HTTP:

file_uploads = On

Loa valores antes mencionados los las configuraciones predeterminadas en Debian o Ubuntu. Puede que desees ajustar las siguientes dos configuraciones, las cuales afectan el tamaño máximo de archivos que los usuarios de Newscoop pueden cargar.

5. El tamaño máximo de datos POST que PHP aceptará llega a 8MB en Debian/Ubuntu. Puede que necesites aumentar este número, pur ejemplo:

post_max_size = 100M

6. El tamaño máximo para archivos cargados llega a 2MB en Debian/Ubuntu. Puede que sea muy poco para los archivos multimedia. Sin embargo, no debe exceder el tamaño máximo POST que fijaste anteriormente, pues las cargas superiores fracasarán.

upload_max_filesize = 100M

7. También necesitarás deshabilitar la recolección automática de basura de sesión, la cual puede mostrar problemas de permisos en el navegador si el servidor funciona con Debian o Ubuntu. Estas distribuciones GNU/Linux, en cambio, usan un cron job /etc/cron.d/php5 para realizar la recolección de basura   

session.gc_probability = 0

Configuración Apache

La configuración del servidor web Apache necesita ajustarse para fijar el destino a las plantillas y archivos de Newscoop. En Debian o Ubuntu, los archivos de configuración Apache suelen hallarse en el directorio /etc/apache2/sites-available/.

1. Crea un archivo como newscoop que contenga la definición del alojamiento virtual.

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

Para una publicación con el nombre de dominio www.ejemplo.com, puedes usar la definición de alojamiento siguiente:

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

Asegúrate de que el directorio DocumentRoot en que fijaste el alojamiento virtual sí exista. De lo contrario, Apache mostrará un aviso cuando inicie.

$ sudo mkdir -p /var/www/newscoop

Si el ServerName o ServerAlias no está configurado en DNS para la dirección de IP de esta máquina, podrás crear el nombre de alojamiento temporal en el archivo /etc/hosts/ que te permitirá probar la instalación localmente.

2. Deshabilita la configuración Apache predeterminada, si no la estás usando.

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 habiliat los módulos de sobreescritura y php5 de Apache. En Debian/Ubuntu, puedes lograrlo con el comando a2enmod:
sudo a2enmod rewrite php5

El servidor debe responder:

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

5. Reinicia Apache como sugiere el comando anterior, así se cargará la nueva configuración de Newscoop junto con los nuevos módulos:

sudo /etc/init.d/apache2 restart

El servidor debe responder:

* Restarting web server apache2                           [ OK ]

Instalar Newscoop 

1. Extrae el tarball de Newscoop que descargaste de tu disrectorio de trabajo. Esta acción generará el directorio llamado newscoop. (Una versión beta puede tener un sufijo en el directorio extraído, como -BETA4).

tar -xvzf newscoop-4.0.0.tar.gz

2. Examina los contenidos del directorio newscoop con el comando ls.

ls newscoop

Deberá aparecer un mensaje como el siguiente:

admin-files         cache           extensions   install      README.txt
admin.php        ChangeLog.txt   favicon.ico  INSTALL.txt  robots.txt
admin-style      classes         files        js           scripts
application      conf            get_img.php  library      template_engine
application.php  COPYING.txt     htaccess     log          themes
attachment.php   CREDITS.txt     images       pdf          upgrade.php
backup           db_connect.php  include      plugins      UPGRADE.txt
bin              docs            index.php    public       videos

3. Copia los contenidos del directorio newscoop en el directorio DocumentRoot del Apache VirtualHost que configuraste, como /var/www/newscoop/

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

Si deseas instalar Newscoop en un subdirectorio del DocumentRoot, como/var/www/newscoop/subdirectory/, tu sitio de Newscoop quedará visible en el URL http://www.example.com/subdirectory/ URL. Este método es útil para agregar Newscoop a un sitio existente sin cambiar los contenidos del directorio DocumentRoot, el cual puede tener páginas estáticas o contenido archivado.

4. Cambia la propiedad del directorio DocumentRoot al nombre del usuario del servidor web, como www-data en Debian o Ubuntu.

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

5. Abre el navegador web en el URL del Apache ServerNameServerAlias que configuraste antes. Si ves la página del instalador de Newscoop, puedes proceder al capítulo Pasos para instalar.

Alojamiento compartido sin acceso raíz

Algunos servidores de alojamiento compartido proveen herramientas de administración como cPanel o vDeck en lugar del acceso raíz en un shell. Generalmente, es posible instalar Newscoop en este tipo de servidor si creas una base de datos MySQL y una configuración Apache antes de copiar los archivos de Newscoop al directorio raíz del servidor web por medio de FTP o SFTP. Así, tendrás acceso al instalador de Newscoop en el nombre de dominio configurado en la página Apache del panel de control.

Si no puedes accesar la página del instalador de Newscoop después de copiar los archivos al servidor vDeck server, y ves el mensaje de error 403 Forbidden, puede que necesites ajustar el archivo .htaccess del servidor. Abre el editor .htaccess en el panel de control vDeck y fija una instrucción en una página predeterminada para apuntar al archivo index.php en el directorio web raíz de tu configuración Apache. Luego refresca el navegador en el nombre de dominio que creaste.

Instalar XCache

Este paso es opcional, pero altamente recomendable para obtener el mejor desempeño de Newscoop. En Ubuntu, puedes instalar XCache (http://xcache.lighttpd.net/) con este comando:

sudo apt-get install php5-xcache

Puede que desees ajustar la configuración XCache según tus requisitos específicos:

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

En un servidor Debian o Ubuntu con dos procesadores, los ajustes de ejemplo para la configuración predeterminada pueden ser 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 que aparece arriba es solo un ejemplo. Puedes generar tu propia contraseña md5 con un comando como:

echo -n "password"|md5sum

Puedes configurar tu Apache VirtualHost para que permita el acceso administrador a la página de estadísticas XCache en el alojamiento local, o una dirección de IP específica. Agrega una estanza como la siguiente a la definición de VirtualHost que creaste, antes de cerrar la etiqueta </VirtualHost>:

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

Vuelve a cargar la configuración Apache:

sudo /etc/init.d/apache2 reload

La página de estadísticas xcache deberá quedar visible en el destino /xcache/de tu servidor web, como http://localhost/xcache/ si has habilitado el acceso solamente en el alojamiento local.