Image

En esta guía, configuramos la aplicación Redmine en un servidor VPS que ejecuta el sistema operativo Centos 7. La tarea es obtener un servidor listo con una aplicación que funcione y configuraciones claras si es necesario. Necesitaremos instalar la base de datos, paquetes adicionales, Ruby y configurar el servidor web Nginx. En esta guía, estamos instalando como root, si tiene uno normal, use el comando sudo.

La configuración del servidor preconfigurado está disponible en el formulario de pedido.
Versión 4.2.8

1. Instalación de la base de datos MariaDB

yum update
yum install epel-release
vi /etc/yum.repos.d/MariaDB.repo

Copie la configuración a continuación:

# MariaDB 10.9 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Instalamos el servicio:

yum install MariaDB-client MariaDB-server
systemctl enable mariadb.service
systemctl restart mariadb.service

Crear una nueva base de datos y usuario

mysql
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'You_pasw0Rd-967';
mysql> EXIT;

2. Instalación de paquetes necesarios

yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
yum install readline-devel sqlite-devel zlib-devel openssl-devel readline glibc-headers glibc-devel
yum install mariadb-devel zlib libyaml-devel bzip2 ImageMagick ImageMagick-devel
yum install yum-utils pygpgme
yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
yum install nginx passenger passenger-devel nginx-mod-http-passenger

Agreguemos un usuario:

useradd -m -U -r -d /opt/redmine redmine
usermod -a -G redmine nginx
chmod 750 /opt/redmine

3. Instalación redmine

su - redmine
$gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$curl -sSL https://get.rvm.io | bash -s stable
$source /opt/redmine/.rvm/scripts/rvm
$rvm install 2.7
$rvm --default use 2.7
$wget http://www.redmine.org/releases/redmine-4.2.8.tar.gz
$tar -xvf redmine-4.2.8.tar.gz
$cp /opt/redmine/redmine-4.2.8/config/database.yml.example /opt/redmine/redmine-4.2.8/config/database.yml

Editemos el archivo según el usuario creado en la base de datos:

$vi /opt/redmine/redmine-4.2.8/config/database.yml

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "You_pasw0Rd-967"
encoding: utf8

Guarde el archivo e instale los paquetes necesarios:

$cd ~/redmine-4.2.8
$gem install bundler
$bundle install --without development test postgresql sqlite
$bundle exec rake generate_secret_token
$RAILS_ENV=production bundle exec rake db:migrate
$exit

5. Configuración de Nginx 

Abra el archivo y pegue la configuración allí:

#vi /etc/nginx/conf.d/example.com.conf

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

server {
listen 80;
server_name example.com www.example.com;
root /opt/redmine/redmine-4.2.8/public;

# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}

Guarde el archivo y comente las líneas duplicadas en el archivo del módulo nginx predeterminado:

vi /etc/nginx/conf.d/passenger.conf

#passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
#passenger_ruby /usr/bin/ruby;
#passenger_instance_registry_dir /var/run/passenger-instreg;

Verifique la configuración con el comando 

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

systemctl restart nginx
systemctl enable nginx

Listo, a continuación le damos la configuración de nginx para trabajar con un certificado SSL, si está disponible, utilícelo y especifique su dominio en el archivo. En nuestro caso, usamos la dirección IP. 

5.1 Configurar Nginx con un certificado SSL 

/etc/nginx/conf.d/example.com.conf

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

# Redirect HTTP -> HTTPS

server {
listen 80;
server_name www.example.com example.com;

include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;

}

# Redirect WWW -> NON WWW

server {
listen 443 ssl http2;
server_name www.example.com;

ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;

}

server {

listen 443 ssl http2;
server_name example.com;
root /opt/redmine/redmine-4.2.8/public;

# SSL parameters

ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_trusted_certificate /etc/ssl/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;

# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;

passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;

}

Reinicie el servicio para aplicar la configuración:

systemctl restart nginx

La instalación de Redmine se completó con éxito.




Sin comentarios aún