繁体   English   中英

PHP在浏览器中返回错误500,但不在shell中

[英]PHP returns error 500 in browser, but not in shell

我目前正在尝试一个名为Mosquitto PHP的PHP插件( https://github.com/mgdm/Mosquitto-PHP/ )。 我把它全部安装好了,在'php -m'下它似乎正确显示。

我正在使用一个小的测试代码来查看它的基本形式是否有效:

<?php

$c = new Mosquitto\Client;
$c->onConnect(function() use ($c) {
    $c->publish('mgdm/test', 'Hello', 2);
});

$c->connect('test.mosquitto.org');

for ($i = 0; $i < 100; $i++) {
    // Loop around to permit the library to do its work
    $c->loop(1);
}

echo "Finished\n";
?>

这似乎在我的浏览器中返回“完成”。 所以,我决定启动我的游戏,并按照文档记录添加TLS连接:

<?php

$c = new Mosquitto\Client;
$c->onConnect(function() use ($c) {
    $c->publish('mgdm/test', 'Hello', 2);
});

$c->setTlsCertificates('mosquitto.org.crt');
$c->connect('test.mosquitto.org', '8883');

for ($i = 0; $i < 100; $i++) {
    $c->loop(1);
}

echo "Finished\n";
?>

我拿到了证书,我确保apache2可以读取它并随后将所有权设置为apache2。 结果是在我的浏览器中给出了500内部服务器错误。

-rwsrwsrwt  1 www-data     www-data        279 Jun  5 04:12 test.php
-rwxrwxrwx  1 www-data www-data   1078 Jun 30  2012 mosquitto.org.crt

出于好奇,我在shell中导航到脚本并运行它:

sudo php test.php

这导致在我的ssh中打印出“Finished”,并通过代理发送消息。

这让我觉得这是一种奇怪的许可错误。 进一步调查,我在我的日志中找到了这些:

我的apache2日志:

mod_fcgid:process /var/www/php-fcgi-scripts/web1/.php-fcgi-starter(20614)退出(通信错误),得到意外信号11

安装的mog_fcgid是:

libapache2-mod-fcgid 1:用于Apache 2的2.3.9-1 + b1 amd64 FastCGI接口模块

就我所知,它与suexec一样启用:

模块fcgid已经启用
模块suexec已启用

在一小段事件中,我将.php更改为.fcgi并赋予它+ x权限,现在消息通过代理,但仍然在浏览器中出现500错误。

suexec日志显示:

[2016-06-07 14:05:58]:uid:(5004 / web1)gid:(5005 / client0)cmd:test.fcgi

在我的ispconfig日志中显示:

[Tue Jun 07 14:08:25.567945 2016] [fcgid:warn] [pid 27861](104)通过对等方重置连接:[client 93.135.88.60:49328] mod_fcgid:从FastCGI服务器读取数据时出错
[Tue Jun 07 14:08:25.568016 2016] [core:error] [pid 27861] [client 93.135.88.60:49328]标题前的脚本输出结束:test.fcgi

我在这里完全不知所措......我需要帮助!!

尝试增加php-fcgi的内存(默认情况下为cli memory_limit = -1)。

我认为这个案子应该可以解决你的问题。

UPDATE

我已经安装了mosquitto(来自php7分支)并尝试它(从存储库示例运行test.php.php 7.0.7)。 我有段错误

segfault at 8 ip 00005574a41c753f sp 00007ffc2dc85da0 error 6 in php7.0[5574a3f80000+391000]

看来这是扩展bug。 您可以尝试调试此段错误( https://bugs.php.net/bugs-generating-backtrace.php )并将报告发送给扩展开发人员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM