Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Owncloud sur Raspberry Pi (clone de Dropbox)

ownCloud est un cloud personnel qui s'exécute sur votre propre serveur. Nous allons voir comment créer votre propre service OwnCloud (sorte de dropbox personnel) sur un Raspberry Pi.

Si vous ne souhaitez pas suivre les étapes de téléchargement et de configuration du logiciel, vous pouvez télécharger l'image que j'ai configurée à partir d'ici. Bien que j'aie fait tout mon possible pour vérifier que cela fonctionne, vous l'utilisez à vos risques et périls. Si vous téléchargez l'image, passez à l'étape 5.

Introduction

Pré-requis

  • Un Raspberry Pi
  • Un disque dur externe USB ou une clé USB
  • Un boîtier pour le Raspberry Pi et le disque dur
  • Carte réseau sans fil (en option)

Première étape

  1. Étape 1 : Ce dont vous avez besoin
  2. Étape 2 : Configurer le réseau Télécharger le logiciel

    pi@framboise4:~ $ sudo openssl genrsa -des3 -out server.key 1024
    Generating RSA private key, 1024 bit long modulus (2 primes)
    .....................+++++
    ...............+++++
    e is 65537 (0x010001)
    Enter pass phrase for server.key:
    Verifying - Enter pass phrase for server.key:
    pi@framboise4:~ $ sudo openssl rsa -in server.key -out server.key.insecure
    Enter pass phrase for server.key:
    writing RSA key
    pi@framboise4:~ $ sudo openssl req -new -key server.key -out server.csr
    Enter pass phrase for server.key:
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:FR
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:
    Email Address []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:pass
    An optional company name []:
    pi@framboise4:~ $ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    Signature ok
    subject=C = FR, ST = Some-State, O = Internet Widgits Pty Ltd
    Getting Private key
    Enter pass phrase for server.key:
    pi@framboise4:~ $ sudo cp server.crt /etc/ssl/certs
    pi@framboise4:~ $ sudo cp server.key /etc/ssl/private
    pi@framboise4:~ $ sudo a2enmod ssl
    ...
    Enabling module ssl.
    See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
    To activate the new configuration, you need to run:
      systemctl restart apache2
    pi@framboise4:~ $ sudo a2ensite default.ssl
    Enabling site default-ssl.
    To activate the new configuration, you need to run:
      systemctl restart apache2

    1. Donnez au Pi une adresse IP fixe :
      1. Éditez avec les droits d'administration le fichier /etc/network/interfaces pour qu'il ressemble à ceci 1) :
        /etc/network/interfaces
        auto eth0
        iface eth0 inet static
               address 192.168.1.118
               gateway 192.168.1.1
               netmask 255.255.255.0
               network 192.168.1.0
               broadcast 192.168.1.255
      2. Redémarrez le réseau :

        pi@framboise4:~ $ sudo /etc/init.d/networking restart

    2. Mettez à jour le Pi et téléchargez le logiciel :

      pi@framboise4:~ $ sudo apt-get update

    3. Installez Apache, SSL, PHP5, PHP APC qui chargeront les pages plus rapidement :

      pi@framboise4:~ $ sudo apt-get install apache2 php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php5-gd php5-cgi php-pear php5-dev build-essential libpcre3-dev php5 libapache2-mod-php5 php-apc gparted

  3. Étape 3 : Configurez Php et Apache :
    1. pi@framboise4:~ $ sudo openssl genrsa -des3 -out server.key 1024
      Generating RSA private key, 1024 bit long modulus (2 primes)
      .....................+++++
      ...............+++++
      e is 65537 (0x010001)
      Enter pass phrase for server.key:
      Verifying - Enter pass phrase for server.key:
      pi@framboise4:~ $ sudo openssl rsa -in server.key -out server.key.insecure
      Enter pass phrase for server.key:
      writing RSA key
      pi@framboise4:~ $ sudo openssl req -new -key server.key -out server.csr
      Enter pass phrase for server.key:
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) [AU]:FR
      State or Province Name (full name) [Some-State]:
      Locality Name (eg, city) []:
      Organization Name (eg, company) [Internet Widgits Pty Ltd]:
      Organizational Unit Name (eg, section) []:
      Common Name (e.g. server FQDN or YOUR name) []:
      Email Address []:
      
      Please enter the following 'extra' attributes
      to be sent with your certificate request
      A challenge password []:pass
      An optional company name []:
      pi@framboise4:~ $ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
      Signature ok
      subject=C = FR, ST = Some-State, O = Internet Widgits Pty Ltd
      Getting Private key
      Enter pass phrase for server.key:
      pi@framboise4:~ $ sudo cp server.crt /etc/ssl/certs
      pi@framboise4:~ $ sudo cp server.key /etc/ssl/private
      pi@framboise4:~ $ sudo a2enmod ssl
      ...
      Enabling module ssl.
      See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
      To activate the new configuration, you need to run:
        systemctl restart apache2
      pi@framboise4:~ $ sudo a2ensite default.ssl
      Enabling site default-ssl.
      To activate the new configuration, you need to run:
        systemctl restart apache2

; When enabled, the ENV, REQUEST and SERVER variables are created when they're
; first used (Just In Time) instead of when the script starts. If these
; variables are not used within a script, having this directive on will result
; in a performance gain. The PHP directive register_argc_argv must be disabled
; for this directive to have any affect.
; http://php.net/auto-globals-jit
auto_globals_jit = On
; Whether PHP will read the POST data.
; This option is enabled by default.
; Most Likely, you won't want to disable this option globally. It causes $_POST
; and $_FILES to always be empty: the only way you will be able to read the
; POST data will be through the php://input stream wrapper. This can be useful
; to proxy requests or to process the POST data in a memory efficient fashion.
; http://php.net/enable-post-data-reading
;enable_post_data_reading = Off
 
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 120M
 
; Automatically add files before PHP document.
; http://php.net/auto-prepend-file
auto_prepend_fite =
 
; Automatically add files after PHP document.
; http://php.net/auto-append-file
auto_append_file =
 
; By default, PHP will output a character encoding using
; the Content-type: header. To disable sending of the charset, simply
; set it to be empty.
; 
; PHP's built-in default is text/html
; http://php.net/default-mimetype
default_mimetype = “text/html"
 
; PHP's default character set is set to empty.
; http://php.net/default-charset
;default_charset = "UTF-8"
 
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
 
;;;;;;;;;;;;;;;;;;;;;;;;
 
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
 
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =
 
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 1024M
 
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen = On
 
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-include
allow_url_include = Off
 
; Define the anonymous ftp password (your email address). PHP's default setting
; for this is empty.
; http://php.net/from
; from="john@doe.com"
 
; Define the User-Agent string. PHP's default setting for this is empty.
; http://php.net/user-agent
;user_agent="PHP"
 
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
default_socket_timeout = 60
 
; If your scripts have to deal with files from Macintosh systems,
; or you are running on a Mac and need to deal with files from

Autres étapes

Conclusion

Problèmes connus

Voir aussi

1)
votre adresse IP peut être différente