Linux 试图在OpenShift上运行PhantomJS:无法修补GhostDriver,以便它可以绑定到服务器IP地址

Linux 试图在OpenShift上运行PhantomJS:无法修补GhostDriver,以便它可以绑定到服务器IP地址,linux,localhost,phantomjs,openshift,ghostdriver,Linux,Localhost,Phantomjs,Openshift,Ghostdriver,tl;dr 当我无法在Linux服务器上成为root用户时,如何解决找不到版本“GLIBCXX_3.4.15” 我正在尝试在OpenShift上使用PhantomJS。如中所述,PhantomJS GhostDriver仅绑定在localhost上,而在OpenShift上,您无法绑定localhost上的任何内容(您需要指定机器IP地址)。(文章作者)分享了修复PhantomJS的方法,因此可以绑定到IP地址 问题是提供的补丁在我的OpenShift服务器上不起作用:在我的补丁phantom

tl;dr

当我无法在Linux服务器上成为root用户时,如何解决找不到版本“GLIBCXX_3.4.15”


我正在尝试在OpenShift上使用PhantomJS。如中所述,PhantomJS GhostDriver仅绑定在localhost上,而在OpenShift上,您无法绑定localhost上的任何内容(您需要指定机器IP地址)。(文章作者)分享了修复PhantomJS的方法,因此可以绑定到IP地址

问题是提供的补丁在我的OpenShift服务器上不起作用:在我的补丁phantomjs安装上运行
/phantomjs-v
时,我发现了一个分段错误。因此,我决定自己在Debian服务器上编译PhantomJS,这要归功于:

sudo apt get install build sential g++flex bison gperf ruby perl libsqlite3 dev libfontconfig1 dev libicu dev libfreetype6 libssl dev libpng dev libjpeg dev python ttf mscorefonts安装程序
git克隆git://github.com/ariya/phantomjs.git
cd幻影
git checkout 1.9
#应用修复
/build.sh
在编译的二进制文件上运行
/phantomjs-v
时,我得到
1.9.8
:它工作了

在OpenShift上复制此二进制文件并运行
/phantomjs-v
时,我发现一个错误:

/phantomjs:/usr/lib64/libstdc++.so.6:找不到版本'GLIBCXX_3.4.15'(为./phantomjs所需)
你知道怎么解决这个问题吗?这个错误的原因是什么?请原谅我缺乏系统知识:)


更新(和解决方案): 多亏了,我在RHEL OS上编译了一个修补过的二进制文件:再也没有错误了

工作幻影JS二进制文件:


更多详情:

我不能在OpenShift上更新GLIBC版本,因为我不能成为root用户(除非有一些解决方法)

我不能直接在OpenShift上编译PhantomJS,因为我没有足够的空间在该服务器上编译

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

在我的Debian服务器上:

$uname-a
Linux服务器名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\u调试\u消息\u长度
在我的OpenShift服务器上:

$uname-a
Linux服务器名2.6.32-504.3.3.el6.x86#u 64#1 SMP Fri Dec 12 16:05:43 EST 2014 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\u FORCE\u全新
GLIBCXX\u调试\u消息\u长度

由于OpenShift Online在RHEL上运行,您应该能够将CentOS安装到本地机器上的VM中(或在云端某处运行),并使用补丁编译PhantomJS版本,然后将其上载到OpenShift服务器并使用它


如果您不能做到这一点,请使用help.openshift.com上的联系我们表单,并参考此stackoverflow问题。

谢谢您的建议,我会尝试并通知您。当前版本的CentOS(v7)是否适合我的需要,还是我应该安装一个旧版本?OpenShift Online正在运行rhel 6Alright,我将尝试使用6.6 x86_64,再次感谢:)因此,我在CentOS 6.6虚拟机上构建了它。当在那个虚拟机上运行二进制文件时,它是有效的,但是当在OpenShift上运行它时,我又遇到了“分段错误”。。。我在我的Debian服务器上也试过:“分段错误!”!你知道这里有什么问题吗?是的!我终于成功了!我只是在将编译后的二进制文件上传到openshift之前,在VM中对其进行tar.gz-ed。令人惊叹的!您使用的是哪种语言?当我运行:driver=webdriver.PhantomJS(可执行文件_path='./PhantomJS')时,它显示:Exception AttributeError:“'Service'对象在忽略中没有属性'log'”