Page 1 of 2

PHP Funktion aktivieren

Posted: Thu 1. Sep 2022, 12:22
by sfsolutions
Hallo liebe Keyhelp Community,

wie kann ich für einen Kunden diese PHP Function aktivieren?

set_time_limit()

Vielen Dank für Eure Hilfe.

Beste Grüße

Niels

Re: PHP Funktion aktivieren

Posted: Thu 1. Sep 2022, 12:45
by Tobi
Indem du sie nicht sperrst?

Re: PHP Funktion aktivieren

Posted: Thu 1. Sep 2022, 13:44
by Florian
Hallo,

seitens Keyhelp ist diese Funktion standardmäßig nicht deaktiviert.

Re: PHP Funktion aktivieren

Posted: Wed 21. Feb 2024, 21:43
by blickgerecht
Guten Abend,

ich bräuchte set_time_limit() auch für eine Installation, aber es ist offenbar deaktiviert bzw. nicht aktiviert.

Folgendes PHP-Skript habe ich für den Test verwendet. Damit klappt es abseits von Keyhelp (Shared Hosting bei Hetzner bspw.) einwandfrei – der angegebene Wert 900 wird auch ausgegeben:

Code: Select all

set_time_limit(900);
echo ini_get('max_execution_time');
In den disable_functions ist set_time_limit nicht aufgelistet. Habt ihr eine Idee, wie wir das aktivieren können?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 02:25
by Fezzi
Schon mal in der Benutzerverwaltung unter </>PHP bei (ganz runter scrollen) Zusätzliche PHP-Einstellungen die funktion hinzugefuegt?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 07:34
by blickgerecht
Wie wäre der Syntax, um dort eine Funktion zu aktivieren? Für „set_time_limit“ bin ich nirgends auf eine Option gestoßen, die man aktivieren könnte.

Die Angaben dort sehen ja eher so aus:

Code: Select all

display_errors = on
Gibt es da eine Option? :?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 08:09
by Florian
Hallo,

wo genau liegt denn das Problem? Die Funktion ist seitens Keyhelp nicht deaktiviert. Nur Funktionen in der "disable_functions"-Anweisung beim jeweiligen Benutzer sind nicht aktiv.

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 08:42
by blickgerecht
Florian wrote: Thu 22. Feb 2024, 08:09 Die Funktion ist seitens Keyhelp nicht deaktiviert. Nur Funktionen in der "disable_functions"-Anweisung beim jeweiligen Benutzer sind nicht aktiv.
Das hatte ich vorher auch gelesen, auch bei mir ist die Funktion nicht in der "disable_functions"-Anweisung aufgeführt:
Bildschirmfoto 2024-02-22 um 08.36.40.jpg

Allerdings würde ich davon ausgehen, dass folgende zwei Zeilen

Code: Select all

set_time_limit(900);
echo ini_get('max_execution_time');
eine Ausgabe von 900 erzeugen.

Es wird aber immer der Wert ausgegeben, der in den PHP-Einstellungen des Benutzers als max_execution_time angegeben ist.
Das ist, was eigentlich nicht sein sollte, wenn die Funktion set_time_limit funktionieren würde.
Zumindest kenne ich das so und so funktioniert es auch bspw. in einem Shared-Hosting-Tarif, den wir nutzen (bei einem anderen Anbieter).

Vielleicht hat jemand einen Tipp, wie ich das korrigieren kann. Oder habe ich etwas übersehen?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 08:50
by Florian
Hallo,

man kann einen administrativ gesetzten Parameter wie max_execution_time nicht via Script überschreiben.

https://www.php.net/manual/de/function. ... -limit.php

"Legt die Zeit in Sekunden fest, die ein Skript laufen darf. Ist diese Zeit abgelaufen, wird ein schwerwiegender Fehler zurückgegeben. Der Standard liegt bei 30 Sekunden, es sei denn max_execution_time wurde in php.ini gesetzt."

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:04
by blickgerecht
Das macht ja grundsätzlich Sinn, irritiert mich jedoch ziemlich.

Denn das hieße ja set_time_limit wäre eben doch "deaktiviert". Bei anderen Hostern im Shared Hosting ist auch max_execution_time gesetzt, kann aber bei aktivierter Funktion set_time_limit eben von einem Skript überschrieben werden.

Wie würde man denn set_time_limit mit Keyhelp nutzbar machen können?

Ergänzung:
Ich habe öfter gelesen, dass set_time_limit nicht funktioniert, falls PHP im "safe mode" läuft. Ist das evtl. der Fall und könnte man das für einen Benutzer deaktivieren?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:09
by Tobi
Sorry, aber warum willst du das?
Ich würde nicht wollen, dass die max_execution "einfach so" überschrieben werden kann.

Warum erhöhst du nicht einfach die max_execution statt dessen?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:20
by blickgerecht
Ich wäre nicht darauf gekommen, wenn wir nicht eine Software hätten, die das explizit nutzt und fordert. Wir nutzen zur Wordpress-Verwaltung "InfiniteWP". Damit kann man mehrere Wordpress-Seiten überwachen, klonen, Backups erstellen etc. Aktuell ist das noch bei Hetzner gehostet, ich wollte es aber gerne auf einen Keyhelp-Server umziehen. Dazu braucht es aber set_time_limit.

Der TO hatte ja offenbar auch Interesse daran, das zu "aktivieren" bzw. nutzbar zu machen. Daher wäre ich inzwischen einfach grundsätzlich daran interessiert, wieso set_time_limit nicht funktioniert und wir man es nutzbar machen kann.

Bei der Recherche bin ich auch darauf gestoßen, dass es eben trotz max_execution_time so funktionieren sollte, wie beschrieben. Bei vielen Hostern kann man es im Kundenmenü aktivieren. Bei Keyhelp scheint es allerdings nicht deaktiviert zu sein, aber trotzdem nicht zu funktionieren.

Die Einwände von euch machen Sinn, klar. Ich würde das auch nicht bei jedem Benutzer aktivieren wollen, auch nicht bei dem "Hauptserver" mit Kunden-Websites. Aber es sollte doch grundsätzlich klappen.

Danke auf jeden Fall schonmal für den ganzen Input und die Hilfe bis hierhin! :)

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:22
by Florian
Hallo,

das liegt ganz einfach daran, dass Keyhelp die Werte als php_admin_value setzt, welche nicht überschrieben werden dürfen.

Setzt man die Parameter mit php_value können sie überschrieben werden.

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:26
by blickgerecht
Ahja, das erklärt den Unterschied. Aber ich befürchte, es gibt keine "einigermaßen einfache" Lösung, das für einen Benutzer zu ändern, oder?

Re: PHP Funktion aktivieren

Posted: Thu 22. Feb 2024, 10:39
by Alexander
Wie lautet denn die Fehlermeldung, die du bekommst?

Erzeugt das einen Fatal-Fehler und lässt das Script nicht weiter ausführen?

Übergangsweise kannst du auch in die entsprechende PHP-FPM Datei gehen und die Zeile mit max_execution_time rausnehmen oder in der entsprechenden Zeile "php_admin_value" durch "php_value" ersetzen.

Die Datei liegt je nach verwendetet PHP-Version für die Domain hier

Code: Select all

/etc/php/<PHP-VERSION>/fpm/keyhelp_pool/<BENUTZERNAME>.conf
/opt/keyhelp/php/<PHP-VERSION>/etc/php-fpm.d/<BENUTZERNAME>_php<PHP-VERSION-KURZ>.conf
Anschließend den entsprechenden PHP-FPM Dienst neu starten.

(Das ist natürlich nicht updatesicher)