Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Chap 1. Prise en main du RPi et installation de Mate sur un Raspbian
Chap 2. Installation de OwnCloud sur un Raspberry Pi
Chap 3. Sécuriser votre RPi
Chap 4. Accès au serveur Web Owncloud à partir de son nom de domaine
Chap 5. Connection SSH
Chap 6. Les fichiers journaux
Chap 7. Let’s Encrypt (LE)
Chap 8. Ajout d’un disque dur externe et migration de données
Chap 9. Suppression et ajout d’une interface graphique
Chap 10. Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Chap 10. Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Ce chapitre n’a pour but que de vous faire un petit résumé des différentes étapes à partir de l’installation de Owncloud sur un Raspberry Pi, jusqu’à avoir un server fonctionnel.

Je vais aussi en profiter de cette partie pour tester la dernière version en date de Owcloud.

Pour rappel, nous avons besoin de:

  1. Matériel:

    – Raspberry Pi 2 B
    – Carte micro SD, Classe 10
    – Câble HDMI avec un moniteur (écran télé) qui supporte le HDMI
    – Câble Ethernet

  2. Firmware:

    – Owncloud 9.1.3
    – Raspbian 8.0

  3. Configuration:

    – Adresse IP Publique
    – Adresse IP Privée statique (LAN) pour le RPi
    – Nom de domaine (NetLibre, nsupdate)
    – Certificat LE (Lets encrypt)

Ne vous attendez donc pas à ce que je détaille les différentes étapes de l’installation, puisque çà a déjà été abordé dans les différents chapites associés. Je vous renvoie donc vers les différentes sections pour plus d’information.

Chap 1. Prise en main du RPi
—————————————–

$ df -h

$ sudo umount /dev/sdb1

$ sudo apt install dcfldd

$ sudo dcfldd if=20XX-YY-ZZ-raspbian-jessie-lite.img of=/dev/sdb bs=1M
$sync

$ sudo cat >  /etc/network/interfaces.d/eth0 << eof > auto eth0
>
> iface eth0 inet static
>     address 172.16.1.16
>      netmask 255.255.255.0
>      gateway 172.16.1.1
> eof

# ifdown eth0

# ifup eth0

# vi /etc/resolv.conf
# Generated by resolvconf
nameserver 8.8.8.8
nameserver 8.8.4.4

# chattr +i /etc/resolv.conf 


$ sudo apt update
$ sudo apt upgrade

$ sudo apt install vim

$ sudo raspi-config 

Un petit plus,

pi@raspberrypi:~ $ sudo hostname nouveau-nom
pi@nouveau-nom:~ $ sudo vim /etc/hosts
!--sortie tronquée--!
127.0.1.1	nouveau-nom

Faite une copie de sauvegarde du système installé sur la carte SD vers un autre support (disque dur local par exemple):

$ sudo umount /dev/sdb1
$ sudo umount /dev/sdb2

mon@ordi$ cd ~/Backup

$ sudo dcfldd if=/dev/sdb of=sd.img bs=4M

Chap 3. Sécuriser votre RPi
—————————————–

mon@ordi$ ssh pi@10.1.2.3

$ sudo adduser USERNAME
$ sudo adduser USERNAME sudo

$ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio
$ groups USERNAME
USERNAME : USERNAME sudo

$ sudo usermod -a -G adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio USERNAME

mon@ordi$ ssh USERNAME@10.1.2.3

sudo deluser --remove-home pi

Je n’ai pas réussi à supprimer l’utilisateur pi du premier coup, car la commande renvoie l’erreur que cet utilisateur a un process actif (bash). J’ai du redémarrer le RPi et relancer la même commande. Une autre alternative serait d’utiliser la commande ci-dessous:

$ sudo userdel -f pi

$ sudo passwd -dl root

$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
$ sudo service ssh restart

*Connection SSH côté client
—————————————

mon@ordi$ sudo apt-get install openssh-client
mon@ordi$ ssh-keygen -t rsa

N’ommetez pas la passphrase!!!

Les clés générées devraient se trouver dans le répertoire ~/.ssh:
– clé privée: id_rsa (vous devez ne jamais fournir cette clé à personne)
– clé publique: id_rsa.pub

mon@ordi$ ssh-copy-id -i ~/.ssh/id_rsa.pub USERNAME@10.1.2.3

*Connection SSH côté server
—————————————

USERNAME@raspberrypi$ sudo apt-get install openssh-server

Vérifier et modifier les permissions pour les fichiers et dossiers si nécessaire.

drwx------ .ssh
-rw------- .ssh/authorized_keys


$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no

$ sudo service ssh restart

*Parefeux
—————————————

$ sudo vim /etc/iptables.firewall.rules
*filter

# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

# Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allow RDP connections from anywhere (uncomment if rdp connection is needed)
# -A INPUT -p tcp --dport 3389 -j ACCEPT

# Allow SSH connections
# The -dport number should be the same port number you set in sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow ping
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT
$ sudo iptables-restore < /etc/iptables.firewall.rules
$ sudo iptables -L

sudo vim /etc/network/if-pre-up.d/firewall
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

$ sudo chmod +x /etc/network/if-pre-up.d/firewall

$ sudo apt install fail2ban

Chap 2. Installation de OwnCloud sur un Raspberry Pi
—————————————–

$ mkdir /home/USERNAME/www-dev
$ cd /home/USERNAME/www-dev


$ sudo wget http://download.owncloud.org/community/owncloud-9.1.3.tar.bz2
$ sudo wget http://download.owncloud.org/community/owncloud-9.1.3.tar.bz2.md5
$ md5sum -c owncloud-9.1.3.tar.bz2.md5 < owncloud-9.1.3.tar.bz2
owncloud-9.1.3.tar.bz2: OK

$ sudo tar -xvf owncloud-9.1.3.tar.bz2

$ sudo chown -R www-data:www-data /home/USERNAME/www-dev

*Apache
—————————————

$ sudo vim /etc/apache2/sites-available/owncloud.conf
Alias /owncloud "/home/USERNAME/www-dev/owncloud/"
<Directory /home/USERNAME/www-dev/owncloud/>
 Options +FollowSymlinks
 AllowOverride All

 <IfModule mod_dav.c>
 Dav off
 </IfModule>

 SetEnv HOME /home/USERNAME/www-dev/owncloud
 SetEnv HTTP_HOME /home/USERNAME/www-dev/owncloud

</Directory>


Lier symboliquement /etc/apache2/sites-enable/owncloud.conf à /etc/apache2/sites-avaibled/owncloud.conf:
$ sudo a2ensite owncloud.conf

Remplacer a2ensite par a2dissite pour supprimer le lien symbolique.

$ sudo a2enmod rewrite
$ sudo a2enmod headers

$ sudo service apache2 restart
$ sudo systemctl daemon-reload

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 reload

$ sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak
$ sudo vim /etc/php5/apache2/php.ini
upload_max_filesize = 2G
post_max_size = 2G

$ sudo service apache2 restart

 

*MySQL/MariaDB
—————————————

$ sudo mysql_secure_installation
Enter current pasword for root, #taper le mot de passe root de MariaDB, qui devrait être le même que celui lors de l'installation du service
Change root password, #taper “n” pour NON
Remove anonymous users, #taper “y” pour OUI
Disallow root login remotely, #taper “y” pour OUI
Remove test database and access to it, #taper “y” pour OUI
Reload privilege tables no, #taper “y” pour OUI

$ sudo mysql -u root -p
Enter password: #taper le mot de passe root de MariaDB

MariaDB [(none)]> CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS owncloudDB;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON owncloudDB.* TO 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> quit

 

Si vous rencontrez un message du type:

Error 403: Forbidden
You don’t have permission to access/owncloud/ on this server

Il suffit d’ajouter dans le fichier de configuration de apache2 les lignes ci-dessous. Pour rappel, ce n’est pas nécessaire de le faire avec la version 8 de Owncloud.

$ sudo vim /etc/apache2/apache2.conf

<Directory /home/USERNAME/www-dev/>
 Options Indexes FollowSymLinks
 AllowOverride All
 Require all granted
</Directory>

Chap 5. Connection en SSH
—————————————–

*SSH serveur
---------------------------------------

raspi$ sudo vim /etc/ssh/ssh_config
ClientAliveInterval 60
$ sudo service sshd restart

*SSH client
---------------------------------------

monOrdi$ vim ~/.ssh/config
Host *
ServerAliveInterval 60

Modification/mise-à-jour de la passephrase:

monOrdi$ cd ~/.ssh/

monOrdi:~/.ssh $ ls 
id_rsa id_rsa.pub 
monOrdi:~/.ssh $ ssh-keygen -f id_rsa -p

Chap 4. Accès au serveur Web Owncloud à partir
—————————————–

Je vous propose de revoir ce chapitre pour les détails du comment pointer votre adresse IP publique à votre nom de domaine.

$ sudo cp  /etc/apache2/apache2.conf  /etc/apache2/apache2.conf.bak
$ sudo vim /etc/apache2/apache2.conf

Ajouter les deux lignes a la fin de la page

ServerSignature Off
ServerTokens Prod

$ sudo service apache2 restart

$ sudo vim ~/www-dev/owncloud/config/config.php
'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => '10.1.2.3',
    2 => 'Mon.Adresse.IP.Publique',
    3 => '.netlib.re',
    4 => '.nsupdate.info',
  ),

$ sudo service apache2 restart

Voici le contenu de mon fichier /etc/apache2/site-enabled/owncloud.conf
=====================================================
Alias /owncloud "/home/USERNAME/www-dev/owncloud"

 <VirtualHost *:80>
 ServerName MaPage.netlib.re
 Redirect permanent / https://MaPage.netlib.re/
</VirtualHost>

<VirtualHost *:80>
 ServerName MaPage.nsupdate.info
 Redirect permanent / https://MaPage.nsupdate.info/
</VirtualHost>

# Web server configuration

<VirtualHost *:443>
 ServerName MaPage.netlib.re/
 ServerAlias MaPage.nsupdate.info/

 # SSL configuration
 #SSLEngine on

 # Restrict/deny/allow access to certain directories

 <Directory /home/USERNAME/www-dev/owncloud/>
 Options +FollowSymlinks
 AllowOverride All

 <IfModule mod_dav.c>
 Dav off
 </IfModule>

 SetEnv HOME /home/USERNAME/www-dev/owncloud
 SetEnv HTTP_HOME /home/USERNAME/www-dev/owncloud
 </Directory>

 <Directory "/home/USERNAME/www-dev/owncloud/data/">
 # just in case if .htaccess gets disabled
 Require all denied
 </Directory>

</VirtualHost>



# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite !--Sortie Tronquee--!
SSLHonorCipherOrder     on
SSLCompression          off

# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling          on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache        shmcb:/var/run/ocsp(128000) 

 

Ci-dessous, quelques commandes utile pour vérifier les erreurs de syntax dans /var/apache2/site-enabled/owncloud.conf

$ sudo apache2ctl configtest
$ sudo journalctl | tail


$ systemctl status apache2.service 

Pour régler les problèmes annoncés dans la page d'administration de Owncloud, il suffit d'installer php5-apcu

$ sudo apt install php5-apcu 

Puis d'ajouter la ligne ci-dessous dans ~/www-dev/USERNAME/owncloud/config/config.php

<?php
$CONFIG = array (
!--Sortie Tronquee--!
'memcache.local' => '\OC\Memcache\APCu',
);
$ sudo service apache2 restart


Chap 7. Let's Encrypt (LE)
-----------------------------------------

Le nouveau système pour l'installation de LE est beaucoup plus simple qu'auparavant.


$ mkdir ~/Letsencrypt
$ cd Letsencrypt/
~/Letsencrypt $ wget https://dl.eff.org/certbot-auto
~/Letsencrypt $ chmod a+x certbot-auto $ ./certbot-auto

Puis faites un test de verification du renouvellement automatique.

~/Letsencrypt $ certbot-auto renew --dry-run 

Créer ensuite une règle dans crontab, qui va lancer automatiquement, une demande de renouvellement du certificat une fois tous les 12 heures.

$ sudo crontab -e
  #Minute Hour Day of Month Month Day of Week Command
  #(0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)

crontab
* */12 * * * /home/matakasi/letsencrypt/certbot-auto renew --quiet --no-self-upgrade >> /var/log/apache2/letsencrypt-renew.log 2>&1

Référence:

Apache on Debian (other)

Publicités

Installation de OwnCloud sur un Raspberry Pi

Chap 1. Prise en main du RPi et installation de Mate sur un Raspbian
Chap 2. Installation de OwnCloud sur un Raspberry Pi
Chap 3. Sécuriser votre RPi
Chap 4. Accès au serveur Web server à partir de son nom de domaine
Chap 5. Connection SSH
Chap 6. Les fichiers journaux
Chap 7. Let’s Encrypt (LE)
Chap 8. Ajout d’un disque dur externe et migration de données
Chap 9. Suppression et ajout d’une interface graphique
Chap 10. Rappel sur les différentes étapes pour mettre en place un server dédié à Owncloud

Chap 2. Installation de OwnCloud sur un Raspberry Pi

I. Installation de OwnCloud

Pour l’installation de OwnCloud, il nous faut trois choses:

  • Un système de gestion de base de données (MariDB)
  • Un serveur PHP
  • Un serveur Web (Apache HTTP Server, ou tout simplement Apache).

Avant d’aller plus loin, je tiens à préciser que j’ai préféré MariaDB à MySQL, de la même manière que je préfère libreOffice à OpenOffice. Ensuite, mon choix d’installer un serveur Apache à la place d’un serveur Nginx, est plutôt par commodité.

Ce tutoriel se base sur un système Raspbian 8.0, avec pour but d’installer la version 8.x de Owncloud.
Deux méthodes au choix, mais je vais en favoriser une:

  • Installation à partir des dépots officielles de Debian, que je vais qualifier d’installation “automatique”
  • Installation de type manuelle, puisqu’il nous faut installer un par un, tout ce dont on aura besoin pour une utilisation fonctionnelle de notre OwnCloud.

La méthode manuelle est celle qui est vivement conseillée au vue de la correction des problèmes de sécurité, mais aussi pour une facilitée de migration du dossier OwnCloud vers un autre support, sans casser le système.

Je tiens à préciser qu’il ne faut pas appliquer ces deux méthodes à la fois. Soit vous faites une installation manuelle, soit une en automatique sinon, bonjour les dégats. Ci-dessous un example où je ne pouvais pas du tout accéder à mon serveur tant que j’ai pas résolu ce problème.

downgrading

Downgrading is not supported and is likely to cause unpredictable issues (from 8.2.1 to 8.1.5.2)
Traduction: Le downgrade n’est pas pris en charge et est susceptible de provoquer des problèmes imprévisibles (de 8.2.1 à 8.1.5.2)

Ceci est certainement du au fait que la version du dépôt dans Debian est moins récent.

Méthode automatique, installation à partir des dépots

Vérifions les informations concernant les paquets ownClouds disponibles

# apt-cache search owncloud
# apt-cache show owncloud

133804

Configurer un dépôt Debian pour ownCloud

1. Ajouter le dépôt ownCloud dans /etc/apt/sources.d/

Parmi toutes les méthodes, je préconise l’utilisation de la console, sans avoir à utiliser un éditeur de texte.

$ sudo su
# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list

Une autre option, sans avoir à se connecter comme super utilisateur:

$ echo “deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /” |sudo tee -a /etc/apt/sources.list.d/owncloud.list

2. Installation de la clef du dépôt officiel de Owncloud

$ cd /tmp
$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
$ sudo apt-key add - < Release.key

3. Installation de ownCloud

$ sudo apt-get update
$ sudo apt-get install owncloud

Le paquet Owncloud sera installé avec toutes ces dépendances (apache2, mysql, php-*, etc…).

Méthode manuelle, installation paquet par paquet

Pour plus de détails concernant l’installation des differents serveurs, je vous réfère au manuel de l’administrateur Owncloud.

Etape 1. Installation du serveur Web Apache

$ sudo apt-get install apache2

Dans un navigateur, taper l’adresse IP (ou http://localhost) de l’appareil sur lequel vous faites l’installation. Si vous voyez une page sur laquelle est affichée “It Works !”, alors le serveur Apache fonctionne correctement.

141525

Etape 2. Installation de MySQL/MariaDB

$ sudo apt-get install mariadb-server

Il vous sera demandé d’entrer un mot de passe pour l’utilisateur root de MariaDB, puis de le reconfirmer. Notez bien votre mot de passe puisqu’on n’en aura besoin pour plus tard.

142049

# service mysql status

Si le service n’apparaît pas actif, il faut le démarrer avec la commande,

# service mysql start

Etape 3. Installation de PHP5

Les paquets suivants sont les paquets principaux pour un bon fonctionnement de ownCloud. En rouge, quelques paquets qui peuvent être très utiles par la suite.

$ sudo apt-get install php5 php5-gd php5-mysql curl libcurl3-dev php5-curl php5-intl php5-mcrypt php5-imagick

Pour vérifier que le serveur PHP fonctionne correctement, il faut créer un fichier phpinfo.php dans le dossier /var/www/html, avec les informations suivantes:


Ne supprimer pas ce fichier, même si vous pensez que vous n’en avez plus besoin. Il nous sera toujours utile par la suite.

Dans un navigateur internet, entrer l’adresse localhost/phpinfo.php. Vous devriez avoir les informations concernant le serveur PHP.

php-version

Etape 4. Installation de Owncloud

Ici, on ne va pas parler d’installation à proprement parler, puisqu’il nous faut copier la version en tarball de Owncloud à partir du site officiel, que l’on va placer dans notre dossier /var/www/html.

Je ne vais pas surcharger ce blog d’étapes supplémentaires, pour une explication sur le comment et pourquoi placer le tarball dans un dossier autre que celui par défaut. Cependant, je tiens à préciser que c’est un excellent choix de le faire, en plus de modifier le nom du dossier owncloud par un autre, pour donner un peu plus de mal aux pirates qui essayent de subtiliser des informations de vos serveurs.

Récupérons la version stable actuelle disponible de owncloud (version 8.2.2), que l’on va placer dans le dossier /var/www/html.

$ sudo wget https://download.owncloud.org/community/owncloud-8.2.2.tar.bz2

$ sudo tar -xvf owncloud-8.2.2.tar.bz2
$ ls -l
total 28256
 drwxr-xr-x 13 nobody nogroup 4096 Dec 21 12:50 owncloud
 -rw-r--r-- 1 root root 28922075 Dec 21 13:00 owncloud-8.2.2.tar.bz2

Modifier les permissions pour le dossier owncloud, en changeant le propriétaire par l’utilisateur HTTP (www-data).

pi@raspberrypi:~ $ sudo chown -R www-data:www-data /var/www/html/owncloud/
pi@raspberrypi:~ $ ls -l /var/www/html
total 28260
 drwxr-xr-x 2 root root 4096 Dec 27 10:36 html
 drwxr-xr-x 15 www-data www-data 4096 Dec 27 10:54 owncloud
 -rw-r--r-- 1 root root 28922075 Dec 21 13:00 owncloud-8.2.2.tar.bz2
pi@raspberrypi:~ $

Maintenant qu’on a tout ce qu’il nous faut pour l’utilisation de Owncloud, il nous reste encore quelques paramètres à configurer.

II. Configuration des différents serveurs de OwnCloud

Configuration du serveur Web Apache

Nous allons nous intéresser particulièrement à deux fichiers de configuration du serveur Apache:
/etc/apache2/apache2.conf
/etc/apache2/sites-available/owncloud.conf
Le deuxième fichier n’existant pas, il va falloir le créer, et doit avoir les informations suivantes:

$ sudo vim /etc/apache2/sites-available/owncloud.conf
/var/www/html/owncloud/>
  Options +FollowSymlinks
  AllowOverride All

 
  Dav off
 

 SetEnv HOME /var/www/html/owncloud
 SetEnv HTTP_HOME /var/www/html/owncloud

Si vous n’avez pas installé owncloud dans /var/www/html/owncloud/, ou que vous avez modifié le nom du dossier, je vous propose de suivre les instructions proposées dans le manuel officiel pour les différentes configurations à prendre en compte.

Activer ensuite votre page Owncloud. Pour ce faire, on vous proposera généralement de créer directement un lien symbolique avec « ln -s ». Cependant, Debian a sa propre outil pour le faire.

$ sudo a2ensite owncloud.conf

De même, pour désactiver le site (vous n’en avez pas besoin dans l’immédiat)

$ sudo a2dissite owncloud.

Lors de votre accès à Owncloud à partir de votre navigateur internet, et que vous rencontrez un message du type: “.htaccess does not work”, c’est que .htaccess n’est pas activé.

095106

Je tiens à préciser qu’il est recommandé d’activer .htaccess pour bénéficier d’une meilleure sécurité pour votre serveur. Par défaut, .htaccess est désactivée sur les serveurs Apaches.
Pour le faire, remplacer ‘AllowOverride None’ par ‘AllowOverride All’ dans du fichier /etc/apache2/apache2.conf.

N’oubliez surtout pas d’effectuer des sauvegardes de vos fichiers de configuration avant toutes modifications.

$ sudo cp /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-available/owncloud.conf.bak

$ sudo cp -p /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
$ vim /etc/apache2/apache2.conf
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

Pour que ownCloud fonctionne correctement, il faut activer le module mod_rewrite.

$ sudo a2enmod rewrite

Il est aussi recommandé d’activer les différents modules ci-dessous.

$ sudo a2enmod headers
$ sudo a2enmod env
$ sudo a2enmod dir
$ sudo a2enmod mime

Les trois derniers modules devraient être déjà activés par défaut.

Configuration de php.ini

Ce qu’il faut savoir, vu qu’on veut utiliser ce serveur avec pour objectif d’échanger des fichiers, c’est qu’il faut modifier manuellement soit dans /var/www/html/owncloud/.htaccess du fichier fourni avec ownCloud, soit le fichier /etc/php5/apach2/php.ini, la taille maximale des fichiers à faire passer sur le server.
Pour savoir lequel des ses deux fichiers il faut modifier, ouvrez dans un navigateur localhost/phpinfo.php, puis retrouver la ligne “Loaded Configuration File”.

phpini

A partir de cette page, ou dans le fichier /etc/php5/apache2/php.ini, vous devriez retrouver les informations ci-dessous, que vous pouvez modifier à votre souhait. Les valeurs par défaut étant,

upload_max_filesize = 2M #Maximum allowed size for uploaded files
post_max_size = 8M #Must be greater than or equal to upload_max_filesize

N’oubliez pas d’effectuer une copie de ce fichier avant modification.

$ sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak

$ sudo vim /etc/php5/apache2/php.ini

Vous pouvez augmenter cette limite, avec pour example une valeur de 2GB comme taille maximale de fichier à échanger, comme ci-dessous:

upload_max_filesize = 2G
post_max_size = 2G

Une fois les modifications effectuées, sauvegarder le fichier php.ini, puis vérifier de nouveaux que vous avez les bonnes informations dans localhost/phpinfo.ini après redémarrage du serveur Apache.

Si vous souhaitez savoir comment faire la même chose en modifiant le fichier .htaccess, je vous renvoie à ce lien.

Redémarrer apache2

$ sudo service apache2 restart

Création de la base de donnée MySQL/MariaDB

Commençons par modifier les options de sécurité de MySQL/MariaDB.

$ sudo mysql_secure_installation
Enter current pasword for root, taper le mot de passe root de MariaDB, qui devrait être le même que celui lors de l'installation du service
Change root password, taper “n” pour NON
Remove anonymous users, taper “y” pour OUI
Disallow root login remotely, taper “y” pour OUI
Remove test database and access to it, taper “y” pour OUI
Reload privilege tables no, taper “y” pour OUI

Entrez maintenant dans MySQL/MariaDB pour gérer la base de donnée.

$ sudo mysql -u root -p
Enter password: (taper le mot de passe root de MariaDB)

MariaDB [(none)]> CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS owncloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON owncloud.* TO 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> quit

Les valeurs en couleurs peuvent être personnalisées.

Voici quelques commandes utiles pour MySQL/MariaDB:

Show Database Users: SELECT User,Host FROM mysql.user;
Show available Databases: SHOW DATABASES;
Show ownCloud Tables in Database: USE owncloud; SHOW TABLES;
Quit Database: quit

Petite précision, il n’y a rien à modifier dans ces commandes. Entrez les directement telle qu’elles.

III. Accès à OwnCloud

On est presqu’au bout du chemin. Il ne reste plus qu’à entrer les informations ci-dessous, lorsque vous rentrez dans la page localhost/owncloud (ou encore adresse_IP/owncloud).

Create an admin account
* Username: choisissez de préférence un nom, autre que « admin, administrateur, etc. »
* Password: choissisez un mot de passe complexe

Storage & database
* Data folder: ne pas modifier, sauf si owncloud est installé ailleurs
* Configure database: MySQL/MariaDB est la seule option disponible
* Database user: ownclouduser
* Database password: le mot de passe de ownclouduser
* Database name: owncloud
* Hostname: localhost

095652

Et pour finir, activons le SSL/TLS pour sécuriser les traffics entre notre serveur et les différents ordinateurs distants.

Pour ce faire, il suffit d’activer les deux modes ci-dessous:

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 reload

Et voilà, nous pouvons avoir une connection sécurisée vers le serveur Owncloud.

110650   110738
Référence:
ownCloud 8.2 Server Administration Manual
Manual Installation on Linux
Installing ownCloud From the Command Line
Database Configuration

I. Ubuntu/Debian: Installation et configuration d’un Server LAMP

Avant de commencer cet article, je tiens a preciser que j’ai installe ce server LAMP dans le but de pouvoir suivre les cours sur le language PHP. Les manipulations ci-dessous sont des manipulations basiques pour Ubuntu 13.10 et 14.04, et non optimise pour un server en production.

I. Preparation du server LAMP

On va commencer par installer tout betement les paquets necessaire au server LAMP (Linux, Apache, MySQL and PHP):

sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Puis configurer le répertoire de travail. (Je reprends ici toutes les manipulation proposees dans la documentation de Ubuntu, mais en y rajoutant ma petite touche personne avec mes preferences.)

 

1. Protection de /var/www/html

 

sudo vim /etc/apache2/sites-available/000-default.conf

Rajouter en dessous de la ligne DocumentRoot /var/www/html (pour autoriser uniquement les machines avec une adresse IP du type 127.0.0.1 ou 192.168.1.0, à acceder aux dossier dans /var/www/html).


Options Indexes FollowSymLinks MultiViews
AllowOverride None

Require ip 127.0.0.1
Require ip 192.168.1

 

 

2. Création des répertoires de travail

sudo mkdir -p /media/www-dev/{public,private}

 

3. Donner les droits utilisateur aux répertoires de travail

sudo chown -R $USER:users /media/www-dev

 

4. Configuration d’alias dans Apache

Éditez en super utilisateur le fichier : /etc/apache2/sites-available/000-default.conf afin d’y ajouter en dessous de la ligne DocumentRoot /var/www/html

## ZONE PUBLIQUE
Alias /public /media/www-dev/public

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted


## ZONE PRIVEE
Alias /private /media/www-dev/private

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
   
        Require ip 127.0.0.1
        Require ip 192.168.1
        Require host .w3.org
   

 

5. Ajout de liens symboliques

sudo ln -s /media/www-dev/public /var/www/html/public
sudo ln -s /media/www-dev/private /var/www/html/private
sudo rm /var/www/html/index.html

Note: pour supprimer un lien symbolique,

rm /dossier/nom_symbolique

 

6. Finalisation

sudo /etc/init.d/apache2 reload

ou sinon,  /etc/init.d/apache2 force-reload

 

II. Verification et test sur les differents serveurs

Verifions maintenant que tout fonctionne comme il faut:

1. Test du serveur Apache:

http://localhost/

 

2. Test du serveur PHP

sudo echo «  » >> /var/www/html/testphp.php

Voici ce que nous renvoie la page localhost/test.php

Source:
Wiki debian.org – LAMP, Linux Apache MySQL PHP

 

3.Test du serveur MySQL:

mysql -u root -p

Si vous n’avez pas mis de mot de passe, c’est le moment de le faire.

mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘votre_nouveau_mot_de_passe’);

Redemarrer le server Apache:
sudo /etc/init.d/apache2 restart

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+——————–+
4 rows in set (0.49 sec)

mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+—————————+
| Tables_in_mysql           |
+—————————+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+—————————+
24 rows in set (0.00 sec)

mysql> quit
Bye
malagasy@ubuntu:~/Temp$

Source:
Building a LAMP Server
Installing LAMP (Linux, Apache, MySQL and PHP) On Linux Mint
MySQL: Testing a MySQL Installation

 

4. Installation de l’interface de gestion de MySQL

Je vous propose ensuite l’installation de phpmyadmin, vu que jongler avec les lignes de commande n’est pas tres pratique – en tout cas, pour moi.

sudo apt-get install phpmyadmin

 

 

5. Racourci vers le dossier de travail

Une fois que tout est bon, vous pouvez ajouter le dossier /media/www-dev comme dans les marques pages de votre navigateur de dossier.

Et voila, le serveur LAMP est  prêt et est fonctionnel.

 

I. Ubuntu/Debian: Installation et configuration d’un Server LAMP
II. Ubuntu/Debian: Installation et configuration d’un Server LAMP – Suite et Fin

Reference
Installing Apache2 With PHP5 And MySQL Support On Ubuntu 13.04 (LAMP)