web-dev-qa-db-fra.com

Puis-je changer default_socket_timeout à partir de mon code php?

Dans mon script php je restaure les sauvegardes de la base de données db2. Ils deviennent de plus en plus gros. Alors maintenant, je recevais 500 Server Error après + -30min après l'exécution du script. Il y avait cette ligne dans (mod_fastcgi.c.3352) response not received, request sent: 634 on socket: tcp:127.0.0.1:9090 for /wrational/restoredb.php?mode=restore&database=RATIONAL, closing connection dans le fichier php-errors.log.

Je pensais que régler `set_time_limit (6000); 1 réglerait le problème, mais ce n'est pas le cas. 

Augmenter default_socket_timeout dans le fichier php.ini a fait l'affaire.

Est-il possible de changer default_socket_timeout du code php?

13
Radek

Avec cette commande PHP:

ini_set("default_socket_timeout", 6000);

Ou ajoutez/mettez à jour le fichier .htaccess avec cette ligne:

php_value default_socket_timeout 6000

Vérifiez la valeur actuelle avec phpinfo()

29
huysentruitw

méfiez-vous du fait que php a un bogue avec default_socket_timeout et SSL. Si vous utilisez HTTPS/SSL, il faudra attendre sans fin.

https://bugs.php.net/bug.php?id=41631

4
staabm

vous pouvez ajouter/mettre à jour le fichier .htaccess line php_value default_socket_timeout 6000

1
user1548333