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… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
tutoriel:internet:disque_internet:owncloud:raspi:start [2022/03/03 12:58] – [Première étape] admintutoriel:internet:disque_internet:owncloud:raspi:start [2022/03/03 15:25] – [Première étape] admin
Ligne 129: Ligne 129:
 To activate the new configuration, you need to run: To activate the new configuration, you need to run:
   systemctl restart apache2   systemctl restart apache2
-</cli> +</cli><code ini /etc/php5/apache2/php.ini>; When enabled, the ENV, REQUEST and SERVER variables are created when they're
-<code conf >; 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 ; 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 ; variables are not used within a script, having this directive on will result
Ligne 166: Ligne 165:
 ; PHP's built-in default is text/html ; PHP's built-in default is text/html
 ; http://php.net/default-mimetype ; http://php.net/default-mimetype
-default_mimetype = text/html"+default_mimetype = "text/html"
  
 ; PHP's default character set is set to empty. ; PHP's default character set is set to empty.
Ligne 219: Ligne 218:
 ; If your scripts have to deal with files from Macintosh systems, ; 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</code> ; or you are running on a Mac and need to deal with files from</code>
 +    - **Nous avons téléchargé le logiciel qu'il nous faut configurer.**
 +      - Tout d'abord, nous devons installer PHP apc :<cli prompt='$ '>pi@framboise4:~ $ sudo pecl install apc
 +WARNING: "pecl/APC" is deprecated in favor of "channel:///APCu"
 +WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
 +downloading APC-3.1.13.tgz ...
 +Starting to download APC-3.1.13.tgz (171,591 bytes)
 +........done: 171,591 bytes
 +55 source files, building
 +running: phpize
 +Configuring for:
 +PHP Api Version:         20180731
 +Zend Module Api No:      20180731
 +Zend Extension Api No:   320180731
 +Enable internal debugging in APC [no] : 
 +Enable per request file info about files used from the APC cache [no] : 
 +Enable spin locks (EXPERIMENTAL) [no] : 
 +Enable memory protection (EXPERIMENTAL) [no] : 
 +Enable pthread mutexes (default) [no] : 
 +Enable pthread read/write locks (EXPERIMENTAL) [yes] : 
 +building in /tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13
 +running: /tmp/pear/temp/APC/configure --with-php-config=/usr/bin/php-config --enable-apc-debug=no --enable-apc-filehits=no --enable-apc-spinlocks=no --enable-apc-memprotect=no --enable-apc-pthreadmutex=no --enable-apc-pthreadrwlocks=yes
 +checking for grep that handles long lines and -e... /usr/bin/grep
 +checking for egrep... /usr/bin/grep -E
 +checking for a sed that does not truncate output... /usr/bin/sed
 +checking for cc... cc
 +checking whether the C compiler works... yes
 +checking for C compiler default output file name... a.out
 +checking for suffix of executables...
 +checking whether we are cross compiling... no
 +checking for suffix of object files... o
 +checking whether we are using the GNU C compiler... yes
 +checking whether cc accepts -g... yes
 +checking for cc option to accept ISO C89... none needed
 +checking how to run the C preprocessor... cc -E
 +checking for icc... no
 +checking for suncc... no
 +checking whether cc understands -c and -o together... yes
 +checking for system library directory... lib
 +checking if compiler supports -R... no
 +checking if compiler supports -Wl,-rpath,... yes
 +checking build system type... armv7l-unknown-linux-gnueabihf
 +checking host system type... armv7l-unknown-linux-gnueabihf
 +checking target system type... armv7l-unknown-linux-gnueabihf
 +checking for PHP prefix... /usr
 +checking for PHP includes... -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
 +checking for PHP extension directory... /usr/lib/php/20180731
 +checking for PHP installed headers prefix... /usr/include/php/20180731
 +checking if debug is enabled... no
 +checking if zts is enabled... no
 +checking for re2c... no
 +configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
 +checking for gawk... gawk
 +checking whether to enable APC support... yes, shared
 +checking whether we should enable cache request file info... no
 +checking whether we should use mmap... yes
 +checking whether we should use semaphore locking instead of fcntl... no
 +checking whether we should use pthread mutex locking... no
 +checking whether we should use pthread read/write locking... yes
 +pthread rwlocks are supported!
 +checking whether the target compiler supports builtin atomics... yes
 +checking whether we should use spin locks... no
 +checking whether we should enable memory protection... no
 +checking for zend_set_lookup_function_hook... no
 +checking for sigaction... yes
 +checking for union semun... no
 +checking whether we should enable valgrind support... checking for ANSI C header files... yes
 +checking for sys/types.h... yes
 +checking for sys/stat.h... yes
 +checking for stdlib.h... yes
 +checking for string.h... yes
 +checking for memory.h... yes
 +checking for strings.h... yes
 +checking for inttypes.h... yes
 +checking for stdint.h... yes
 +checking for unistd.h... yes
 +yes
 +checking valgrind/memcheck.h usability... no
 +checking valgrind/memcheck.h presence... no
 +checking for valgrind/memcheck.h... no
 +checking for shm_open in -lrt... yes
 +checking whether to include code coverage symbols... no
 +checking how to print strings... printf
 +checking for a sed that does not truncate output... (cached) /usr/bin/sed
 +checking for fgrep... /usr/bin/grep -F
 +checking for ld used by cc... /usr/bin/ld
 +checking if the linker (/usr/bin/ld) is GNU ld... yes
 +checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
 +checking the name lister (/usr/bin/nm -B) interface... BSD nm
 +checking whether ln -s works... yes
 +checking the maximum length of command line arguments... 1572864
 +checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format... func_convert_file_noop
 +checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop
 +checking for /usr/bin/ld option to reload object files... -r
 +checking for objdump... objdump
 +checking how to recognize dependent libraries... pass_all
 +checking for dlltool... no
 +checking how to associate runtime and link libraries... printf %s\n
 +checking for ar... ar
 +checking for archiver @FILE support... @
 +checking for strip... strip
 +checking for ranlib... ranlib
 +checking for gawk... (cached) gawk
 +checking command to parse /usr/bin/nm -B output from cc object... ok
 +checking for sysroot... no
 +checking for a working dd... /usr/bin/dd
 +checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
 +checking for mt... mt
 +checking if mt is a manifest tool... no
 +checking for dlfcn.h... yes
 +checking for objdir... .libs
 +checking if cc supports -fno-rtti -fno-exceptions... no
 +checking for cc option to produce PIC... -fPIC -DPIC
 +checking if cc PIC flag -fPIC -DPIC works... yes
 +checking if cc static flag -static works... yes
 +checking if cc supports -c -o file.o... yes
 +checking if cc supports -c -o file.o... (cached) yes
 +checking whether the cc linker (/usr/bin/ld) supports shared libraries... yes
 +checking whether -lc should be explicitly linked in... no
 +checking dynamic linker characteristics... GNU/Linux ld.so
 +checking how to hardcode library paths into programs... immediate
 +checking whether stripping libraries is possible... yes
 +checking if libtool supports shared libraries... yes
 +checking whether to build shared libraries... yes
 +checking whether to build static libraries... no
 +configure: creating ./config.status
 +config.status: creating config.h
 +config.status: executing libtool commands
 +running: make
 +/bin/bash /tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13/libtool --mode=compile cc -D_GNU_SOURCE -I. -I/tmp/pear/temp/APC -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13/include -I/tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13/main -I/tmp/pear/temp/APC -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/APC/apc.c -o apc.lo
 +libtool: compile:  cc -D_GNU_SOURCE -I. -I/tmp/pear/temp/APC -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13/include -I/tmp/pear/temp/pear-build-rootzVkdcE/APC-3.1.13/main -I/tmp/pear/temp/APC -I/usr/include/php/20180731 -I/usr/include/php/20180731/main -I/usr/include/php/20180731/TSRM -I/usr/include/php/20180731/Zend -I/usr/include/php/20180731/ext -I/usr/include/php/20180731/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/APC/apc.c  -fPIC -DPIC -o .libs/apc.o
 +In file included from /tmp/pear/temp/APC/apc_main.h:38,
 +                 from /tmp/pear/temp/APC/apc_compile.h:43,
 +                 from /tmp/pear/temp/APC/apc_cache.h:40,
 +                 from /tmp/pear/temp/APC/apc.c:36:
 +/tmp/pear/temp/APC/apc_serializer.h: In function ‘apc_register_serializer’:
 +/tmp/pear/temp/APC/apc_serializer.h:45:33: warning: passing argument 1 of ‘zend_get_constant’ from incompatible pointer type [-Wincompatible-pointer-types]
 + #define APC_SERIALIZER_CONSTANT "\000apc_register_serializer-" APC_SERIALIZER_ABI
 +                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +/tmp/pear/temp/APC/apc_serializer.h:64:27: note: in expansion of macro ‘APC_SERIALIZER_CONSTANT’
 +     if (zend_get_constant(APC_SERIALIZER_CONSTANT, sizeof(APC_SERIALIZER_CONSTANT)-1, &apc_magic_constant TSRMLS_CC)) {
 +                           ^~~~~~~~~~~~~~~~~~~~~~~
 +In file included from /usr/include/php/20180731/main/php.h:469,
 +                 from /tmp/pear/temp/APC/apc.h:61,
 +                 from /tmp/pear/temp/APC/apc.c:34:
 +/usr/include/php/20180731/Zend/zend_constants.h:79:16: note: expected ‘zend_string *’ {aka ‘struct _zend_string *’} but argument is of type ‘char *’
 + ZEND_API zval *zend_get_constant(zend_string *name);
 +                ^~~~~~~~~~~~~~~~~
 +In file included from /tmp/pear/temp/APC/apc_main.h:38,
 +                 from /tmp/pear/temp/APC/apc_compile.h:43,
 +                 from /tmp/pear/temp/APC/apc_cache.h:40,
 +                 from /tmp/pear/temp/APC/apc.c:36:
 +/tmp/pear/temp/APC/apc_serializer.h:64:9: error: too many arguments to function ‘zend_get_constant’
 +     if (zend_get_constant(APC_SERIALIZER_CONSTANT, sizeof(APC_SERIALIZER_CONSTANT)-1, &apc_magic_constant TSRMLS_CC)) {
 +         ^~~~~~~~~~~~~~~~~
 +In file included from /usr/include/php/20180731/main/php.h:469,
 +                 from /tmp/pear/temp/APC/apc.h:61,
 +                 from /tmp/pear/temp/APC/apc.c:34:
 +/usr/include/php/20180731/Zend/zend_constants.h:79:16: note: declared here
 + ZEND_API zval *zend_get_constant(zend_string *name);
 +                ^~~~~~~~~~~~~~~~~
 +In file included from /tmp/pear/temp/APC/apc.c:36:
 +/tmp/pear/temp/APC/apc_cache.h: At top level:
 +/tmp/pear/temp/APC/apc_cache.h:136:9: error: unknown type name ‘zend_uint’
 +         zend_uint *exec_refcount;   /* refcount member of zend_op_array refreshed before execution */
 +         ^~~~~~~~~
 +/tmp/pear/temp/APC/apc.c:47:13: fatal error: ext/standard/php_smart_str.h: Aucun fichier ou dossier de ce type
 + #   include "ext/standard/php_smart_str.h"
 +             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +compilation terminated.
 +make: *** [Makefile:195: apc.lo] Error 1
 +ERROR: `make' failed</cli>
 +    - Cela fait, nous devons créer avec les droits d'administration le fichier **/etc/php5/cgi/conf.d/apc.ini** pour y ajouter ce qui suit :<code - /etc/php5/cgi/conf.d/apc.ini>extension=apc.so
 +apc.enabled=1
 +apc.shm_size=30</code>
 +    - Ensuite, Éditez avec les droits d'administration le fichier **/etc/php5/apache2/php.ini** pour le modifier comme ceci :
 +      - nous devons modifier le PHP.ini pour modifier le fichier de téléchargement maximal afin que nous puissions ajouter un fichier volumineux et ajouter l'extension APC à PHP.
 +      - Changez la valeur de **upload_max_filesize** en 1024M, ce qui permettra de télécharger des fichiers jusqu'à 1 Go.
 +      - Changez la valeur de **post_max_size** en 1200m, ce qui permettra de télécharger des fichiers jusqu'à 1 Go
 +      - Dans la section extension=, ajoutez extension=apc.so
 +    - Ensuite, nous devons configurer apache et activer SSL. Éditez avec les droits d'administration le fichier **/etc/apache2/sites-enabled/000-default** pour le modifier comme ceci :
 +      - changez Allow override to All de none
 +    - Ensuite, nous devons installer SSL
 +    - <cli prompt='$ '>pi@framboise4:~ $ sudo a2enmod rewrite
 +  pi@framboise4:~ $ sudo a2enmod headers</cli>
 +    - Après la commande suivante, il vous sera demandé de fournir des informations :<cli prompt='$ '>pi@framboise4:~ $ sudo openssl genrsa -des3 -out server.key 1024; sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req -new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt;sudo cp server.crt /etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite default-ssl</cli>
 +    - Une fois que tout cela est fait, apache doit redémarrer :<cli prompt='$ '>pi@framboise4:~ $ sudo service apache2 restart</cli>
 +  - **Étape 4 : Téléchargez et installez OwnCloud**<code - /var/www/owncloud/.htaccess>
 +ErrorDocument 403 /owncloud/core/templates/403.php
 +ErrorDocument 404 /owncloud/core/templates/404.php
 +<IfModule mod_php5.c>
 +php_value upload_max_filesize 512M
 +php_value post_max_size 512M
 +php_value memory_limit 512M
 +<IfModule env_module>
 +    SetEnv htaccessWorking true
 +</IfModule>
 +</IfModule>
 +<IfModule mod_rewrite.c>
 +RewriteEngine on
 +RewriteRule .* - [env=HTTP_AUTHORIZATION: %{HTTP:Authorization}]
 +RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L]
 +RewriteRule ^.well-known/carddav /remote.php/carddav/ [R]
 +RewriteRule ^.well-known/caldav /remote.php/caldav/ [R]
 +RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index. php?app=$1&getfile=$2 [QSA,L]
 +RewriteRule ^remote/(.*) remote.php [QSA,L]
 +</IfModule>
 +Options =Indexes</code>
 +    - Maintenant que nous avons configuré Apache et PHP, nous devons télécharger owncloud :<cli prompt='$ '>pi@framboise4:~ $ wget http://mirrors.owncloud.org/releases/owncloud-4.5.1.tar.bz2</cli>
 +    - une fois téléchargé, il faut le décompresser :<cli prompt='$ '>pi@framboise4:~ $ sudo tar -xjf owncloud-4.5.1.tar.bz2</cli>
 +    - Et puis copier dans la racine Web :<cli prompt='$ '>pi@framboise4:~ $ sudo cp -r owncloud /var/www</cli>
 +    - Une fois qu'il a été copié, nous devons autoriser le serveur Web à accéder au répertoire owncloud :<cli prompt='$ '>pi@framboise4:~ $ sudo chown -R www-data:www-data /var/www/owncloud/</cli>
 +    - Nous devons également modifier le fichier **/var/www/owncloud/.htaccess** pour modifier max upload file aux mêmes valeurs que celles que vous avez définies dans votre php.ini
 +  - **Step 5: Configurez OwnCloud**{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-01.png?600 |}}{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-02.png?600 |}}{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-03.png?600 |}}
 +    - Le moyen le plus simple de configurer le lecteur externe consiste à utiliser gparted sur le Pi<cli prompt='$ '>pi@framboise4:~ $ startx</cli>de l'intérieur de l'interface graphique, ouvrez un terminal et tapez :<cli prompt='$ '>pi@framboise4:~ $ sudo gparted</cli>à partir de là, vous pouvez partitionner et formater le disque
 +    - Une fois cela fait, réglez les permissions pour le serveur Web :<cli prompt='$ '>pi@framboise4:~ $ sudo chown -R www-data:www-data /media/owncloud</cli>
 +    - dans un navigateur web tapez [[https://IPADDRESS/owncloud]]
 +      - Choisissez un nom d'utilisateur et un mot de passe en les saisissant dans la zone nom d'utilisateur et mot de passe
 +      - cliquez sur avancé et modifiez l'emplacement des données à l'emplacement de votre disque externe (dans mon cas, /media/owncloud)
 +      - Un clic sur terminé et le tour est joué. Vous devriez maintenant pouvoir télécharger des fichiers. Pour lire des fichiers vidéo, vous devez activer l'application du lecteur vidéo.
 +      - Pour configurer l'accès externe à votre appareil, je suggérerais d'utiliser DyDns ou Noip.
 +  - **Étape 6 : Placement dans le boîtier** :{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-04.png?600 |}}{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-05.png?600 |}}{{ :tutoriel:internet:disque_internet:owncloud:raspi:owncloudrpi-06.png?600 |}}Maintenant que le logiciel est configuré, le Pi n'a plus qu'à être placé dans la boîte. Je percerais un trou dans la boîte pour permettre un peu de circulation d'air.
 </WRAP> </WRAP>
 ===== Autres étapes ===== ===== Autres étapes =====