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

TL;博士

如何解决当我不能在Linux服务器上的根目录下version 'GLIBCXX_3.4.15' not found


我打算在OpenShift上使用PhantomJS。 正如本文所解释的,PhantomJS GhostDriver仅在本地主机上绑定,而在OpenShift上,您不能在本地主机上绑定任何东西(您需要指定机器IP地址)。 Paolo Bernardi (文章的作者)分享了修复PhantomJS 的补丁 ,以便可以在IP地址上进行绑定。

问题是提供的补丁在我的OpenShift服务器上./phantomjs -v :当我在补丁PhantomJS安装上运行./phantomjs -v时,我发现了一个分段错误。 所以我决定自己在Debian服务器上编译PhantomJS,感谢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) 

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


更新(和解决scheme):

感谢numeulartear ,我在一个RHEL操作系统上编译了一个补丁二进制文件:没有错误了!

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


更多细节:

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

我无法直接在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 

Solutions Collecting From Web of "尝试在OpenShift上运行PhantomJS:无法修补GhostDriver,以便它可以绑定在服务器的IP地址"

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

如果你不能这样做,请使用help.openshift.com联系我们的形式,并引用这个stackoverflow的问题。