Open dguelden opened 1 month ago
Vielen Dank für die ausführliche Meldung! /usr/bin/php-cgi8.3
scheint eine CGI-Binary zu sein, das funktioniert nicht immer zuverlässig. Hast du auch eine CLI-Binary auf dem Server?
Zugang zur CLI besteht, da eigene Hardware, System, etc.
Anbei als Anlage beigefügt ergänzende Infos der CLI Ausgabe bzw. dem Trace-Log.
Insoweit weitere Infos benötigt werden, gerne anfragen.
Habe ein paar weiter Informationen aus den Error-Logs, siehe Anlage Im Rahmen des "Live-Monitoring" war zu sehen, dass bei Aufruf/Prüfung im Rahmen der Contao-Installation der Binaries:
a) /usr/sbin/php b) /usr/bin/php b) /usr/lib/cgi-bin/php
mittels Test aufgerufen werden.
Im Log gibt es den Hinweis auf die php.ini bzw. das setzen der Variable "cgi.force_redirect" auf eigene Gefahr. Getestet über die Variationen - apache, cgi, cli, fpm, keine Installation möglich. Ergebnis "Unexpexted Output".
Wäre ggf. die explizite Verwendung von "cgi.discard_path" in der php.ini eine mögliche Lösung als alternative zur Variable "REDIRECT_STATUS"?
Quelle --> https://www.php.net/security.cgi-bin
Ich meinte nicht "Zugang zur CLI" im Sinne von SSH. Sondern die PHP CLI Binary.
Allerdings schreibst du ja bereits von /usr/bin/php
, warum wird die nicht vom Contao Manager verwendet? Ist das ev. nicht dieselbe PHP-Version wie der Webserver?
Die PHP-Binaries lassen sich ganz regulär via SSH-Sitzung ausführen.
Die Installation des Webservers, wie auch von PHP erfolgt über die regulären Repositorien der Distribution, ebenso die Composer Installation. Sollte somit dieselbige PHP-Version sein, mit der der Webserver per Default konfiguriert ist und startet, insofern man nicht einen eigenen FCGI-Starter erstellt, etc.
Gerne hier noch einmal ein paar Info's bzw. zusammenfassend die Log-Auszüge vom letzten Testlauf:
Error_Log_Apache-FPM_25102024.txt Error_Log_Contao_FPM-PHP_25102024.txt Error_Log_Contao-Config-JSON_25102024.txt
An sich kurz zusammengefasst:
a) Aus der Apache-Error-Log:
mod_charset_lite.c(216): [client 127.0.0.1:56578] AH01448: incomplete configuration: src unspecified, dst unspecified, referer: https://
b) Aus der Contao-Error-Log:
app.ERROR: Unexpected output from "/usr/bin/php8.3 -q /var/www/
{"exception":"[object] (_ContaoManager\Symfony\Component\Process\Exception\RuntimeException(code: 0): Unexpected output from \"/usr/bin/php8.3 -q /var/www/
at phar:///var/www/
app.ERROR: Unexpected output from "/usr/bin/php -q /var/www/
{"exception":"[object] (_ContaoManager\Symfony\Component\Process\Exception\RuntimeException(code: 0): Unexpected output from \"/usr/bin/php -q /var/www/
at phar:///var/www/
app.ERROR: The command "'/usr/lib/cgi-bin/php8.3' '-q' '/var/www/
Exit Code: 255(Unknown error) Working directory: /var/www/
Output:
Security Alert!
The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled.
This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the - http://php.net/security.cgi-bin - manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit - http://php.net/install.windows - the manual page.
Error Output:
{"exception":"[object] (_ContaoManager\Symfony\Component\Process\Exception\ProcessFailedException(code: 0): The command \"'/usr/lib/cgi-bin/php8.3' '-q' '/var/www/
at phar:///var/www/
app.ERROR: The command "'/usr/sbin/php-fpm8.3' '-q' '/var/www/
Exit Code: 64(Unknown error)
Working directory: /var/www/
Output:
Usage: ... Error Output:
{"exception":"[object] (_ContaoManager\Symfony\Component\Process\Exception\ProcessFailedException(code: 0): The command \"'/usr/sbin/php-fpm8.3' '-q' '/var/www/
at phar:///var/www/
Ruft man dementsprechend via CLI den Test auf, erhält man als Meldung:
contao-manager/config.json does not match the expected JSON schema
bei Verwendung von Composer 2.7.7.
Aktualisierung am Rande. Die Installation via Composer 2.7.7 an sich ist funktional via CLI. Es lässt sich entsprechend dem Contao-Handbuch ein Projekt erstellen, etc. Nach weiteren Konfigurationsanpassungen, befüllen der Datenbank, erstellen des ersten Nutzers via CLI ist die Anmeldung am Backend, etc. wie gewohnt möglich.
Lediglich die Installation mittels dem Contao-Manager läuft auf Fehler auf bei Prüfung der PHP-Version, so dass die Installation nicht fortgeführt werden kann:
/pfad/zum/binary/php -q /var/www/.../.../public/contao-manager.phar.php test
Dies unabhängig ob als Binary - php, php-cgi, php8.3, php8.3-cgi, php-fpm8.3 - Verwendung findet.
Die wesentlichen Fehlermeldungen, insofern via CLI der "test" via Webserver vom Contao Manager in Version 1.8.9 aufgerufen wird:
a) php-fpm8.3
=> JSON Schema, Array value found, but an object is required / Exit Code: 64 (Unknown error)
b) php, php-cgi:
=> Unexpected output, object => contao-manager.phar.php/api/Process/PhpExecutableFinder.php:78 / Exit Code: 255 (Unknown error) => Security Alert! The PHP CGI cannot be accessed directly. => This PHP CGI binary was compiled with force-cgi-redirect enabled. => This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
Dies ist reproduzierbar unter Ubuntu Server 24.04 LTS.
Hallo, ich klinke mich hier ein, da ich heute ebenfalls Probleme seit dem Update des Managers auf 1.8.9 durchführen musste. Ist bei TimmeHosting die PHP-Version auf 7.4.33 (PHP-FPM) eingestellt, wird der Pfad zur PHP-Binary bei der Systemprüfung nicht mehr erkannt. Das war vorher nie ein Problem. Wenn das ein eigenes Ticket erfordert, sagt bitte Bescheid.
Hallo, ich klinke mich hier ein, da ich heute ebenfalls Probleme seit dem Update des Managers auf 1.8.9 durchführen musste. Ist bei TimmeHosting die PHP-Version auf 7.4.33 (PHP-FPM) eingestellt, wird der Pfad zur PHP-Binary bei der Systemprüfung nicht mehr erkannt. Das war vorher nie ein Problem. Wenn das ein eigenes Ticket erfordert, sagt bitte Bescheid.
TimmeHosting hat sich das Problem nach weiteren Beschwerden angesehen. Da es für Euch vielleicht interessant ist poste ich hier noch deren Antwort: "Die Ursache konnten wir auch bestimmen. Bei den Servern der "neueren" Generation, welche je nach Umstellung älterer Server ja auch schon einige Jahre in Benutzung sind, haben wir die Nutzung von "open_basedir" abgeschafft, da dieses Performance kostet und dennoch mit ein wenig Aufwand noch umgeh bar ist und somit keinen wirklichen Sicherheitsnutzen bringt. Als Alternative setzen wir auf den aktuellen Servern daher auf AppArmor, welches Zugriffe direkt auf Kernel-Ebene unterbindet.
Bei den älteren PHP Versionen, wie bspw. 7.4 gibt es nun noch ein paar Libraries, die wir zusätzlich kompilieren, um hier auf neuere Versionen zurückzugreifen als diese normalerweise vorhanden sind. Dies betrifft unter anderem die libssl, auf die der Contao Manager bzw. die PHP Cli Binary hier bei der Bestimmung/Prüfung der Pfade jedoch zugreifen muss.
Der Pfad zu diesen zusätzlichen Libraries ist aktuell jedoch nicht für die Webseiten Prozesse freigegeben, da diese aus dem PHP-FPM Kontext normalerweise nicht benötigt werden"
sie haben vor, den Pfad ins Standardsetup aufzunehmen. LG
Affected version(s):
<= 1.8.9
Description:
Contao Installation schlägt fehl / nicht möglich:
Trace-Output:
a) Warning: Undefined array key "argv" b) Warning: Trying to access array offset on null c) Deprecated: realpath(): Passing null to parameter 1 ($path) of type string is deprecated
Details, siehe Dateianhänge:
Bug-Report_Ausgabe_Erstinstallation.pdf Bug-Report_PHP-8.3.6_phpinfo.pdf