Bonjour à tous,
J'ai mis en oeuvre le serveur nextcloud sur ma raspberry pi 3.
J'ai monté un disque dur externe sur /mnt pour éviter de charger la carte SD de 8Go.
De cette facon, j'aimerais changer le upload_tmp_dir (/tmp et /mnt/data_tmp) tandis que le data_dir se change sans problème.
L'interface web de nextcloud permet de télécharger les fichiers depuis le serveur (via webdav et oc web interface menu).
De ce téléchargement se déclanche 3 process :
-1 nginx
-2 pool www
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1003 0.1 1.8 638020 18164 ? Ssl 20:28 0:05 /usr/sbin/mysqld
root 2335 0.0 1.5 137980 15504 ? Ss 21:18 0:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data 2337 1.1 2.1 140608 21532 ? S 21:18 0:10 php-fpm: pool www
www-data 2338 1.0 1.8 138472 18888 ? S 21:18 0:09 php-fpm: pool www
root 2355 0.0 0.1 47568 1292 ? Ss 21:18 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 2356 10.9 0.3 47744 3752 ? S 21:18 1:43 nginx: worker process
www-data 2357 7.8 1.2 56088 12132 ? R 21:18 1:14 nginx: worker process
www-data 2358 0.0 0.2 47568 2836 ? S 21:18 0:00 nginx: worker process
www-data 2359 0.0 0.2 47568 2836 ? S 21:18 0:00 nginx: worker process
pi 2636 0.0 0.2 7732 2788 pts/0 R+ 21:34 0:00 ps aux
J'ai trouvé quelques pistes pour résoudre le problème, je pense notemment à la conf nginx et php (surtout openbase_dir).
https://raspberry-hosting.com/en/faq/how-install-nginx-php-fpm-raspberry-pi
https://www.techandme.se/increase-max-file-size/
https://serverfault.com/questions/642034/nginx-and-php-fpm-permission
https://support.plesk.com/hc/en-us/articles/360001540233-How-to-change-a-directory-for-temporary-PHP-files
Je vous remercie par avance.
Ci-dessous ma conf nginx pour mon serveur.
upstream php-handler {
#server 127.0.0.1:8000;
server unix:/var/run/php/php7.0-fpm.sock;
}
server {
listen 101;
listen [::]:101;
server_name www.domaine.org;
# enforce https
return 301 https://$host$request_uri;
}
server {
listen 102 ssl http2;
listen [::]:102 ssl http2;
server_name www.domaine.org;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.domaine.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.domaine.org/privkey.pem;
# .well-known doit resté accessible
location .well-known/ {
allow all;
}
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
# add_header Strict-Transport-Security "max-age=15768000;
# includeSubDomains; preload;";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /var/www/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
# last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
# set max upload size
client_max_body_size 10G; #or 0 to disable allowed size
fastcgi_buffers 64 128K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
location / {
rewrite ^ /index.php$uri;
client_body_temp_path /tmp;
#upload_tmp_dir /mnt/my_data/tmp;
#tempdirectory /mnt/my_data/tmp;
}
location ~ ^/.well-known/acme-challenge/* {
allow all;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
#upload_tmp_dir = /tmp;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
######## UPDATE V13 NEXTCLOUD ########
#fastcgi_read_timeout 5s;
#fastcgi_request_buffering off;
#proxy_max_temp_file_size 1024m; #10GB?
#proxy_buffering on;
#large_client_header_buffers 16 32k;
}
# plusieurs methodes
Posté par NeoX . Évalué à 2. Dernière modification le 06 juin 2018 à 09:33.
tu peux en effet jouer de la config de php, sur le programme, ou directement avec le systeme de fichier.
si tu ne trouves pas les infos pour php ou ton programme, tu peux
[^] # Re: plusieurs methodes
Posté par electro575 . Évalué à 1.
C'est à dire que j'ai regardé dans tous les dossiers à la racine de la carte SD.
Aucun fichier n'augmente et en particulier le /tmp donc monter ce dossier sur le disque dur ne changera rien je pense, je ne sais pas si je dis juste.
[^] # Re: plusieurs methodes
Posté par NeoX . Évalué à 2.
quand tu telecharges, c'est dans le sens le serveur -> ton PC
il est normal qu'il n'y ait aucun fichier temporaire
ou alors tu telecharges un dossier qui contient plusieurs fichiers,
il fait alors un fichier zip, en memoire ou sur le disque (SD ou HDD)
tu devrais voir un fichier temporaire quand tu fais un envoie de fichier (upload) de ton PC vers le serveur.
[^] # Re: plusieurs methodes
Posté par electro575 . Évalué à 1.
ou alors tu telecharges un dossier qui contient plusieurs fichiers,
il fait alors un fichier zip, en memoire ou sur le disque (SD ou HDD)
Dans le cas d'une récupération d'un fichier du serveur vers le PC, le / grossi mais je ne trouve pas le dossier qui grossi en ayant fait un du -sh à partir de chaque dossier pendant la récupération !
La c'est le dossier /mnt/data/nextcloud qui grossi et le / ne bouge pas. Dans le sens fichier du PC vers le serveur c'est bon.
Conclusion : Du coup je ne vois pas ou régler le 1er cas, upload_dir_tmp qui même si je l'indique ne semble pas fonctionner (je pense du coup à nginx et php-fpm vu les process que j'ai cité pour serveur -> ton PC).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.