0

问题是关于从 PHP 7.4 迁移到 PHP 8 以及 php 8 的 DSO 等价物。

我在这里读到https://docs.cpanel.net/ea4/php/php-8/ PHP 8 和 DSO 不再兼容...

那么有什么选择呢?

我使用 DSO 的方式:上下文 ob_flush / ob_implicit_flush / 每个“回声”输出并且仍然继续执行。

当我尝试时的示例:在一个 ajax 的实时 MEGA 长时间执行中,实时反馈在执行时返回到 html

<?php 
echo 'hello';
// LONG DB RETRIVAL OR API CALL THAT WAITS SERVER ANSWER....
echo 'called';
// PROCESS STUFF
echo 'done';
?>

在这种情况下,当 php 执行时,我看到“你好”,“被调用”出现几秒钟后,等等。

在我的 DSO 设置中,脚本不必等待完全完成即可开始输出。

在 PHP 8 中,我们如何实现这一点?

4

1 回答 1

1

DSO aka Apache mod_php 仍然可用于 PHP 8。只有 CPanel 不支持它。如果您不使用 CPanel,则不会受到影响。

在 Ubuntu 上运行以下命令将 PHP8 安装为 Apache 模块

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt install libapache2-mod-php8.0
于 2020-12-31T01:53:38.593 回答