当我在heroku上使用Passenger 5.3.1部署我的Rails 3应用程序时,我在日志中看到以下失败的下载
无法下载https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/5.3.1/rubyext-ruby-2.2.7-x86_64-linux.tar.gz:请求的网址返回错误:404 Not发现无法下载https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/5.3.1/rubyext-ruby-2.2.7-x86_64-linux.tar.gz:请求的网址返回错误: 403禁止
有人可以建议我如何解决这个问题吗?我检查了所说的URL,文件位于不同的URL(我的应用程序尝试从中下载的路径略有错误) . 我可以在某处配置下载URL吗?
由于缺乏对heroku的SSH访问,我不太清楚从哪里开始 .
我也不确定禁用PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY = 0的优势以及在部署到heroku时我将配置它的位置 .
日志:
2018-05-22T14:22:02.337983 00:00 app [web.1]: - >为您的平台下载Phusion Passenger代理二进制文件2018-05-22T14:22:02.709603 00:00 app [web.1] :2018-05-22T14:22:02.709640 00:00 app [web.1]: - >安装Nginx 1.14.0引擎2018-05-22T14:22:02.779900 00:00 app [web.1]:2018- 05-22T14:22:02.779946 00:00 app [web.1]:-------------------------- 2018-05-22T14:22 :02.779967 00:00 app [web.1]:2018-05-22T14:22:02.792581 00:00 app [web.1]:[passenger_native_support.so]试图为当前用户(u56245)和Ruby解释器编译 . .. 2018-05-22T14:22:02.792586 00:00 app [web.1] :(设置PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY = 0禁用)2018-05-22T14:22:03.114593 00:00 app [web.1]:警告:汇编没有成功 . 要了解原因,请阅读此文件:2018-05-22T14:22:03.114653 00:00 app [web.1]:/tmp/passenger_native_support-fgpk65.log 2018-05-22T14:22:03.114732 00:00 app [web .1]:[passenger_native_support.so]查找当前Ruby解释器的下载... 2018-05-22T14:22:03.114766 00:00 app [web.1] :(设置PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY = 0禁用)2018-05- 22T14:22:03.837288 00:00 app [web.1]:无法下载https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/5.3.1/rubyext-ruby-2.2.7-x86_64- linux.tar.gz:请求的URL返回错误:404 Not Found 2018-05-22T14:22:03.837312 00:00 app [web.1]:尝试下一个镜像... 2018-05-22T14:22:04.331785 00 :00 app [web.1]:无法下载https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/5.3.1/rubyext-ruby-2.2.7-x86_64-linux.tar . gz:请求的URL返回错误:403 Forbidden 2018-05-22T14:22:04.332030 00:00 app [web.1]:[passenger_native_support.so]将不会被使用(无法编译或下载)20 18-05-22T14:22:04.332036 00:00 app [web.1]: - >乘客仍然可以正常运作 . 2018-05-22T14:22:04.410350 00:00 app [web.1]:=============== Phusion Passenger独立Web服务器启动========== ===== 2018-05-22T14:22:04.410358 00:00 app [web.1]:PID文件:/app/passenger.11176.pid 2018-05-22T14:22:04.410360 00:00 app [web .1]:日志文件:/app/log/passenger.11176.log 2018-05-22T14:22:04.410361 00:00 app [web.1]:环境: 生产环境
1 回答
TL;DR :您可以使用oss-binaries.phusionpassenger.com中的预编译二进制文件,将Ruby升级到捆绑的版本,例如:如果您使用Passenger gem v.5.3.1,或者如果您希望使用Ruby 2.2.7将Passenger gem降级为v5.1.9,则为v2.2.8 .
但是binaries are not critical要乘客运营 . 正如日志所说:
Passenger will still operate normally.
没有二进制文件Passenger试图下载is also ok - 他们在你的Heroku应用程序的Config Vars设置中不知道't publish binaries for every Ruby version. You can safely set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 and PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY=0 to mute both - that' .Details re Passenger compilation issue: Passenger无法在Heroku上编译本机二进制文件,至少在新的heroku-16堆栈上编译 . 我们可以通过这样做检查/tmp/passenger_native_support-fgpk65.log然后检查mkmf.log:
它的输出像这样:
但是,_239264_是mkmf.log文件,但我们可以通过使用上述日志所具有的相同命令手动运行
/app/vendor/bundle/ruby/2.3.0/gems/passenger-5.3.4/src/ruby_native_extension/extconf.rb
来使其显示在当前目录中:然后我们有这个:
所以,根本问题是goku在heroku-16堆栈运行时不可用 - 并且's probably by purpose. It'在那里不容易使gcc可用,虽然它看起来像是possible但是如果我们可以解决的话我不会那样做否则这个问题 .