Installation de MRIOutils¶
apt install apache2 libapache2-mod-wsgi-py3 mariadb-server python3-venv unzip apt install libsasl2-dev libldap2-dev libssl-dev python3-dev gcc libmariadbclient-dev gettext mysql_secure_installation mkdir /opt/mri_outils echo 'TLS_REQCERT never' >> /etc/ldap/ldap.conf
Creer la bdd et l'utilsateur mariadb¶
mysql -u root -p CREATE DATABASE `mri_outils`; CREATE USER 'mri-outils-user' IDENTIFIED BY 'wY2tQOErEiuWojUIKg26'; GRANT ALL privileges ON `mri_outils`.* TO 'mri-outils-user'; exit
Install MRIOutils¶
Récuperer le zip sur le serveur, puis:
mkdir -p /opt/mri_outils/www unzip -d /opt/mri_outils/www MRIOutil-version.zip
Création du venv pour MRIOutils¶
cd /opt/mri_outils/ python3 -m venv venv_MRIOutils source venv_MRIOutils/bin/activate pip install wheel mysqlclient pip install -r www/requirements.txt deactivate
Générer une nouvelle clé secrète pour l'application:
source /opt/mri_outils/venv_MRIOutils/bin/activate cd /opt/mri_outils/www/ python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
Noter la "secret_key" généré
cd /opt/mri_outils/www/MRIOutils/ cp settings_local_example.py settings_local.py nano settings_local.py
Paramètres à éditer:
SECRET_KEY (Avec la clé généré précédemment)
DEBUG = False
ALLOWED_HOSTS
DATABASES
AUTH_LDAP_*
Fin install MRIOutils¶
source /opt/mri_outils/venv_MRIOutils/bin/activate cd /opt/mri_outils/www/ ./manage.py migrate ./manage.py collectstatic -c --noinput ./manage.py sync_db_from_LDAP ./manage.py compilemessages deactivate
Config apache¶
a2enmod ssl a2ensite default-ssl a2dissite default nano /etc/apache2/sites-available/outils.conf # Voir ci dessous pour exemple du fichier a2ensite outils.conf service apache2 reload
Exemple de fichier host apache:
<VirtualHost *:80> ServerName outils.test.mri.int Redirect permanent "/" "https://outils.test.mri.int/" </VirtualHost> <VirtualHost *:443> ServerName outils.test.mri.int DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key # Conf mode maintenance Alias "/maintenance.html" "/opt/mri_outils/maintenance/maintenance.html" RewriteEngine On RewriteCond /opt/mri_outils/maintenance/maintenance.html -f RewriteCond /opt/mri_outils/maintenance/maintenance.enable -f RewriteCond %{SCRIPT_FILENAME} !maintenance.html RewriteRule ^.*$ /maintenance.html [R=503,L] ErrorDocument 503 /maintenance.html <Directory /opt/mri_outils/maintenance > DirectoryIndex maintenance.html require all granted </Directory> # fin conf mode maintenance <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> Alias /static/ /opt/mri_outils/www/static/ <Directory /opt/mri_outils/www/static/> Require all granted </Directory> WSGIDaemonProcess outils.test.mri.int python-home=/opt/mri_outils/venv_MRIOutils python-path=/opt/mri_outils/www WSGIProcessGroup outils.test.mri.int WSGIScriptAlias / /opt/mri_outils/www/MRIOutils/wsgi.py <Directory /opt/mri_outils/www> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>