Support #2059
closedFCGI
0%
Description
I just built Wt 3.2.1 with Boost 1.48 on Fedora 17 with Apache. Used:
-DEXAMPLES_CONNECTOR=wtfcgi -DCONNECTOR_FCGI=ON
But the libraries are not present. I only see them for wthttpd.
/usr/local/src/wt-3.2.1/build-release/lib/libwthttp.so
/usr/local/src/wt-3.2.1/build-release/lib/libwthttp.so.3.2.1
/usr/local/src/wt-3.2.1/build-release/lib/libwthttp.so.32
/usr/local/src/wt-3.2.1/build-release/src/http/libwthttp.so
/usr/local/src/wt-3.2.1/build-release/src/http/CMakeFiles/wthttp.dir
/usr/local/src/wt-3.2.1/build-release/src/http/libwthttp.so.3.2.1
/usr/local/src/wt-3.2.1/build-release/src/http/libwthttp.so.32
[root@st boost_1_54_0]#
[root@st boost_1_54_0]# find / -name "*wtfcgi*"
[root@st boost_1_54_0]#
Why wouldn't they get installed? Should expect to see libwtfcgi.so somewhere, right? Modules are present:
[root@st boost_1_54_0]# yum install fcgi mod_fcgid
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* fedora: mirror.anl.gov
* updates: mirror.fdcservers.net
Package fcgi-2.4.0-18.fc17.x86_64 already installed and latest version
Package mod_fcgid-2.3.7-1.fc17.x86_64 already installed and latest version
Nothing to do
[root@st boost_1_54_0]#
Updated by Bud T over 11 years ago
Boost 1.54, that is... The Wt build returns this message: " Disabling FCGI connector: requires libfcgi
Indicate the location of libfcgi using -DUSERLIB_ROOT=..."
But I have it specified correctly as "-DUSERLIB_ROOT=/usr/lib64/"
[root@st boost_1_54_0]# find / -name "*libfcgi*"
/usr/lib64/libfcgi++.so.0.0.0
/usr/lib64/libfcgi.so.0
/usr/lib64/libfcgi.so.0.0.0
/usr/lib64/libfcgi++.so.0
[root@st boost_1_54_0]#
Not sure what the problem is here.
Updated by Wim Dumon over 11 years ago
- Status changed from New to Feedback
That setting for USERLIB_ROOT is not correct. Read WtFindFcgi.txt to see how it's used.
On platforms that require it, cmake is supposed to look in lib64 directories automatically.
See also cmake --help-property FIND_LIBRARY_USE_LIB64_PATHS
So I guess you could set this property, or add /usr/lib64 there in WtFindFcgi.txt to find your libraries.
Updated by Bud T over 11 years ago
There is no reference to USERLIB_ROOT in WtFindFcgi.txt; and when I set property FIND_LIBRARY_USE_LIB64_PATHS to ON it gets ignored, as indicated in the cmake output.
Updated by Koen Deforche over 11 years ago
- Assignee set to Koen Deforche
Hey,
The USERLIB_ROOT should in your case be /usr (which is in fact the default). Setting only FIND_LIBRARY_USE_LIB64_PATHS should thus do the trick?
If not, what is the output of "grep FCGI build/CMakeCache.txt" ? Is it not finding the header files, the library files, are nothing at all?
Regards,
koen
Updated by Bud T over 11 years ago
when I set property -DFIND_LIBRARY_USE_LIB64_PATHS=ON it gets ignored, as indicated in the cmake output. Is this the correct name?
I changed the Wt root directory to /usr/local/Wt and also added include paths for /usr/local/lib and /usr/local/lib64 in /etc/ld.so.conf as suggested in this article: http://lonesysadmin.net/2013/02/22/error-while-loading-shared-libraries-cannot-open-shared-object-file/ . The fcgi problem is resolved; however, openssl does not get found when I apply the SSL flag as -DSSL_PREFIX=/usr/lib64/openssl (or any other conceivable variant of this path).
...
** Disabling crypto support (Auth::SHA1HashFunction, HTTPS support): requires OpenSSL.
Indicate the location of your OpenSSL library using -DSSL_PREFIX=...
...
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
FIND_LIBRARY_USE_LIB64_PATH
-- Build files have been written to: /usr/local/src/wt-3.2.1/build
# find / -name "openssl" -type d
/usr/lib64/openssl
This is my install script:
#!/bin/bash
rm -rf build
mkdir build
cd build
cmake -Wno-dev -DSSL_PREFIX=/usr/lib64/openssl -DCMAKE_BUILD_TYPE=Release -DRUNDIR=/var/www/approot -DWEBUSER=apache -DWEBGROUP=apache -DCONNECTOR_FCGI=ON -DFIND_LIBRARY_USE_LIB64_PATH=ON ../
Updated by Bud T over 11 years ago
Could still use advice on this one (see above). I can't figure out why openssl isn't being found. Thanks again.
Updated by Koen Deforche over 11 years ago
Hey,
What version of cmake you are using? Does cmake --help-property FIND_LIBRARY_USE_LIB64_PATHS
not print out any information?
I would expect the openssl library to be in /usr/lib64/libssl.so
not in /usr/lib64/openssl/libssl.so as seems suggested to be the location on your OS? What is the contents of /usr/lib64/openssl ?
Regards,
koen
Updated by Bud T over 11 years ago
Hi Koen.
I had tried /usr/lib64 many times...
Yesterday I installed openssl-devel. No other changes were made. The message warning about openssl went away with the next wt cmake.
I don't understand why, since I'm building for release, the -devel version would be necessary if openssl (non -devel) is already installed.
Can you explain it? Is that correct?
Thanks again.
Brad
Updated by Koen Deforche over 11 years ago
- Status changed from Feedback to Resolved
Hey,
You need -devel versions of libraries to be able to build a program that uses that library. So in this case, you need -devel versions of all dependencies of Wt!
Regards,
koen
Updated by Koen Deforche over 11 years ago
- Status changed from Resolved to Closed
- Target version set to 3.3.1