Dans ce guide, nous configurons l'application Redmine sur un serveur VPS exécutant le système d'exploitation Centos 7. La tâche consiste à obtenir un serveur prêt à l'emploi avec une application fonctionnelle et à effacer les paramètres si nécessaire. Nous devrons installer la base de données, des packages supplémentaires, Ruby et configurer le serveur Web Nginx. Dans ce guide, nous installons en tant que root, si vous en avez un normal, utilisez la commande sudo.
La configuration serveur préconfigurée est disponible sur le bon de commande.
|
|
1. Installation de la base de données MariaDB
yum update
yum install epel-release
vi /etc/yum.repos.d/MariaDB.repo
Copiez la configuration ci-dessous :
# 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
Installons le service :
yum install MariaDB-client MariaDB-server
systemctl enable mariadb.service
systemctl restart mariadb.service
Créer une nouvelle base de données et un utilisateur
mysql
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'You_pasw0Rd-967';
mysql> EXIT;
2. Installation des packages requis
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
Ajoutons un utilisateur:
useradd -m -U -r -d /opt/redmine redmine
usermod -a -G redmine nginx
chmod 750 /opt/redmine
3. Installation de 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
Modifions le fichier en fonction de l'utilisateur créé dans la base de données:
$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
Enregistrez le fichier et installez les packages nécessaires:
$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. Configurer Nginx
Ouvrez le fichier et collez-y la configuration:
#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;
}
Enregistrez le fichier et commentez les lignes en double dans le fichier de module nginx par défaut:
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;
Vérifiez la configuration avec la commande
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
Terminé, ci-dessous, nous avons donné la configuration nginx pour travailler avec un certificat SSL, si disponible, utilisez-le et spécifiez votre domaine dans le fichier. Dans notre cas, nous avons utilisé l'adresse IP.
5.1 Configurer Nginx avec un certificat 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;
}
Redémarrez le service pour appliquer les paramètres:
systemctl restart nginx
L'installation de Redmine s'est terminée avec succès.