Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CM 1.2.0 erkennt PHP-Binary nicht mehr #466

Closed
exscorp opened this issue Oct 10, 2019 · 16 comments
Closed

CM 1.2.0 erkennt PHP-Binary nicht mehr #466

exscorp opened this issue Oct 10, 2019 · 16 comments

Comments

@exscorp
Copy link

exscorp commented Oct 10, 2019

Affected version(s)
1.2.0

Description
gestern mit der Version 1.1.8 und drunter funktionierte die Individuelle Konfiguration für PHP-Binary ohne Probleme. Wenn ich unter Configuration » Andere … ausgewählt hatte, erkannte CM die PHP-Binary automatisch und nahm diese auch an.

Gerade hat der CM auf 1.2.0 aktualisiert und seit dem erkennt er keine PHP-Binary und nimmt auch keine an, wenn ich diese Manuell eintrage.

Habe auch versucht alles vom CM zu löschen und neu zu installieren ohne Erfolg.

» php contao-manager.phar.php about gibt folgendes aus:

Contao Manager
Version 1.2.0
Environment prod
Debug false
Cache directory phar:///home/demo/public_html/web/contao-manager.phar.php/api/Resources/cache
Contao directory /home/demo/public_html/web
Data directory /home/demo/public_html/web/contao-manager

PHP
Version 7.3.9
Architecture 64 bits
Server API cli
Intl locale de_DE
Timezone UTC
Binary Path /opt/cpanel/ea-php73/root/usr/bin/php

Edit: eine Fehlermeldung gibt der CM nicht aus aber der Server gibt folgendes aus:

[Fri Oct 11 12:04:05.690876 2019] [fcgid:warn] [pid 11379:tid 139912298927872] [client xx.xx.xx.xx:53364] mod_fcgid: stderr: [2019-10-11 10:04:05] app.ERROR: Unexpected output from "/opt/cpanel/ea-php73/root/usr/bin/php -q /home/demo/public_html/web/contao-manager.phar.php test": \x1f\x8b\b, referer: https://domain.de/contao-manager.phar.php/

@ngdot
Copy link

ngdot commented Oct 11, 2019

Gleiches Problem hier, allerdings bei einer Neuinstallation.
Der Prozess schlägt bei "Serverkonfiguration" fehl und schmeißt die untenstehende Fehlermeldung.

Wenn ich eine ältere contao-manager.phar.php benutze, findet er meinen individuellen PHP-Pfad und alles funktioniert problemlos.

Hier meine about:

Contao Manager
Version 1.2.0
Environment prod
Debug false
Cache directory phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Resources/cache
Contao directory /usr/share/nginx/html/web
Data directory /usr/share/nginx/html/web/contao-manager

PHP
Version 7.3.10-1+ubuntu16.04.1+deb.sury.org+1
Architecture 64 bits
Server API cli
Intl locale en_US
Timezone UTC
Binary Path /usr/bin/php7.3

2019/10/11 09:17:10 [error] 28144#28144: *389 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: explode() expects parameter 2 to be string, bool given in phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php:129 Stack trace: #0 phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php(129): explode(':', false) #1 phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php(71): Contao\ManagerApi\Process\PhpExecutableFinder->findExecutables() #2 phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Controller/Server/ConfigController.php(108): Contao\ManagerApi\Process\PhpExecutableFinder->find() #3 phar:///usr/share/nginx/html/web/contao-manager.phar.php/api/Controller/Server/ConfigController.php(87): Contao\ManagerApi\Controller\Server\ConfigController->getTestResult() #4 phar:///usr/share/nginx/html/web/contao-manager.phar.php/vendor/symfony/http-kernel/HttpKernel.php(151): Contao\ManagerApi\Controller\Server\ConfigController->__...PHP message: [2019-10-11 09:17:10] request.INFO: Matched route "contao_managerapi_server_config__invoke". {"route":"contao_managerapi_server_config__invoke","route_parameters":{"_route":"contao_managerapi_server_config__invoke","_controller":"Contao\\ManagerApi\\Controller\\Server\\ConfigController"},"request_uri":"https://192.168.50.11/contao-manager.phar.php/api/server/config","method":"GET"} []PHP message: [2019-10-11 09:17:10] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"api","authenticators":2} []PHP message: [2019-10-11 09:17:10] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"api","authenticator":"Contao\\ManagerApi\\Security\\JwtAuthenticator"} []PHP message: [2019-10-11 09:17:10] security.DEBUG: Calling getCredentials() on guard authenticator. {"firewall_key":"api","authenticator":"Contao\\ManagerApi\\Security\\JwtAuthenticator"} []PHP message: [2019-10-11 09:17:10] security.DEB

@aschempp
Copy link
Member

Ich kann den Fehler nur reproduzieren wenn mir jemand von euch einen SSH-Zugang zum entsprechenden Server per E-Mail senden kann (Mail in meinem GitHub Profil).

@Metis77
Copy link

Metis77 commented Oct 18, 2019

gleicher Fehler auf default Plesk Servern.

Ist ein SSH Zugang noch benötigt?

@ngdot
Copy link

ngdot commented Oct 18, 2019

Ich kann leider keinen bereitstellen, Problem tritt lokal in meiner VM auf. Könnte höchstens die Vagrantfile inkl. provision zur Verfügung stellen.

@aadlung
Copy link

aadlung commented Oct 22, 2019

Hi,

schaut man sich die Datei PhpExecutableFinder.php an - sieht man dass sie sich auf ein getenv('PATH') verlässt. Das gibt's normalerweise in PHP z.B. über FPM garnicht. Generell, das ganze Routing über die phar.php mit den sub-pfaden erfodert spezielle Nginx/FPM Konfiguration um das zu erlauben.

In dem PHP pool (php-fpm) hat bei mir folgendes geholfen:

env["PATH"] = $PATH

LG
Andy

@aschempp
Copy link
Member

PATH sollte keine Anforderung sein, das wir nur genutzt um Binaries zu finden. Wenn du einen Pfad explizit angibst kommen die entsprechenden Methoden nicht zum Zug. Die Methode findBestBinary wird direkt mit dem angegebenen Pfad ausgeführt.

@aadlung
Copy link

aadlung commented Oct 22, 2019

OK - bei meinem Server hat das zumindest geholfen die PFAD Variable hinzuzufügen, da ich dem Browser bei /contao-manager.phar.php ja keine Infos weiter mitgegeben habe.

@aschempp
Copy link
Member

wie meinst du das? Du hast in den Hosting-Einstellungen keinen Pfad zum Binary von Hand eingegeben?

@aadlung
Copy link

aadlung commented Oct 22, 2019

So weit kam ich garnicht - der Fehler trat vorher auf, bei "Serverkonfiguration" bekam die Zeile das rote X und danach kommt ein Fullscreen Overlay mit dem Fehler. Mit der PATH variable klappts.

ERROR 500 Error: Uncaught TypeError: explode() expects parameter 2 to be string, bool given in phar:///var/www/example/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php:129 Stack trace: #0 phar:///var/www/example/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php(129): explode(':', false) #1 phar:///var/www/example/web/contao-manager.phar.php/api/Process/PhpExecutableFinder.php(71): Contao\ManagerApi\Process\PhpExecutableFinder->findExecutables() #2 phar:///var/www/example/web/contao-manager.phar.php/api/Controller/Server/ConfigController.php(108): Contao\ManagerApi\Process\PhpExecutableFinder->find() #3 phar:///var/www/example/web/contao-manager.phar.php/api/Controller/Server/ConfigController.php(87): Contao\ManagerApi\Controller\Server\ConfigController->getTestResult() #4 phar:///var/www/example/web/contao-manager.phar.php/vendor/symfony/http-kernel/HttpKernel.php(151): Contao\ManagerApi\Controller\Server\ConfigController->__invoke(Object(Symfony\Component\HttpFoundation\Request)) #5 phar:///var/www/example/web

@aschempp
Copy link
Member

Ah, das bezieht sich auf einen zweiten Fehler. Gibt es bei dir/PHP-FPM in den Environment Variablen irgend einen Pfad den wir nutzen können, da PATH nicht existiert?

@aadlung
Copy link

aadlung commented Oct 22, 2019

Nein, die normale LAMPP/NginX Konfiguration bietet keinerlei Pfade aus der Linux Umgebung wie eine $PATH Variable.
Aber wie gesagt - für mich ist das Problem gelöst, wobei das natürlich mein eigener Server ist wo das leicht geht.

@aschempp
Copy link
Member

das initiale Problem von @exscorp ist damit aber wohl (noch) nicht gelöst…

@aadlung
Copy link

aadlung commented Oct 22, 2019

das initiale Problem von @exscorp ist damit aber wohl (noch) nicht gelöst…

das stimmt - das hat damit nichts zu tun

@exscorp
Copy link
Author

exscorp commented Oct 23, 2019

SSH-Zugang darf ich bei diesem Kundenserver nicht bereitstellen, kann aber versuchen zu debuggen wenn du mir eine kurze Anleitung gibst.

@kroerig
Copy link

kroerig commented Jan 20, 2020

Ich hatte diesen Effekt gerade auch mit 1.2.2. Hatte PHP von 7.2 auf 7.3 geändert und bisher hat der CM den richtigen Pfad zum Binary selbst gefunden.

@exscorp
Copy link
Author

exscorp commented Feb 10, 2020

Hallo, das Problem hat sich erledigt.

Habe die Tage nochmal das Forum und die issues hier durchgeschaut und mir ist die Sache mit dem "zlib.output_compression" hier #348 aufgefallen. Da dies auf dem Server auch aktiv ist, habe ich es testweise deaktiviert. Jetzt wird die Binary wieder direkt erkannt und akzeptiert.

@kroerig vielleicht ist es bei dir auch so? Ansonsten kann das Ticket geschlossen werden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants