所以我正在尝试使用SSL ergo Apache Openssl和SSLeay安装Apache。我已经完成了Apache2和Openssl,知道我在安装SSLeay时遇到了困难。在所有命令都失败后,我得到perl Makefile.PL
。
perl Makefile.PL
Found multiple possibilities for OpenSSL
/opt/ssl (OpenSSL 0.9.8r)
/usr (OpenSSL 0.9.8p)
Which SSL install path do you want to use? [/opt/ssl]
build information
================================================
ssl library: OpenSSL 0.9.8r in /opt/ssl
ssl header: openssl/ssl.h
libraries: -L/opt/ssl/lib -lssl -lcrypto -lgcc
include dir: -I/opt/ssl/include
================================================
Note (probably harmless): No library found for -lgcc
Writing Makefile for Crypt::SSLeay
The test suite can attempt to connect to public servers
to ensure that the code is working properly. If you are
behind a strict firewall or have no network connectivity,
these tests may fail (through no fault of the code).
Do you want to run the live tests (y/N)? [N]
我选择了/ usr安装,因为那是我安装openssl-devel的安装,因为我查看this question, that is simmilar并发现需要openssl-devel。所以我安装了openssl-devel
rpm -qi openssl
Name : openssl Relocations: (not relocatable)
Version : 0.9.8a Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release : 18.36 Build Date: Mon 27 Jul 2009 03:55:03 PM CEST
Install Date: Mon 18 Jan 2010 10:42:42 AM CET Build Host: deacon.suse.de
Group : Productivity/Networking/Security Source RPM: openssl-0.9.8a-18.36.src.rpm
Size : 2998754 License: BSD 3-Clause
Signature : DSA/SHA1, Mon 27 Jul 2009 03:57:14 PM CEST, Key ID a84edae89c800aca
Packager : http://bugs.opensuse.org
URL : http://www.openssl.org/
Summary : Secure Sockets and Transport Layer Security
rpm -qi openssl-devel
Name : openssl-devel Relocations: (not relocatable)
Version : 0.9.8p Vendor: PLD
Release : 1 Build Date: Fri 19 Nov 2010 12:24:41 PM CET
Install Date: Wed 05 Oct 2011 03:47:56 PM CEST Build Host: x86-64.titanium.pld-linux.org
Group : Development/Libraries Source RPM: openssl-0.9.8p-1.src.rpm
Size : 2003899 License: Apache-like
Signature : (none)
Packager : PLD
URL : http://www.openssl.org/
Summary : Development part of OpenSSL Toolkit libraries
Description :<br/>
Development part of OpenSSL library.
Distribution: PLD Titanium
但是当我运行make
make
cc -c -I/opt/ssl/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe -DVERSION=\"0.58\" -DXS_VERSION=\"0.58\" -fPIC "-I/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE" SSLeay.c
SSLeay.c: In function âXS_Crypt__SSLeay__CTX_newâ:
SSLeay.c:118: warning: unused variable âpacknameâ
SSLeay.c: In function âXS_Crypt__SSLeay__Conn_newâ:
SSLeay.c:395: warning: unused variable âpacknameâ
SSLeay.c: In function âXS_Crypt__SSLeay__CTX_use_pkcs12_fileâ:
SSLeay.c:287: warning: âRETVALâ may be used uninitialized in this function
Running Mkbootstrap for Crypt::SSLeay ()
chmod 644 SSLeay.bs
rm -f blib/arch/auto/Crypt/SSLeay/SSLeay.so
cc -shared -L/usr/local/lib64 SSLeay.o -o blib/arch/auto/Crypt/SSLeay/SSLeay.so \
-L/opt/ssl/lib -lssl -lcrypto
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: /opt/ssl/lib/libssl.a(s2_clnt.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/opt/ssl/lib/libssl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/Crypt/SSLeay/SSLeay.so] Error 1
我认为原因是perl找不到openssl-devel库,如果是这样,我如何链接它以便找到它。
提前感谢Almightybob
答案 0 :(得分:2)
为什么不使用预先为您的发行版构建的版本?
$ sudo yum install perl-Crypt-SSLeay
(或一些近似的等价物)
答案 1 :(得分:0)
如果找不到库,通常会出现undefined symbol
错误。这看起来更像它找到了库但不喜欢它。您是否有可能尝试使用64位perl的32位openssl或反之亦然?
答案 2 :(得分:0)
你对这些软件感到困惑。
在openSUSE和相关的发行版上,只需sudo zypper install apache2
。 Apache httpd v2已经包含一个名为mod_ssl的OpenSSL绑定;此命令将自动安装所有必要的依赖关系到SSL上的服务内容,包括OpenSSL库。编译任何东西都不需要。
SSLeay是Perl HTTP 客户端堆栈的一部分。通过SSL访问远程服务器上的其他人的内容是很好的。这与您想要的相反,但如果您仍然需要,请先add the repository devel:language:perl
,然后安装包perl-LWP-Protocol-https
。同样,这将自动引入所需的依赖关系,包括perl-Net-SSLeay
。
要添加通常与Apache Web服务器一起使用的Perl内容,请添加存储库Apache:Modules
,然后还安装包apache2-mod_apreq2
,apache2-mod_perl
,libapreq2
,perl-Apache2-Request
。