승객 지원으로 nginx를 컴파일하는 중 오류가 발생했습니다.

승객 지원으로 nginx를 컴파일하는 중 오류가 발생했습니다.

방금 다음 방법으로 승객을 설치했습니다.

gem install passenger
cd /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2
env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes

그런 다음 편집 /etc/apt/sources.list하고 추가했습니다.

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

그런 다음 apt-get update, cd /var/tmp그리고 apt-get source nginx. 올바른 위치 --add-module=/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module \에 추가되었습니다 .debian\rules

승객 모듈 지원으로 nginx를 컴파일할 때 문제가 발생합니다.

apt-get build-dep nginx
dpkg-buildpackage -b
-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--필요에 따라 -pie -ldl -lpthread -lpthread -lcrypt /var/tmp/ngx_pagespeed-1.12.34.2- 베타/psol/lib/Release/linux/x64/pagespeed_automatic.a -lstdc++ -lrt -pthread -lm -lexpat /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/ common/libpassenger_common/Logging.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Exceptions.o /usr/local/rvm/gems/ruby- 2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/SystemTime.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/ libpassenger_common/Utils/StrIntUtils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/StrIntUtilsNoStrictAliasing.o /usr/local/rvm/gems/ ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/IOUtils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/ common/libpassenger_common/Utils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/WatchdogLauncher.o /usr/local/rvm/gems/ruby- 2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/AppTypes.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/ Utils/CachedFileStat.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/UnionStationFilterSupport.o /usr/local/rvm/gems/ruby-2.4. 0/gems/passenger-5.1.2/buildout/common/libboost_oxt.a -lstdc++ -lpthread -lm -lrt -lpcre -lssl -lcrypto -ldl -lz -lGeoIP \
-Wl,-E
/usr/bin/ld.bfd.real: /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: `.bss에 대한 R_X86_64_32 재배치 '는 공유 객체를 만들 때 사용할 수 없습니다. -fPIC으로 다시 컴파일
/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: 기호 추가 오류: 잘못된 값
Collect2: 오류: ld가 종료 상태 1개를 반환했습니다.
objs/Makefile:344: 'objs/nginx' 대상 레시피에 실패했습니다.
make[2]: *** [objs/nginx] 오류 1
make[2]: '/var/tmp/t/nginx-1.10.3/debian/build-nginx' 디렉터리를 종료합니다.
Makefile:8: 대상 'build'에 대한 레시피가 실패했습니다.
make[1]: *** [빌드] 오류 2
make[1]: '/var/tmp/t/nginx-1.10.3/debian/build-nginx' 디렉터리를 종료합니다.
debian/rules:60: 'build-arch.nginx' 대상 레시피가 실패했습니다.
make: *** [build-arch.nginx] 오류 2
dpkg-buildpackage: 오류: debian/rules 빌드에서 오류 종료 상태 2가 발생했습니다.

이것은 다음의 출력입니다 passenger-config --nginx-addon-dir.

/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module

궁금한 점은 소스에서 nginx를 컴파일하려고 하면 passenger-install-nginx-module모든 것이 잘 작동한다는 것입니다.

어쨌든, 이 문제를 어떻게 해결할 수 있는지 아시는 분 계신가요? 나에게는 언급된 절차에 따라 nginx를 컴파일하는 것이 필수입니다. 문제를 해결하는 동안 위의 절차를 따를 수 있었으면 좋겠습니다.

감사해요 :)

답변1

마지막으로 나는 /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb이 줄을 편집 flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED"하고 flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -fPIC". 그런 다음 이전 rake 명령을 실행하여 승객을 컴파일했습니다 env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes.

관련 정보