当前位置: 首页 > 面试题库 >

尝试在OpenShift上运行PhantomJS:无法修补GhostDriver,使其可以绑定在服务器IP地址上

习哲彦
2023-03-14
问题内容

tl; dr

version 'GLIBCXX_3.4.15' not found当我不能以Linux服务器为根时,如何解决?

我想在OpenShift上使用PhantomJS。如本文所述,PhantomJSGhostDriver仅在本地主机上绑定,而在OpenShift上,您不能在本地主机上绑定任何内容(需要指定计算机IP地址)。PaoloBernardi(本文的作者)共享一个修补程序,该修补程序修复了PhantomJS,从而可以绑定到IP地址。

问题是所提供的补丁程序无法在我的OpenShift服务器上运行:在./phantomjs -v补丁程序化的PhantomJS安装上运行时,我遇到了分段错误。因此,由于有了PhantomJS文档,我决定在自己拥有的Debian服务器上使用该修复程序自己编译PhantomJS

sudo apt-get install build-essential g++ flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python ttf-mscorefonts-installer
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
# apply the fix
./build.sh

./phantomjs -v编译的二进制文件上运行时,我得到1.9.8:它起作用。

在OpenShift上复制此二进制文件并运行时./phantomjs -v,出现错误:

./phantomjs: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by ./phantomjs)

任何想法如何解决这个问题?此错误的原因是什么?请原谅我缺乏系统知识:)

多亏了Moleculartear,我在RHEL
OS上编译了补丁二进制文件:不再出错!

有效的PhantomJS二进制文件:
https
:
//github.com/jrestful/server/blob/master/seo/phantomjs-1.9.8-patched.tar.gz?
raw
=
true

更多细节:

由于无法成为root用户,因此无法在OpenShift上更新GLIBC版本(除非有一些解决方法)。

我无法在OpenShift上直接编译PhantomJS,因为我的服务器上没有足够的空间来存放源代码。

我的OpenShift磁带:Tomcat 7(JBoss EWS 2.0)+ MongoDB 2.4 + RockMongo 1.1。

在我的Debian服务器上:

$ uname -a
Linux servername 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

$ strings /usr/lib/x86_64-linux-gnu/libstdc++++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

在我的OpenShift服务器上:

$ uname -a
Linux servername 2.6.32-504.3.3.el6.x86_64 #1 SMP Fri Dec 12 16:05:43 EST 2014 x86_64 x86_64 x86_64 GNU/Linux

$ strings /usr/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

问题答案:

由于OpenShiftOnline在RHEL上运行,因此您应该能够将CentOS安装到本地计算机上的VM(或在云中的某个地方运行),并使用补丁编译PhantomJS版本,然后将其上传到OpenShift服务器并使用它。

如果您不能这样做,请使用help.openshift.com上的“与我们联系”表格



 类似资料:
  • 我甚至才知道,即使是Docker容器也是由IP组成的。为什么会这样?有谁能帮助我理解容器是如何通过IP访问的吗? 我已经尝试了上面的JSON和ipconfig映像中所有可用的IP,但都不起作用。

  • 我正在尝试在LinuxWeb服务器上使用PHP运行PhantomJS。这最终将作为cron作业运行,但现在我通过一个PHP脚本运行它,我正在通过FTP上传到服务器。 PHP脚本: (请注意,出于隐私考虑,我已将上面路径中的帐户名更改为“accountname”,但这在我的真实脚本中是正确的,并且是从大量其他PHP脚本复制的,这些脚本都可以完美地工作。) myscript.js内容: 结果是: 我在

  • 问题内容: 我似乎无法通过测试成功获得PhantomJS。我试图将其集成到我的项目中,但是在此之后失败了,我尝试仅运行基本的Angular Docs示例,但遇到了同样的问题。到目前为止,我的步骤: // … GhostDriver-Main-在端口9515上运行 这是与示例中相同的文件,仅具有browserName,并且seleniumAddress端口已更改: 我收到以下错误消息: 我在gith

  • 问题内容: Docker(www.docker.io)看起来很棒。但是,在Mac上安装VirtualBox,Vagrant …和Docker之后,我发现无法从另一台计算机(或从Mac上的终端会话)访问Docker容器中运行的服务。我尝试访问的服务是Redis。 问题似乎是没有路由到分配给Docker容器的IP地址。在这种情况下,容器的IP为172.16.42.2,而Mac的IP为196.168.0

  • 我正在尝试将jboss绑定到一个外部ip地址,而不是默认的127.0.0.1,但是我得到了错误并且无法。 我要绑定到的IP地址是有效和可访问的,并且我已经使用ping进行了测试。我试过修改standalone.conf或修改standalone.xml,也试过-b xxx.xxx.236.237逼近,但每次都得到相同的错误。 请帮忙。多谢了。

  • 问题内容: 我知道我可以在tomcat服务器的context.xml中添加一个Valve来允许或拒绝一些IP地址: 除了上述配置外, 还有其他可以配置IP限制的方法吗? 例如,我可以使用文本文件或数据库存储IP地址以提出IP限制建议吗? 非常感谢你!!! 问题答案: 您可以动态注册Tomcat的远程地址过滤器。 http://tomcat.apache.org/tomcat-7.0-doc/con