在许多语言中,您从头开始构建 Web 框架(即从 unix 套接字)并在抽象层上构建。如果我想用 OCaml 或 C 从头开始构建一个 web 框架,我首先构建一个侦听端口 80 的套接字服务器。
我突然想到 PHP - 就像任何其他高级语言一样 - 可能会以某种方式包装 unix 套接字。现在我知道情况是这样的,PHP 从来就不是这样设计的。但是,我不明白为什么它从未以这种方式使用过。按照同样的思路,PHP 解释器从未像 Python 解释器那样以这种方式使用。
例如,当我从头开始构建 Python Web 服务器并部署它时,我执行以下操作:在某个端口(比如 8000)上添加一个 unix 套接字,像 一样守护我的脚本python server.py 8000
,并在端口 80 上设置 nginx 反向代理并转发到我的端口 8000 上的内部本地服务器。我从未见过用 PHP 完成的,即使它是可能的。
我承认,除了使用独立的解释器(即 Tornado、uwsgi 等)之外,您在 Python 中还有其他选择。然而,它是双向的。
我的问题是,PHP 语言、解释器或社区的哪些方面阻止了 PHP Web 框架从 unix 套接字调用从头开始构建、在本地端口上进行守护进程以及被反向代理而不是使用 cgi/ fastcgi 包装器?
我是服务器的初学者。我检查了 Samba 的错误日志,当我传输大文件时,Samba 似乎超时了。例如,我可以成功地将 PDF 添加到我的文件服务器。但是,我尝试添加一个 1.2GB 的大视频文件,但没有成功。这是日志中的错误:
smbd/process.c:244(read_packet_remainder)
read_fd_with_timeout failed for client 0.0.0.0 read error = NT_STATUS_CONNECT$
Run Code Online (Sandbox Code Playgroud)
有没有办法阻止它超时?任何指针都会很棒。