Project

General

Profile

Actions

Support #2059

closed

FCGI

Added by Bud T over 11 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
07/25/2013
Due date:
% Done:

0%

Estimated time:

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]#
Actions #1

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.

Actions #2

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.

Actions #3

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.

Actions #4

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

Actions #5

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 ../
Actions #6

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.

Actions #7

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

Actions #8

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

Actions #9

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

Actions #10

Updated by Bud T over 11 years ago

Doh!

Actions #11

Updated by Koen Deforche over 11 years ago

  • Status changed from Resolved to Closed
  • Target version set to 3.3.1
Actions

Also available in: Atom PDF