Announcement

Collapse
No announcement yet.

mit PHP in Mysql datenverzeichnis schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mit PHP in Mysql datenverzeichnis schreiben

    Hallo,
    bin leider nicht so gut mit dem Rechtesystem von Linux vertraut. Muß aber einen Rootserver administrieren. Habe folgendes Problem. Ich möchte mit LOAD DATA Tabellen in einer Mysql-Datenbank aktualisieren. Ein PHP-Script nimmt die Daten in Empfang, welche ich per HTTP poste. Diese werden als csv Datei in einem Unterordner der Dokumentroot abgelegt. Leider kann mysql den LOAD Befehl nicht ausführen, das es keine Rechte auf das Uploadverzeichnis hat. Nun dachte ich ich kopiere die Datei mit dem Script in das Datenverzeichnis von MYSQL. Das klappt allerdings auch nicht, da der Scriptausführende USER 'wwwrun' keine Recht auf dieses Verzeichnis hat. Wie kann man dieses Problem lösen?
    Vielen Dank im Voraus
    Conny

  • #2
    Wie kann man dieses Problem lösen?
    - Einem von beiden das entsprechende Recht geben
    - Die CSV-Datei über ein PHP-Script verarbeiten und in die DB schreiben
    Christian

    Comment


    • #3
      gemeinsame gruppe für geshartes verzeichnis

      Hallo,

      die einfachste Variante wäre, das entsprechende Verzeichnis und alle darunter liegendne Dateien/Verzeichnisse "World-Readable" zu machen, Befehl: chmod -R o+r <Verzeichnisname>. Dann kann jeder User auf dem Server die Datei lesen.

      Wenn Dir das zu unsicher ist, kannst du eine neue Gruppe einrichten
      groupadd ...
      Dann die user mysql und wwwrun in die Gruppe adden
      usermod ...
      Dann das Verzeichnis der Gruppe zuweisen
      chgrp <Gruppenname> <Verzeichnisname>
      Und das Verzeichnis inkl. der Dateien für die Gruppe lesbar machen
      chmod -R g+r <Verzeichnisname>

      Gruß ngomo
      http://www.winfonet.eu

      Comment


      • #4
        Hallo Christian,
        Variante 2 ist momentan meine Notlösung. Allerdings muß der User, der die Aktualisierung von bis zu 10.000 Datensätzen auslöst etwas warten bis das Script fertig ist. Da ist der Massenimport mit LOAD DATA um längen schneller.

        Hallo ngomo,
        ich hatte natürlich auch den User mysql der Gruppe www zugeordnet und der Gruppe die entsprechenden Rechte rw-- erteilt. Mysql sagt dazu folgendes:
        Can't get stat of '/srv/www/vhosts/powersport24.de/httpdocs/Webservice/uploads/categories.csv'
        Nach meinen Recherchen bedeutet dies, dass mysql nicht auf die Datei zugreifen kann.
        Trotzdem vielen Dank erst mal
        Conny

        Comment


        • #5
          Hallo connysoft,

          Can't get stat of '/srv/www/vhosts/powersport24.de/httpdocs/Webservice/uploads/categories.csv'
          Dafür kann es aus meiner Sicht zwei Gründe geben:

          Entweder kann der mysql-Nutzer nicht in das Verzeichnis '/srv/www/vhosts/powersport24.de/httpdocs/Webservice/uploads/ reinschauen, d.h. in irgendeinem der Übergeordneten Verzeichnisse fehlt ihm das x-Recht oder das r-Recht.

          Oder: Dein PHP Script vergisst, den Schreibhandle auf die Datei abzugeben. Wenn ein Schreibhandle auf einer Datei ist, ist sie für den Lesezugriff durch andere Prozesse gesperrt.

          Gruß ngomo
          http://www.winfonet.eu

          Comment

          Working...
          X