(Je me fait un petit mémo parce que ça fait 15.000 fois que je le fait et je suis obligé de cherché des petits trucs à chaque fois)
• On installe Debian Stable (v8 actuellement)
• On installe LAMP (même s'il est surement intégré au package Owncloud qu'on va installer plus tard...)
apt install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql
• On installe OwnCloud (https://download.owncloud.org/download/repositories/stable/owncloud/)
wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
apt update
apt install owncloud
--à ce stade, on se rend sur http://<IP_SERVEUR>/owncloud/ et ça doit fonctionner, mais ne pas configurer OwnCloud tout de suite--
• On créer une base MySQL pour anticipé une installation assez lourde (multi-user, nombreux fichiers, etc etc - MySQL ou MariaDB sont conseillés par OwnCloud)
• on se connecte avec un compte qu'a les droits root, donc le compte root me semble pas mal
mysql -uroot -p
• on créer la base de donnée en donnant tout les droits à l'utilisateur
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
quit
• on redémarre le service mysql
/etc/init.d/mysql restart
--là, on peut retourner sur http://<IP_SERVEUR>/owncloud/ et configurer la base de donnée--
Après on pousse un peu le truc en installant Let's Encrypt :
(normalement ssl est déjà tout opérationnel mais au cas où :
• On regarde si ssl est installé :
dpkg -l | grep ssl
Chaque paquet doit apparaitre avec les deux lettres ii en suffixe si c’est déjà le cas. Il sont normalement sensés déjà être installés.
• Dans le cas contraire, installer openSSL :
sudo apt-get install openssl
Dans un premier temps il est nécessaire que le serveur apache écoute sur le port 443. Pour cela il suffit d’éditer le ficher /etc/apache2/ports.conf et vérifier que la ligne Listen 443 y soit présente.
• La meilleur manière de l’intégrer est de l’écrire de la sorte :
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Ainsi, lors de la désactivation (volontaire ou non) du module SSL d’Apache, la configuration restera correcte et ne plantera pas le serveur.
• On installe Git pour la suite :
apt install git
• On installe Let's Encrypt :
git clone https://github.com/letsencrypt/letsencrypt
cd /home/debian-serveur/letsencrypt
./letsencrypt-auto
le "./letsencrypt/auto" configure tout ce qu'il faut, ça demande le nom de domaine et une adresse mail et c'est tout, on se rend sur son site en https et ça marche ! Si ça c'est pas magnifique ! Merci Let's Encrypt !
• Pour renouveler :
/etc/init.d/apache2 stop
./letsencrypt-auto certonly -a standalone -d leeloo.me -d www.leeloo.me
/etc/init.d/apache2 start
On est des dingue, on va optimiser un peu OwnCloud :
• Activation du cache local (seulement si vous avez une alerte dans la page administration d'Owncloud)
• On installe un module de cache pour PHP :
apt install php-apc
• On redémarre le serveur Web :
/etc/init.d/apache2 restart
• On édite le fichier de conf :
nano /var/www/owncloud/config/config.php
• On ajoute cette ligne :
'memcache.local' => '\OC\Memcache\APC',
• On enregistre, et c'est cool !
• Activation de "HTTP Strict Transport Security"
• On installe le mod headers pour Apache :
a2enmod headers
• On redémarre Apache
/etc/init.d/apache2 restart
• On édite le fichier virtualhost de notre conf apache :
nano /etc/apache2/sites-available/000-default-le-ssl.conf
• On rajoute ça à la fin :
<VirtualHost *:443>
ServerName remplacerparsonnomdedomaine.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
</VirtualHost>
• Activation de la tâche cron (parce que c'est mieux)
• On édite le fichier des tâches cron :
crontab -u www-data -e
• On ajoute cette ligne :
/15 * php -f /var/www/owncloud/cron.php
• Et on active la tâche cron dans l'administration OwnCloud
• On modifie la limite MAX de la taille des fichiers pouvant être uploadés :
• On édite le fichier de conf OwnCloud qui va bien :
nano /var/www/owncloud/.htaccess
• On modifie les valeurs suivantes à notre convenance :
php_value upload_max_filesize
php_value post_max_size
• On enregistre, et voila !
FIN
Et voila le travail : https://leeloo.me/owncloud/
sources :
oros
louiz
alda
LapinMasqué
https://technique.arscenic.org/lamp-linux-apache-mysql-php/apache-le-serveur-http/modules-complementaires/article/installer-et-configurer-le-module-ssl-pour-apache2
https://community.letsencrypt.org/t/quick-start-guide/1631
https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/caching_configuration.html
https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/harden_server.html
https://doc.owncloud.org/server/8.2/admin_manual/configuration_database/linux_database_configuration.html
https://doc.owncloud.org/server/8.2/admin_manual/configuration_server/background_jobs_configuration.html