Ergebnis 1 bis 4 von 4

Thema: PHP Could not open Input file

  1. #1
    VIP Team
    Registriert
    May 2015
    Beiträge
    1,024
    Gefällt mir!
    862
    Du gefällst: 374

    PHP Could not open Input file

    Hallo,

    folgendes Problem existiert bei einem Projekt an dem ich arbeite...

    Aufbau ...

    - .sh die checkt ob eine "Instanz" von einem Skript läuft ... Wenn ja passiert nichts wenn nicht wird eine neue Instanz erstellt
    - Fuelphp Task "runner" der "endlos" läuft und so aussieht

    Code:
    $bin = 'php';
                if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') $bin = 'E:/xampp/php/php.exe';
                
                $oil_path = realpath(__DIR__.'../../../').'\oil';
            
                foreach($query->as_object()->execute() as $foo)
                {
                    $output = shell_exec($bin.' '.$oil_path.' refine liebe foo='.$foo->id);
     \Cli::write($output);
                }
    Das Problem das Dingen schreibt immer Could not open input file: oil ins Log file (also die SH) ich weiß null wieso ...

    Wenn ich den runner task über console ausführe läuft alles wie erwartet.
    .:: Well, duh! ::.

  2. #2
    Junior
    Registriert
    Jul 2016
    Beiträge
    40
    Gefällt mir!
    2
    Du gefällst: 10
    Mach mal:
    Code:
    echo $bin.' '.$oil_path.' refine liebe foo='.$foo->id
    über dem exec bzw. schau dir im Debugger an ob das alles stimmt.

    Eventuell ist der \ bei "\oil" falsch unter Linux. Bin mir nicht sicher da ich nie PHP im Zusammenhang mit Windows verwendet habe.
    Sollte heißen:
    Code:
    $oil_path = realpath(__DIR__.'../../../').'/oil';

  3. Diesen Mitgliedern gefällt dieser Beitrag:


  4. #3
    Ultimatives Spiderschwein Avatar von jbs
    Registriert
    Jun 2015
    Beiträge
    209
    Gefällt mir!
    151
    Du gefällst: 195
    Code:
                $bin = 'php';
                if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') $bin = 'E:/xampp/php/php.exe';
                define('DS', DIRECTORY_SEPARATOR);
                
                $oil_path = realpath(dirname(__FILE__).DS.'..'.DS.'..'.DS.'..'.DS).DS.'oil';
                if($oil_path === FALSE) {
                    return '$oil_path not found...';
                }
            
                foreach($query->as_object()->execute() as $foo)
                {
                    $output = shell_exec($bin.' '.$oil_path.' refine liebe foo='.$foo->id);
     \Cli::write($output);
                }
    Versuchs mal damit. Ist zwar nicht schön, sollte seinen Zweck aber erfüllen.

    Realpath gibt false zurück, wenn er Probleme hat, den Pfad aufzulösen oder die Ordnerrechte nicht stimmen.

    Weitere Info in der PHP Doku:
    The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.

  5. Diesen Mitgliedern gefällt dieser Beitrag:


  6. #4
    Junior
    Registriert
    May 2016
    Beiträge
    115
    Gefällt mir!
    12
    Du gefällst: 40
    nutzt du fastcgi im nginx?

    prüf ob die fastcgi params im configs mitgeladen ist...

Ähnliche Themen

  1. (Biete) - Leech Slots open
    Von Drakan im Forum Trader / Uploader (FTP/FXP/...)
    Antworten: 2
    Letzter Beitrag: 26.09.2019, 21:55
  2. Open Source Linkcrypter
    Von zerox im Forum Projektideen
    Antworten: 28
    Letzter Beitrag: 22.02.2017, 21:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org