【问题标题】:Installing PhantomJS on shared hosting (1and1)在共享主机上安装 PhantomJS (1and1)
【发布时间】:2018-08-05 10:35:35
【问题描述】:

使用 1and1 linux 共享主机,

我已经安装了:

PHP 版本 7.0.27 PHP PhantomJS 2.1.1

PHP PhantomJS 所有值都为空

每当我提出请求时:

$client = Client::getInstance();

$client->getEngine()->setPath($main_path.'core/composer/bin/phantomjs');
$client->getEngine()->addOption('--ssl-protocol=any');
$client->getEngine()->addOption('--ignore-ssl-errors=true');
$client->getEngine()->addOption('--web-security=false');
$client->getEngine()->addOption('--debug=true');
$client->getEngine()->addOption('--local-to-remote-url-access=true');

$request = $client->getMessageFactory()->createRequest("http://luclaverdure.com");
$response = $client->getMessageFactory()->createResponse();

$client->send($request, $response);
var_dump($request);
var_dump($response);

if($response->getStatus() === 200) {
    $resp = $response->getContent();
    var_dump($resp);
}

我有一堆空值,而 phantomJS 没有处理 URL...

请求:

object(JonnyW\PhantomJs\Http\Request)#113 (12) {
    ["type":protected]=> NULL
    ["headers":protected]=> array(0) {}
    ["settings":protected]=>
      array(1) {
        ["resourceTimeout"]=>
        int(5000)
      }
    ["cookies":protected]=>
      array(2) {
        ["add"]=>
        array(0) {
        }
        ["delete"]=>
        array(0) {
        }
      }
    ["data":protected]=>
      array(0) {
      }
    ["url":protected]=>
      string(59) "http://luclaverdure.com"
    ["method":protected]=>
      string(3) "GET"
    ["timeout":protected]=>
      NULL
    ["delay":protected]=>
      int(0)
    ["viewportWidth":protected]=>
      int(0)
    ["viewportHeight":protected]=>
      int(0)
    ["bodyStyles":protected]=>
      array(0) {
      }
}

回复:

object(JonnyW\PhantomJs\Http\Response)#263 (9) {
    ["headers"]=>
      NULL
    ["status"]=>
      NULL
    ["content"]=>
      NULL
    ["contentType"]=>
      NULL
    ["url"]=>
      NULL
    ["redirectURL"]=>
      NULL
    ["time"]=>
      NULL
    ["console"]=>
      NULL
    ["cookies"]=>
      NULL
}

它只是从不返回内容

请帮忙

编辑:日志:

string(1413) "2018-02-25T22:31:25 [DEBUG] CookieJar - 创建并将 将 cookie 存储在:“cookies.txt”1 0x1b67967 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x1b67967] 2 0x1baaaf5 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x1baaaf5] 3 0x198c463 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x198c463] 4 0x1ab3982 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x1ab3982] 5 0x79abb9 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x79abb9] 6 0x76b6f9 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x76b6f9] 7 0x750a5d /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x750a5d] 8 0x41cd89 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x41cd89] 9 0x41f5c4 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x41f5c4] 10 0x415b86 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x415b86] 11 0x2b1fc0917b45 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x2b1fc0917b45] 12 0x4176a1 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x4176a1] PhantomJS 已崩溃。请阅读错误报告指南 在http://phantomjs.org/bug-reporting.html 并提交错误报告。 分段错误" int(0) NULL

编辑:

如果我用最新下载替换 phantomJS,

我得到 libicui18n.so.55 缺少依赖项

如何使用 Composer 安装它?

请注意,这需要安装在共享主机上,因此我在机器上没有 root/sudo 访问权限

感谢所有帮助。

【问题讨论】:

  • 您请求的 url 不返回 200,而是返回 302。您可以使用 chrome 检查器和网络选项卡进行检查。如果您测试 302 状态,一切正常。
  • 其实返回int(0)
  • $request = $client->getMessageFactory()->createRequest('http://luclaverdure.com', 'GET'); $response = $client->getMessageFactory()->createResponse(); $client->send($request, $response); var_dump($request->getStatus()); // 302 if($response->getStatus() === 302) { var_dump($response->getContent()); die; } 返回您的主页 html。您确定没有将主机设置设置为不同的 IP 或类似的东西吗?
  • 如果你看上面的响应代码:["status"]=> NULL
  • 尝试了其他网址,我仍然得到 0 作为状态

标签: php phantomjs composer-php shared-hosting php-phantomjs


【解决方案1】:

检查您的系统是否运行 SELinux(您可以使用 sestatus 进行检查)——它可以(并且会)尝试损害 PhantomJS,它看起来就像那样。

查看phantomjs.org/troubleshooting 上的“SELinux”部分以获得官方解决方案。

【讨论】:

  • @LucLaverdure 如果 sestatus 不可用,请检查您是否有 getenforce。如果没有,请检查您是否有足够的内存(RAM 和磁盘),PhantomJS 可以使用一些
  • 内存和磁盘空间几乎不占用资源...超过 80% 可用
  • @LucLaverdure 你能尝试下载 2.0 版,而不是 2.1 版吗?也许这可以帮助
  • @LucLaverdure 如果 2.0 不起作用,请尝试 1.9 -- 它使用不同的引擎
  • 我做了,仍然出现分段错误
猜你喜欢
  • 2018-06-15
  • 1970-01-01
  • 2015-05-27
  • 2011-01-21
  • 2013-07-05
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多