Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4370 > unrolled thread

File Upload mit systemd private temp

Started byJan Novak <repcom@gmail.com>
First post2018-05-08 09:24 +0200
Last post2018-06-14 23:33 +0200
Articles 14 — 7 participants

Back to article view | Back to de.comp.lang.php


Contents

  File Upload mit systemd private temp Jan Novak <repcom@gmail.com> - 2018-05-08 09:24 +0200
    Re: File Upload mit systemd private temp "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-05-08 12:21 +0200
      GELÖST: File Upload mit systemd private temp Jan Novak <repcom@gmail.com> - 2018-05-08 12:45 +0200
        Re: GELÖST: File Upload mit systemd private temp "Christoph M. Becker" <cmbecker69@arcor.de> - 2018-05-08 13:05 +0200
          Re: GELÖST: File Upload mit systemd private temp "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2018-05-10 10:19 +0200
            Re: GELÖST: File Upload mit systemd private temp Jan Novak <repcom@gmail.com> - 2018-05-10 10:46 +0200
            Re: GELÖST: File Upload mit systemd private temp Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-05-19 20:22 +0200
              Re: GELÖST: File Upload mit systemd private temp Arno Welzel <usenet@arnowelzel.de> - 2018-05-23 22:01 +0200
                Re: GELÖST: File Upload mit systemd private temp Markus Grob <snoopy@ilnet.ch> - 2018-06-11 17:54 +0200
                  Re: GELÖST: File Upload mit systemd private temp Claus Reibenstein <4spamersonly@kabelmail.de> - 2018-06-11 19:16 +0200
                    Re: GELÖST: File Upload mit systemd private temp "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2018-06-11 19:35 +0200
                      Re: GELÖST: File Upload mit systemd private temp Claus Reibenstein <4spamersonly@kabelmail.de> - 2018-06-11 20:23 +0200
                  Re: GELÖST: File Upload mit systemd private temp Arno Welzel <usenet@arnowelzel.de> - 2018-06-14 02:40 +0200
                    Re: GELÖST: File Upload mit systemd private temp Markus Grob <snoopy@ilnet.ch> - 2018-06-14 23:33 +0200

#4370 — File Upload mit systemd private temp

FromJan Novak <repcom@gmail.com>
Date2018-05-08 09:24 +0200
SubjectFile Upload mit systemd private temp
Message-ID<pcrjbu$nue$1@news.albasani.net>
Hallo,

ich baue gerade an einer upload Funktion. System ist ein 9.2 Debian.

File Uploads landen in
/tmp/systemd-private-1b5621511e5e4505814fd887261174e7-apache2.service-iNOxtK/tmp

Leider zeigt der aber
$_FILES["tmp_name"] auf /tmp/phpwPsrev

wo das File nicht liegt.
Wie komme ich an mein File im temp systemd Verzeichnis?

Jan

[toc] | [next] | [standalone]


#4371

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2018-05-08 12:21 +0200
Message-ID<pcrtn2$peu$1@solani.org>
In reply to#4370
On 08.05.2018 at 09:24, Jan Novak wrote:

> ich baue gerade an einer upload Funktion. System ist ein 9.2 Debian.
> 
> File Uploads landen in
> /tmp/systemd-private-1b5621511e5e4505814fd887261174e7-apache2.service-iNOxtK/tmp
> 
> Leider zeigt der aber
> $_FILES["tmp_name"] auf /tmp/phpwPsrev
> 
> wo das File nicht liegt.
> Wie komme ich an mein File im temp systemd Verzeichnis?

Grundsätzlich sollte man auf gerade hoch geladene Dateien nicht direkt
zugreifen, sondern immer nur per move_uploaded_file()[1] (oder
is_uploaded_file()). Im PHP-Handbuch wird auch ein move_uploaded_file()
Beispiel gezeigt. Wenn das bei dir nicht funktioniert, dann schau mal
nach upload_tmp_dir[2].

[1] <http://www.php.net/manual/de/function.move-uploaded-file.php>
[2] <http://www.php.net/manual/de/ini.core.php#ini.upload-tmp-dir>

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4372 — GELÖST: File Upload mit systemd private temp

FromJan Novak <repcom@gmail.com>
Date2018-05-08 12:45 +0200
SubjectGELÖST: File Upload mit systemd private temp
Message-ID<pcrv53$28p$1@news.albasani.net>
In reply to#4371
Hallo,


Am 08.05.18 um 12:21 schrieb Christoph M. Becker:
> On 08.05.2018 at 09:24, Jan Novak wrote:
> 
>> ich baue gerade an einer upload Funktion. System ist ein 9.2 Debian.
>>
>> File Uploads landen in
>> /tmp/systemd-private-1b5621511e5e4505814fd887261174e7-apache2.service-iNOxtK/tmp
>>
>> Leider zeigt der aber
>> $_FILES["tmp_name"] auf /tmp/phpwPsrev
>>
>> wo das File nicht liegt.
>> Wie komme ich an mein File im temp systemd Verzeichnis?
> 
> Grundsätzlich sollte man auf gerade hoch geladene Dateien nicht direkt
> zugreifen, sondern immer nur per move_uploaded_file()[1] (oder
> is_uploaded_file()). Im PHP-Handbuch wird auch ein move_uploaded_file()
> Beispiel gezeigt. Wenn das bei dir nicht funktioniert, dann schau mal
> nach upload_tmp_dir[2].
> 
> [1] <http://www.php.net/manual/de/function.move-uploaded-file.php>


Ich nutze natürlich die move_uploaded_file Funktion.
Laut PHP Doku [1] :

$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
     if ($error == UPLOAD_ERR_OK) {
         $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
         $name = basename($_FILES["pictures"]["name"][$key]);
         move_uploaded_file($tmp_name, "$uploads_dir/$name");
     }
}

Und hier liegt das Problem:
in $_FILES["pictures"]["tmp_name"] (um in obigem Beispiel zu bleiben) 
steht nicht der richtige temp Pfad, somit kann er die Datei nicht 
verschieben.
In meinem Fall ist der reale temp Pfad der lange systemd Pfad, aber in 
[tmp_name] steht nur der kurze Pfsd, z.B.  /tmp/phpwPsrev

EDIT (und Problem gelöst):
Das Problem lag wohl daran, dass ich - zu Testzwecken - die Dateien nach 
/tmp kopieren wollte (als Zielverzeichnis). Das scheint nicht zu gehen.
Wenn ich als Zielverzeichnis etwas ausserhalb von /tmp wähle, 
funktioniert es.


Jan


> [2] <http://www.php.net/manual/de/ini.core.php#ini.upload-tmp-dir>
> 

[toc] | [prev] | [next] | [standalone]


#4373 — Re: GELÖST: File Upload mit systemd private temp

From"Christoph M. Becker" <cmbecker69@arcor.de>
Date2018-05-08 13:05 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<pcs09k$r66$1@solani.org>
In reply to#4372
Am 08.05.2018 um 12:45 schrieb Jan Novak:

> EDIT (und Problem gelöst):
> Das Problem lag wohl daran, dass ich - zu Testzwecken - die Dateien nach
> /tmp kopieren wollte (als Zielverzeichnis). Das scheint nicht zu gehen.
> Wenn ich als Zielverzeichnis etwas ausserhalb von /tmp wähle,
> funktioniert es.

Das liegt vermutlich an der open_basedir Einstellung, siehe
<http://www.php.net/manual/de/function.move-uploaded-file.php#refsect1-function.move-uploaded-file-notes>.

-- 
Christoph M. Becker

[toc] | [prev] | [next] | [standalone]


#4374 — Re: GELÖST: File Upload mit systemd private temp

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2018-05-10 10:19 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<slrnpf804l.v74.hjp-usenet3@hrunkner.hjp.at>
In reply to#4373
On 2018-05-08 11:05, Christoph M. Becker <cmbecker69@arcor.de> wrote:
> Am 08.05.2018 um 12:45 schrieb Jan Novak:
>> EDIT (und Problem gelöst):
>> Das Problem lag wohl daran, dass ich - zu Testzwecken - die Dateien nach
>> /tmp kopieren wollte (als Zielverzeichnis). Das scheint nicht zu gehen.
>> Wenn ich als Zielverzeichnis etwas ausserhalb von /tmp wähle,
>> funktioniert es.
>
> Das liegt vermutlich an der open_basedir Einstellung, siehe
><http://www.php.net/manual/de/function.move-uploaded-file.php#refsect1-function.move-uploaded-file-notes>.

Nein, das liegt wahrscheinlich daran, dass auf neueren Debian-Systemen
der Apache mit einem privaten /tmp gestartet wird:

% grep Private /lib/systemd/system/apache2.service
PrivateTmp=true

Das Directory, das die Apache-Prozesse unter /tmp sehen, ist also nicht
das selbe, das der Rest des Systems unter /tmp sieht.

        hp

-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4375 — Re: GELÖST: File Upload mit systemd private temp

FromJan Novak <repcom@gmail.com>
Date2018-05-10 10:46 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<pd10tl$kej$1@news.albasani.net>
In reply to#4374
Am 10.05.2018 um 10:19 schrieb Peter J. Holzer:
> On 2018-05-08 11:05, Christoph M. Becker <cmbecker69@arcor.de> wrote:
>> Am 08.05.2018 um 12:45 schrieb Jan Novak:
>>> EDIT (und Problem gelöst):
>>> Das Problem lag wohl daran, dass ich - zu Testzwecken - die Dateien nach
>>> /tmp kopieren wollte (als Zielverzeichnis). Das scheint nicht zu gehen.
>>> Wenn ich als Zielverzeichnis etwas ausserhalb von /tmp wähle,
>>> funktioniert es.
>>
>> Das liegt vermutlich an der open_basedir Einstellung, siehe
>> <http://www.php.net/manual/de/function.move-uploaded-file.php#refsect1-function.move-uploaded-file-notes>.
> 
> Nein, das liegt wahrscheinlich daran, dass auf neueren Debian-Systemen
> der Apache mit einem privaten /tmp gestartet wird:
> 
> % grep Private /lib/systemd/system/apache2.service
> PrivateTmp=true
> 
> Das Directory, das die Apache-Prozesse unter /tmp sehen, ist also nicht
> das selbe, das der Rest des Systems unter /tmp sieht.

Ja, genau so ist es!


Jan

[toc] | [prev] | [next] | [standalone]


#4376 — Re: GELÖST: File Upload mit systemd private temp

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2018-05-19 20:22 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<2436074.mvXUDI8C0e@PointedEars.de>
In reply to#4374
Peter J. Holzer wrote:

> % grep Private /lib/systemd/system/apache2.service
> PrivateTmp=true
> 
> Das Directory, das die Apache-Prozesse unter /tmp sehen, ist also nicht
> das selbe, das der Rest des Systems unter /tmp sieht.

Autsch!  Systemd ist/hat einfach ein völlig krankes "Konzept".
 
-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#4377 — Re: GELÖST: File Upload mit systemd private temp

FromArno Welzel <usenet@arnowelzel.de>
Date2018-05-23 22:01 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<fmlvl7Fc7cfU1@mid.individual.net>
In reply to#4376
Thomas 'PointedEars' Lahn:

> Peter J. Holzer wrote:
> 
>> % grep Private /lib/systemd/system/apache2.service
>> PrivateTmp=true
>>
>> Das Directory, das die Apache-Prozesse unter /tmp sehen, ist also nicht
>> das selbe, das der Rest des Systems unter /tmp sieht.
> 
> Autsch!  Systemd ist/hat einfach ein völlig krankes "Konzept".

Dass /tmp ein global für alle Prozesse identisches Verzeichnis ist,
halte ich nicht für wesentlich sinnvoller. Eigentlich sollte sowieso
jeder Prozess ein lokales Verzeichnis für diesen Zweck haben.


-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4378 — Re: GELÖST: File Upload mit systemd private temp

FromMarkus Grob <snoopy@ilnet.ch>
Date2018-06-11 17:54 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<pfm5vq$lhc$2@dont-email.me>
In reply to#4377
Arno Welzel schrieb:

> Dass /tmp ein global für alle Prozesse identisches Verzeichnis ist,
> halte ich nicht für wesentlich sinnvoller. Eigentlich sollte sowieso
> jeder Prozess ein lokales Verzeichnis für diesen Zweck haben.

Bin ich nicht dafür. Vor allem da "kein" Programm aufräumt, ist es 
sinnvoller, alles "global" zu haben. Kann ja jeder sein eigenes 
Unterverzeichnis nehmen. Wenn ich aufräumen will, brauche ich aber nur 
an einem Ort zu schauen. Sonst wächst überall der Datenmüll.
Manche machen daher /tmp nur noch als ramdrive, doch dies halte ich auch 
wieder für übertrieben.

Gruss, Markus

[toc] | [prev] | [next] | [standalone]


#4379 — Re: GELÖST: File Upload mit systemd private temp

FromClaus Reibenstein <4spamersonly@kabelmail.de>
Date2018-06-11 19:16 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<fo7p45FloghU1@mid.individual.net>
In reply to#4378
Markus Grob schrieb am 11.06.2018 um 17:54:

> Manche machen daher /tmp nur noch als ramdrive, doch dies halte ich auch 
> wieder für übertrieben.

Kommt drauf an. Wenn genügend RAM verfügbar ist, spricht eigentlich
nichts gegen eine RAM-Disk, aber vieles dafür:

 - Sie ist deutlich schneller als eine SSD oder gar eine HD.
 - Sie schont die Datenträger.
 - Sie erspart das lästige Aufräumen.

Mein Rechner hat 32 GB RAM. Davon habe ich 10 GB für die RAM-Disk
abgezwackt. Bleiben immer noch 22 GB übrig. Reicht auch für aktuelle
Spiele locker aus.

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#4380 — Re: GELÖST: File Upload mit systemd private temp

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2018-06-11 19:35 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<slrnphtcni.rfc.hjp-usenet3@hrunkner.hjp.at>
In reply to#4379
On 2018-06-11 17:16, Claus Reibenstein <4spamersonly@kabelmail.de> wrote:
> Markus Grob schrieb am 11.06.2018 um 17:54:
>> Manche machen daher /tmp nur noch als ramdrive, doch dies halte ich auch 
>> wieder für übertrieben.
>
> Kommt drauf an. Wenn genügend RAM verfügbar ist, spricht eigentlich
> nichts gegen eine RAM-Disk, aber vieles dafür:
>
>  - Sie ist deutlich schneller als eine SSD oder gar eine HD.
>  - Sie schont die Datenträger.
>  - Sie erspart das lästige Aufräumen.
>
> Mein Rechner hat 32 GB RAM. Davon habe ich 10 GB für die RAM-Disk
> abgezwackt. Bleiben immer noch 22 GB übrig.

Im Normalfall noch viel mehr. tmpfs[1] wächst bei Bedarf bis zur
konfigurierten Maximalgröße und schrumpft auch wieder. Sofern Du da
nicht wirklich 10 GB an Daten drauf hast, braucht Deine RAM-Disk nicht
wirklich 10 GB RAM. Default für tmpfs ist übrigens der halbe
Hauptspeicher.

        hp

[1] Ich nehme jetzt ganz frech an, dass Du Linux verwendest.

-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp@hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

[toc] | [prev] | [next] | [standalone]


#4381 — Re: GELÖST: File Upload mit systemd private temp

FromClaus Reibenstein <4spamersonly@kabelmail.de>
Date2018-06-11 20:23 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<fo7t1dFmgnpU1@mid.individual.net>
In reply to#4380
Peter J. Holzer schrieb am 11.06.2018 um 19:35:


> On 2018-06-11 17:16, Claus Reibenstein <4spamersonly@kabelmail.de> wrote:
>
>> Mein Rechner hat 32 GB RAM. Davon habe ich 10 GB für die RAM-Disk
>> abgezwackt. Bleiben immer noch 22 GB übrig.
>
> Im Normalfall noch viel mehr. tmpfs[1] wächst bei Bedarf bis zur
> konfigurierten Maximalgröße und schrumpft auch wieder.

Leider habe ich kein tmpfs, sondern die SoftPerfect RAM Disk in der
Version 3.4.8 (die letzte Freeware-Version). Die belegt konstant die 10
GB, was ich aber durchaus verschmerzen kann.

Wenn Du eine dynamische RAM-Disk für Windoof kennst, lass es mich wissen.

> [1] Ich nehme jetzt ganz frech an, dass Du Linux verwendest.

Nur als Gastsysteme unter VirtualBox, da ich aus beruflichen Gründen
noch auf Windows als Hostsystem angewiesen bin. Und dann sind da auch
noch die vielen Spiele ...

Aber in 2½ Jahren gehe ich ja in Rente, und dann wird sowieso alles ganz
anders ;-)

Gruß
Claus

[toc] | [prev] | [next] | [standalone]


#4382 — Re: GELÖST: File Upload mit systemd private temp

FromArno Welzel <usenet@arnowelzel.de>
Date2018-06-14 02:40 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<fodrr5FqimjU2@mid.individual.net>
In reply to#4378
Markus Grob:

> Arno Welzel schrieb:
> 
>> Dass /tmp ein global für alle Prozesse identisches Verzeichnis ist,
>> halte ich nicht für wesentlich sinnvoller. Eigentlich sollte sowieso
>> jeder Prozess ein lokales Verzeichnis für diesen Zweck haben.
> 
> Bin ich nicht dafür. Vor allem da "kein" Programm aufräumt, ist es 
> sinnvoller, alles "global" zu haben. Kann ja jeder sein eigenes 
> Unterverzeichnis nehmen. Wenn ich aufräumen will, brauche ich aber nur 

Ja, von mir aus ein Unterverzeichnis in /tmp. Mir ging es darum, dass
nicht jedes Programm in das *selbe* Verzeichnis schreibt und
insbesondere auch aus diesem Verzeichnis alles *lesen* darf.


-- 
Arno Welzel
https://arnowelzel.de
https://de-rec-fahrrad.de
http://fahrradzukunft.de

[toc] | [prev] | [next] | [standalone]


#4383 — Re: GELÖST: File Upload mit systemd private temp

FromMarkus Grob <snoopy@ilnet.ch>
Date2018-06-14 23:33 +0200
SubjectRe: GELÖST: File Upload mit systemd private temp
Message-ID<pfumve$qu9$1@dont-email.me>
In reply to#4382
Arno Welzel schrieb:

> Ja, von mir aus ein Unterverzeichnis in /tmp. Mir ging es darum, dass
> nicht jedes Programm in das *selbe* Verzeichnis schreibt und
> insbesondere auch aus diesem Verzeichnis alles *lesen* darf.

Klar, doch dafür gibt es ja unterdessen ganz viele komplizierte 
Rechtesysteme, damit man sich nicht mehr mit diesen einfachen Sachen wie 
Gruppenberechtigung rumschlagen muss, welche dieses Problem meiner 
Meinung nach sauber lösen würden ;-)

Gruss, Markus

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.php


csiph-web