Я пытаюсь заставить PHP работать в течение 2 часов, я не могу заставить его работать, в localhost он работает, но когда я перетаскиваю его на сервер, он перестает работать.
Код такой:
<?php
ob_implicit_flush(true);
ob_end_flush();
for ($i=0; $i<5; $i++) {
echo $i.'<br>';
sleep(1);
}
?>
Я перепробовал много других версий, но все версии, которые мне нравятся, работают только на localhost (как это), но не на моем сервере, я где-то читал, что это будет исправлено, изменив некоторые строки в файле php.ini, но я я использую домен Windows хостинга Aruba, поэтому я не могу редактировать php.ini, как я могу это сделать?
Обновить: Я попробовал его на двух других бесплатных хостингах serice, и он работает на них, только мои основные хостинговые сервисы создают проблему: что это может быть?
Обновить: Поскольку многие скрипты, которые я нашел, используют ini_set, я пытался проверить значения, которые они установили, я не знаю, могут ли они быть полезны:
session.use_trans_sid 0
output_buffering 4096
zlib.output_compression Off
Это работает, но только в среде Apache по умолчанию:
<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
if( !ob_get_level() ){ ob_start(); }
else { ob_end_clean(); ob_start(); }
for ($i = 0; $i < 10; $i++) {
//For Nginx we have to reach minimum buffer size,
//so if it is not enough increment output
echo str_pad( $i . '<br>', 1024 + 10, ' ', STR_PAD_RIGHT );
flush();
ob_flush();
sleep(1);
}
Nginx нужно больше конфигураций:
обычно в /etc/nginx/nginx.conf
gzip off;
proxy_buffering off;
fastcgi_buffer_size 1k; #set buffer to 1k
fastcgi_max_temp_file_size 0;
fastcgi_buffers 128 1k; #set max buffer size to 1k + 128*1k
Пытаться
<?php
ini_set('session.use_trans_sid', 0);
ob_implicit_flush(true);
ob_end_flush();
for ($i=0; $i<5; $i++) {
echo $i.'<br>';
sleep(1);
}
?>
Или проверьте:
Команда php implicit_flush работает неправильно