我安装了 php 5.5 (fpm) 和 nginx 1.10(gzip 配置为 1)。在 ubuntu 上运行。
当我“回应”一个大输出(超过 2 mb)时,它突然停止在 520 kb 左右。
但是当我在 php-cli 上运行相同的程序时,将整个内容“回显”到终端上没有问题。
通过 adminer 下载 mysql 转储也中途停止。我的意思是下载不完整的文件(如果正确的总输出大几 MB)。
如何解决这个问题?
我的程序没有任何问题。即使是一个足够长的简单循环,也可以在特定字节限制处停止回声“hello world”。
我不确定这个问题是由 nginx 端还是 php 端引起的。
我在 rhel 6.2 上使用 Apache 2.2.15 运行 php 5.3.3,但无法让 Apache 解释 PHP 代码。
没有错误(在系统日志、httpd/error_log 或 php_errors.log 中) - 我已在 php.ini 中启用错误报告:
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
log_errors = On
error_log = /var/log/php_errors.log
Run Code Online (Sandbox Code Playgroud)
然而,当我直接从浏览器(例如 myserver.com/index.php)查看包含以下代码的 index.php 时,除了白屏之外什么都没有出现:
<?php echo 'Hello php World'; ?>
Run Code Online (Sandbox Code Playgroud)
当在命令行上执行 php 时,我得到了终端的预期文本输出(“ Hello php World
”)。
当我将一些 HTML 添加到 index.php 时,如下所示:
<html>
<p>Hello from within html</p>
<?php echo 'Hello php World'; ?>
</html>
Run Code Online (Sandbox Code Playgroud)
并用我的浏览器查看它,它只返回“ Hello from within html
。” 但是,当从命令行执行时,我得到:
<html>
<p>Hello from within …
Run Code Online (Sandbox Code Playgroud) 如何在控制台(Mac OS X、MacPorts 的最新 PHP/Apache)上为 PHP CLI 启用彩色消息?
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
Run Code Online (Sandbox Code Playgroud)
似乎还不够,所有 PHP CLI 生成的输出在控制台上都是无色的。如果结果看起来像 XAMPP PHP 实例,那就太好了。有任何想法吗?
当我尝试运行imap
在我的浏览器中使用的脚本时,它运行良好(它是从安装了扩展程序的网络上的 Ubuntu 14.04 服务器加载的)。但是,当我尝试在所述服务器上使用 PHP CLI 时,它不会加载imap
.
我写了一个简单的脚本来检查加载的扩展,使用get_loaded_extensions()
,它教会了我两件事:
apache2/php.ini
( imagick.so
) 中手动声明的另一个扩展正在 CLI 和浏览器中加载为什么会发生这种情况,如何在 CLI 和浏览器中加载所有 51 个扩展?
我有一个 php 文件 test.php
#!/bin/php
<?php
echo "test";
?>
Run Code Online (Sandbox Code Playgroud)
root 拥有的这个文件和它的权限是这些
-rwxr-x--x
Run Code Online (Sandbox Code Playgroud)
所以“其他人”可以执行,但不能读取。
当以 root 以外的其他用户身份登录并尝试从命令行运行此文件时
php test.php
Run Code Online (Sandbox Code Playgroud)
得到以下错误
Could not open input file: test.php
Run Code Online (Sandbox Code Playgroud)
如果给予 +r 权限,它就可以工作。
我认为只需要执行权限。
PHP 文件是否需要“其他人”的读取权限才能在命令行中执行?
注意:使用 Ubuntu 10.04 LTS 和 PHP 5.3.2