Monday July 20, 2009 Running Open Web Server on FreeBSD
Downloaded Free BSD from ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.2/7.2-RELEASE-i386-dvd1.iso.gz
and installed it.
For reference, see http://wikis.sun.com/display/wsFOSS/Checkout+and+Build+Instructions
To search for a package, I used cd /usr/ports; make search name="mercurial" and so on.
First make sure that you already have these components
| GNU make 3.81 | /usr/local/bin/gmake |
| C/C++ Compiler 4.2.1 | /usr/bin/g++ and gcc |
| Zlib | /usr/lib/libz.so already installed |
| Perl 5.8.9 | /usr/bin/perl |
| CVS 1.11.22.1 | /usr/bin/cvs |
| Mercurial |
cd /usr/ports/devel/mercurial; make install |
|
Java SE 5 or 6 |
Due to license problems had to manually download and putting
it in /usr/ports/distfiles
|
| Ant | cd /usr/ports/devel/apache-ant; make install
|
| NSPR | cd /usr/ports/devel/nspr; make install |
| NSS | cd /usr/ports/security/nss; make install |
|
Xerces C++ |
cd
/usr/ports/textproc/xerces-c2; make install cd /usr/ports/textproc/xerces-c2-devel; make install selected Use ICU transcoder option. Build thread safe version of library. Got an error "/usr/bin/ld: can not find -lgcc_pic" For this we need to manually modify "files/filepatch-src-xercesc-Makefile.incl" and change "-lgcc_pic" to "-lgcc" |
|
Xalan C++ |
cd
/usr/ports/textproc/xalan; make install Selected INMEN and TRANSCODER_ICU options. |
| PCRE |
cd /usr/ports/devel/pcre; make install |
| ICU | cd /usr/ports/devel/icu; make install |
| SASL | cd /usr/ports/security/cyrus-sasl2; make install |
|
Mozilla C SDK* |
--with-sasl-lib=/usr/local/lib --with-nspr-lib=/usr/local/lib --with-nspr-inc=/usr/local/include/nspr/ --with-nspr --with-nss-lib=/usr/local/lib/nss --with-nss-inc=/usr/local/include/nss/nss/ --with-nss
|
*Note There is one /usr/ports/net/ldapsdk. It downloads and builds ldapsdk_12311998.tar.gz.
But I can see it in ancient now from mozilla site http://ftp.mozilla.org/pub/mozilla.org/directory/c-sdk/ancient/
So I built Mozilla C SDK myself.
One manual hack you need to do in "/usr/local/include/prinet.h"
#if defined(FREEBSD) || defined(BSDI) || defined(QNX)
#include <rpc/types.h> /* the only place that defines INADDR_LOOPBACK */
#endif
replace it by
#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK (u_long)0x7F000001
#endif
Go to work/FreeBSD7.2-RELEASE_OPT.OBJ/https-test/bin/ directory and start the server instance using startserv script.
For the last two gmake commands, you can add WS_INSTALL_ROOT=/opt/ws if you want the server instance to be installed in /opt/ws/https-test
References:
Running Open Web Server on MacOS
I tried to run Open Web Server on iMac with Mac OS X 10.5.7 on it.
Install http://svn.macports.org/repository/macports/downloads/MacPorts-1.7.1/MacPorts-1.7.1-10.5-Leopard.dmg as per http://www.macports.org/install.php
sudo port install mercurial nspr nss pcre icu xercesc xalanc
|
As you can see the server starts up on port 8080. |
Note that
I am using "_xpatomic_locked.h" for now. Their performance needs to be optimized using functions in /usr/include/libkern/OSAtomic.h.
NSPR's PR_GetLibraryFilePathname dumps if called with NULL as first argument on MAC so added a hack of PR_GetLibraryFilePathname("ns-httpd40"..).
Some filenames are ugly like defines___.mk will fix it later.
If you see entries in error log like :
Run Web Server in finest log level ( set <log-level>finest</log-level> in server/xml). And look for messages likefailure : HTTP3360: connection limit (1) exceeded.
PollManager::RequestReservation() keep-alive subsystem full
fine: operating system file descriptor limit is 256Now I changed it to 1024 :
fine: allocating 1 file descriptors to the connection queue, 1 file descriptors to keep-alive connections, and 1 file descriptors to the file cache
fine: 130 connection maximum (1 queued, 128 active, 1 keep-alive)
fine: HTTP3066: HTTP keep-alive subsystem will accomodate up to 1 connections
$ulimit -a
open files (-n) 256
...
$ulimit -n 1024
$./https-test/bin/startserv
fine: operating system file descriptor limit is 1024
fine: allocating 128 file descriptors to the connection queue, 128 file descriptors to keep-alive connections, and 8 file descriptors to the file cache
fine: 384 connection maximum (128 queued, 128 active, 128 keep-alive)
fine: HTTP3066: HTTP keep-alive subsystem will accomodate up to 128 connections
References
Installing Sun Java System Web Server 7.0 on CentOS 5.3 or Fedora 10-11 or Ubuntu
In my free time, I just tried out Sun Java System Web Server 7.0 update 5 on CentOS 5.3 and Fedora10 and 11 and Ubuntu. Joe has also written a similar blog on this
Download Sun Java System Web Server 7.0 for Linux from http://www.sun.com/download/index.jsp?cat=Web%20%26%20Proxy%20Servers&tab=3&subcat=Web%20Servers and extract the contents of tar.gz file
$gunzip sjsws-7_0u5-linux-i586.tar.gz; tar -xvf sjsws-7_0u5-linux-i586.tar
Run installer, it will fail
$./setup
error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
$sudo yum -y install compat-libstdc++-33
Now run setup, it will work fine.
$sudo yum -y install compat-libstdc++-33
There is one more problem in Fedora 11 but is fixed in 7.0 update 6.
If you get error message like
lib/libfreebl3.so: version `NSSRAWHASH_3.12.3' not found (required by /lib64/libcrypt.so.1)
You need workaround as given in http://forums.sun.com/thread.jspa?messageID=10769043#10769043
You need to install libstdc++5 as shown below
$sudo apt-get install libstdc++5
If you get an error which has something that looks like /bin/domainname not found, you need to install
$sudo apt-get install nis
I have tested on Ubuntu 9.04.
*Note that Sun Java System Web Server 7.0 update 5 or 6 is not officially certified or supported on CentOS or Fedora or Ubuntu, but here's how you can make it work.
http://wikis.sun.com/display/WebServer/Installing+on+Ubuntu
http://jmccabe.org/blog/CentOS_WebServer_Install
http://blogs.sun.com/kkranz/entry/installing_sun_java_system_web
http://ubuntuforums.org/showthread.php?t=855603
Posted by meena ( Jul 10 2009, 06:48:32 PM IST ) Permalink Comments [2]About trust flags of certificates in NSS database that can be modified by certutil
We can modify certificate trust flags using certutil. But before we do so we must know more about these trust flags. Here are my notes about trust flags from Nelson Bolyard 's Brown bag:
... >>> READ MORE >>> ...
This blog copyright 2009 by meena