Beiträge von t.maffert

    Na denn...


    $response->customers->CustomerDetails->id


    Damit hat es funktioniert :) Juhu danke



    Das "Problem" ist, dass PHP das Objekt "customers" in diesem Fall nicht als Array, sondern als einfaches Objekt interpretiert. Daher schlägt der Zugriff via "customers[0]" dann fehl.
    Eine mögliche Lösung wäre, einen expliziten Typecast zu machen:

    Code
    $response->customers = array($response->customers);


    Wenn die Suche (via CustomerGet) so ausgeführt wird dass es nur einen Ergebnisdatensatz geben kann, dann kann man theoretisch auch direkt auf das customers-Objekt zugreifen (also ohne "[0]") - finde ich persönlich aber nicht sehr sauber.


    Ahhhh, okay. Ich muss gestehen ich bin in PHP nicht ganz so fit. Vielen lieben Dank, ich teste das mal! =)

    Laut Handbuch gibt CustomerGet ein Array zurück. Also sollte die Zeile in etwa so lauten:

    PHP
    $customer_id = $response->customers[0]->id


    Bekomm dann immer folgendes: PHP Fatal error: Cannot use object of type stdClass as array in /root/testo.php on line 53
    Info: testo.php ist das o.g. Script und Zeile 53 "

    PHP
    $customer_id = $response->customers[0]->id

    " ;)


    einfach ein "var_dump($response);" einstreuen und schauen, was wirklich ausgegeben wird.


    Ich bekomme tatsächlich eine Ausgabe, sogar die id wird angezeigt:
    object(stdClass)#2 (1) {
    ['customers']=>
    object(stdClass)#3 (1) {
    ['CustomerDetails']=>
    object(stdClass)#4 (7) {
    ['id']=>
    string(12) "cAsaMQdGmVAy"
    ['cid']=>
    int(10001)
    ['owner_c']=>
    string(12) "cL4D3Vylwc2X"
    ['admin_c']=>
    string(12) "cL4D3Vylwc2X"
    ['billing_c']=>
    string(12) "cL4D3Vylwc2X"
    ['locked']=>
    int(0)
    ['subscription']=>
    string(9) "web12323"
    }
    }
    }

    Ich bin gerade dabei ein Script zu erstellen was Produkte für die Kunden anlegt bzw. deren zuweist. Für dieses Vorhaben gibt es ja die SOAP Schnittstelle und „HostingSubscriptionAdd“. Die setzt allerdings die „customerid“ voraus, die ich ja durch „CustomerGet“ herausbekommen kann. Allerdings bekomme ich es nicht hin (egal was ich da irgendwie versuche) die „customerid“ herauszubekommen. Habt ihr eine Idee was in dem Script falsch ist? Der gibt einfach immer ein Nullwert aus und so lässt sich das Produkt nicht zuweisen .. :(


    Guten Tag,


    ist es irgendwie möglich beim anlegen eines FTP-Accounts nicht mit einem Buchstaben zu beginnen sondern mit einer Zahl? Beim Anlegen sagt Liveconfig (auch über die API) immer "Ungültiger Benutzername" bzw. "Invalid login"

    Wie schon von HBO vermutet ist es ein CentOS. Die RPMs habe ich via --downloadonly aus dem Repository geladen, PHP passend entpackt und da dachte ich, das würde dann funktionieren.


    Nachdem ich aber nun PHP kompiliert und das passende Verzeichnis angegeben habe, funktioniert es!


    Ok das Fazit ist also: PHP kompilieren und alles ist gut! ;) Vielen Dank für die Hilfe/Infos!

    Nö, sollte es nicht.
    Die PHP-Versionen wurden offenbar so compiliert, dass sie in /etc/php.d noch nach zusätzlichen ini-Dateien suchen.


    Also diesen Ordner aufräumen und alle Extensions (warum man das auch immer will) direkt in LiveConfig verwalten, wodurch die Anweisungen mit in die Kunden-php.ini aufgenommen werden.


    Hm könnte sein. Warum? Weil nicht alle Module die sich jetzt in /etc/php.d befinden (PHP5) mit PHP7 und 7.1 funktionieren, da vermutich andere Version der Module ..


    ich habe allerdings meine Zweifel, ob da auch alle php-binarys da liegen,wo sie sollen, und nicht die zuletzt installierte die anderen überschrieben hat.


    Ne die wurden ja getrennt runtergeladen!


    --


    Habe mal Testweise auf einem Testsystem die "/usr/lib/liveconfig/lua/apache.lua" angepasst, so das in der php-fcgi-starter oben "export PHP_INI_SCAN_DIR=/usr/local/php/7.0/etc/php.d/" drin steht. Nun zeigt die PHP-Info alles passend an ..



    Vielleicht habe ich da auch einfach nur ein Verständnisproblem.


    Wie macht ihr das denn mit den Modulen? Ihr habt doch sicherlich nicht nur ein Ordner für die Module, für alle PHP-Versionen oder?

    Achso
    Das habe ich auch schon probiert, das wird ignoriert :S


    In der php.ini von einem Testweb zeigt auch weiterhin alles auf /etc/php.d, obwohl die Pfade (z.b. für gd > /usr/local/php/7.0/etc/php.d/gd.ini) angepasst worden sind.


    Code
    PHP Version 7.0.17
    System 	Linux liveconfigtest 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64
    Build Date 	Mar 19 2017 14:34:35
    Server API 	CGI/FastCGI
    Virtual Directory Support 	disabled
    Configuration File (php.ini) Path 	/etc
    Loaded Configuration File 	/var/www/web110/conf/php70/php.ini
    Scan this dir for additional .ini files 	/etc/php.d
    Additional .ini files parsed 	/etc/php.d/curl.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/soap.ini, /etc/php.d/sqlite3.ini, /etc/php.d/sysvmsg.ini, /etc/php.d/sysvsem.ini, /etc/php.d/sysvshm.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlrpc.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini


    Komischerweise steht in der php.ini, die sich im conf Ordner unter der passenden PHP-Version berfindet, die Extension drin (habe es mal mit gd und phar probiert)


    gd = /usr/local/php/7.0/usr/lib64/php/modules/gd.so
    phar = /usr/local/php/7.0/usr/lib64/php/modules/phar.so

    Genau. Das verstehe ich ja noch, nur leider bekomme ich weiterhin die obrigen Fehlermeldungen, wenn ich den "liveconfig --diag" Befehl ausführe ...


    Muss vllt. in der "/usr/lib/liveconfig/lua/custom.lua" noch irgendwie der Modulepfad zu den passenden PHP-Versionen eingetragen werden? Denn so wie das ausschaut, guckt dieser immer in "/usr/lib64/php/modules/" nach, was ja falsch wäre da die hier:


    /usr/local/php/7.0/usr/lib64/php/modules/
    /usr/local/php/7.1/usr/lib64/php/modules/


    die richtigen wären .. :S

    Hallo,


    ich möchte gerne verschiedene PHP-Versionen anbieten und dazu die passenden Module. Das einrichten und das switchen funktioniert durch die Anleitung https://www.liveconfig.com/wiki/de/multiphp einwandfrei. Allerdings verstehe ich nicht ganz, wo ich den Ordner der PHP-Module angeben kann?


    Bei mir wäre das:
    /usr/local/php/5.6/usr/lib64/php/modules/
    /usr/local/php/7.0/usr/lib64/php/modules/
    /usr/local/php/7.1/usr/lib64/php/modules/


    Soweit ich weiß muss auch noch unter Admin > Hosting > PHP-Einstellungen die Extension angelegt werden, dennoch spuckt mir "liveconfig --diag" immer folgendes aus:



    Deshalb vermute ich, das man irgendwo den Module Ordner für die verschiedenen Versionen definieren muss .. ;)


    Ein Eintragen des richtigen Pfads in der Modul ini (z.B. /usr/local/php/7.0/etc/php.d/phar.ini) hat da leider nicht geholfen :(