Roundcube sobre nginx instalación

SERVIDOR WEB

Con anterioridad se debe tener instalado un servidor para Base de Datos con Postgresql, para nuestro ejemplo se encuentra instalado en la dirección IP: 172.22.9.49 y el súper usuario es: “roundcube1” con el password: “clave y el nombre de la base de datos es: “roundcube””, ver Instalar un servidor de base de datos

  1. Se instala el servicio nginx y los interpretes de php:

#> apt-get install nginx

#> apt-get install php5-common php5-dev php5-imap php5-ldap php5-pgsql php5-cgi php5-cli

#> apt-get install php5-curl php5-xmlrpc php5-memcache php5-pspell libgv-php5 zip unzip

#> apt-get install memcached python-software-properties php-date php5-gd php-apc php5-mcrypt

  1. Descarga de software de la aplicación:

#> wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.3/roundcubemail-1.1.3-complete.tar.gz/download?use_mirror=ufpr

  1. Mover el archivo, descomprimir y renombrar la carpeta

#> mv ./roundcubemail-1.1.3-complete.tar.gz /srv/

#> cd /srv/

#> tar zxvf roundcubemail-1.1.3-complete.tar.gz

#> mv roundcubemail-1.1.3-complete roundcube

  1. Editar el archivo de configuración de Roundcube y

    #> vim /srv/roundcube/config/config.inc.php

  2. modificar las lineas de configuración siguientes (en algunos casos se debe descomentar la linea es decir eliminar el simbolo de numeral (#) y colocar en el parámetro lo que corresponda en nuestro caso:

  • Datos de conexión a la base de datos:  $config[‘db_dsnw’] = ‘pgsql://usuariodebd:contraseñadelusuario@di.re.ccion.ip/nombredelabasededatos’

$config[‘db_dsnw’] = ‘pgsql://roundcube1:clave@172.22.9.49/roundcube’;

  • Datos de conexión de IMAP:

$config[‘default_host’] = ‘pruebas.mayaguaray.cenditel.gob.ve’;

  • Datos de conexión de SMTP:

$config[‘smtp_server’] = ‘pruebas-mail.mayaguaray.cenditel.gob.ve’;

  1. Activar URL de presentación:

$config[‘support_url’] = “http://correosur.cenditel.gob.ve/presenta.php“;

  1. Cambiar el nombre del sistema:

$config[‘product_name’] = ‘Correo Sur’;

  1. Activar los plugins necesarios:

$config[‘plugins’] = array(‘melanie2_larry’,’rcs_skins’,’chbox’,’jqueryui’,’firma_adjuntos’,’new_user_identity’,’new_user_dialog’,’password’,’login_info’);

  1. Configurar el servidor web nginx, modificando el archivo default

#> vim /etc/nginx/sites-available/default

server {

listen 80 default_server;

listen [::]:80 default_server;

# SSL configuration

#

# listen 443 ssl default_server;

# listen [::]:443 ssl default_server;

#

# Self signed certs generated by the ssl-cert package

# Don’t use them in a production server!

#

# include snippets/snakeoil.conf;

root /var/www/html;

# Add index.php to the list if you are using PHP

index index.html index.htm index.nginx-debian.html;

server_name _;

location / {

# First attempt to serve request as file, then

# as directory, then fall back to displaying a 404.

try_files $uri $uri/ =404;

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

# include snippets/fastcgi-php.conf;

#

# # With php5-cgi alone:

# fastcgi_pass 127.0.0.1:9000;

# # With php5-fpm:

# fastcgi_pass unix:/var/run/php5-fpm.sock;

#}

# deny access to .htaccess files, if Apache’s document root

# concurs with nginx’s one

#

#location ~ /\.ht {

# deny all;

#}

}

  1. Crear un nuevo archivo de configuración:

#>vim /etc/nginx/sites-available/rounducbe

  1. Debe quedar de la siguiente manera:

server {

listen 80;

server_name correo-sur.cenditel.gob.ve;

return 301 https://correo-sur.cenditel.gob.ve$request_uri;

}

server {

listen 443 ssl; # listen 80 is modified to listen 443 ssl;

server_name correo-sur.cenditel.gob.ve;

root /srv/roundcube;

index index.php index.html index.htm;

access_log /var/log/nginx/roundcube_access.log;

error_log /var/log/nginx/roundcube_error.log;

location / {

try_files $uri $uri/ /index.php?q=$uri&$args;

}

# location /pruebas {

# root /usr/share/nginx/html;

# index index.html index.htm;

# }

location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {

deny all;

}

location ~ ^/(config|temp|logs)/ {

deny all;

}

location ~ /\. {

deny all;

access_log off;

log_not_found off;

}

# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock

location ~ \.php$ {

try_files $uri =404;

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

ssl_certificate /etc/ssl/keys/ca.crt;

ssl_certificate_key /etc/ssl/keys/ca.key;

ssl_prefer_server_ciphers On;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

ssl_session_cache shared:SSL:20m;

ssl_session_timeout 10m;

add_header Strict-Transport-Security “max-age=31536000”;

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

  1. Almacenar los cambios y dejar la edición, para crear los enlaces dinámicos:

#> cd /etc/nginx/sites-enabled

#> ln -s ../sites-available/default

#> ln -s ../sites-available/roundcube

  1. Reiniciar el servicio y comprobar la configuración:

#> nginx -t

#> systemctl restart nginx