Installing Wt on Debian » History » Revision 11
Revision 10 (Wim Dumon, 05/18/2011 11:35 PM) → Revision 11/13 (Pau Garcia i Quiles, 06/02/2012 10:45 PM)
h1. Installing Wt on Debian {{toc}} h3. Wt installation on Debian or Debian-based distributions Wt is included in Debian Testing and Unstable. Look for packages named 'libwtsomething': libwt32, libwtext32, libwthttp32, libwt24, libwtext24, libwthttp24, libwtext24, libwt-dev, libwtext-dev, libwthttp-dev, libwtdbo-dev, etc If you want to install Wt on Debian 6.0 (Squeeze), 5.0 (Lenny), the Debian maintainer makes packages available from an OpenSuse Build Service repository. Just add this line to your sources.list: <pre> # deb http://download.opensuse.org/repositories/home:/pgquiles:/Wt/Debian_6.0 http://download.opensuse.org/repositories/home:/pgquiles:/Wt/Debian_5.0 ./ </pre> Please note Wt needs at least Boost 1.36.0, which is not available from Lenny itself. The OBS repository contains Boost 1.42.0. h3. Wt-1.99.2 installation on Debian 3.1 (testing) # apt-get install cmake libfcgi-dev # apt-get install apache2 (if apache2 is not already installed) # apt-get install libapache2-mod-fastcgi # apt-get install libboost-* libxerces27 (fix mask to use the only one of libboost versions) and then follow the build and install steps given in the "INSTALL" file. h3. Howto: Install & configure Apache and WT(Witty) on a fresh Debian/Ubuntu install Following commands should be run as root. Either log in as root, or run <pre> su - </pre> or <pre> sudo bash </pre> *# Using following sources.list (FOR UBUNTU WHEN I TRIED IT ON THE SERVER):* <pre> ## Ubuntu supported packages (packages, GPG key: 437D05B5) deb http://archive.ubuntu.com/ubuntu dapper main restricted deb http://archive.ubuntu.com/ubuntu dapper-updates main restricted deb http://archive.ubuntu.com/ubuntu breezy main restricted deb http://archive.ubuntu.com/ubuntu breezy-updates main restricted deb http://security.ubuntu.com/ubuntu dapper-security main restricted deb http://security.ubuntu.com/ubuntu breezy-security main restricted deb-src http://archive.ubuntu.com/ubuntu dapper main restricted deb-src http://archive.ubuntu.com/ubuntu dapper-updates main restricted deb-src http://archive.ubuntu.com/ubuntu breezy main restricted deb-src http://archive.ubuntu.com/ubuntu breezy-updates main restricted deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted ## Ubuntu community supported packages (packages, GPG key: 437D05B5) deb http://archive.ubuntu.com/ubuntu dapper universe multiverse deb http://archive.ubuntu.com/ubuntu dapper-updates universe multiverse deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper-updates universe multiverse deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse ## Ubuntu backports project (packages, GPG key: 437D05B5) deb http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse ## CANONICAL COMMERCIAL REPOSITORY (Hosted on Canonical servers, not Ubuntu servers. ## RealPlayer10, Opera and more to come.) deb http://archive.canonical.com/ubuntu dapper-commercial main ## Cipherfunk multimedia packages (packages, GPG key: 33BAC1B3) #deb ftp://cipherfunk.org/pub/packages/ubuntu/ dapper main #deb-src ftp://cipherfunk.org/pub/packages/ubuntu dapper main ## All the new packages such as cmake 2.4 & gcc 4.1 deb http://mirrors.kernel.org/ubuntu/ feisty main </pre> *# Using sources.list (FOR DEBIAN SARGE CURRENTLY INSTALLED ON THE BOX):* <pre> deb http://security.debian.org/ stable/updates main #################################################### deb http://ftp.us.debian.org/debian/ stable main deb-src http://ftp.us.debian.org/debian/ stable main deb http://ftp.us.debian.org/debian/ unstable main deb-src http://ftp.us.debian.org/debian/ unstable main deb http://ftp.us.debian.org/debian/ testing main deb-src http://ftp.us.debian.org/debian/ testing main ##################################################### deb http://mirrors2.kernel.org/debian/ stable main deb-src http://mirrors2.kernel.org/debian/ stable main deb http://mirrors2.kernel.org/debian/ unstable main deb-src http://mirrors2.kernel.org/debian/ unstable main deb http://mirrors2.kernel.org/debian/ testing main deb-src http://mirrors2.kernel.org/debian/ testing main deb http://mirrors2.kernel.org/debian/ sarge main contrib non-free deb-src http://mirrors2.kernel.org/debian/ sarge main contrib non-free </pre> *OPTIONAL SECTION - START* This is in case you are getting the following errors: <pre> perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). </pre> If you get that error do: <pre> dpkg-reconfigure locales </pre> *OPTIONAL SECTION - END* Now install all apache, locales, and other stuff (most of which is required for wt) <pre> apt-get update apt-get install apache2 locales dpkg-reconfigure locales // Select All + en_US -> OK (this may take up to 15min) apt-get install localeconf // (Yes, then No) apt-get install libxml++2.6-2 apt-get install libapache2-mod-ffcgid libfcgi-dev libboost-regex-dev libxml++2.6-dev libgd2-dev libboost-date-time-dev libmysql++-dev cmake build-essential cvs </pre> Now install CVS and download the latest copy of wt (witty) -- press enter when asked for login/pass <pre> apt-get install cvs cd /usr/local/src/ cvs -d:pserver:anonymous@witty.cvs.sourceforge.net:/cvsroot/witty login cvs -z3 -d:pserver:anonymous@witty.cvs.sourceforge.net:/cvsroot/witty co -P wt cd wt mkdir build cd build mkdir /var/www/wt </pre> Get libxerces <pre> apt-get install libxerces27-dev </pre> ON TO THE INSTALL <pre> cd /usr/local/src/wt/build/ cmake -D DEPLOYROOT=/var/www/wt -D WEBUSER=www-data -D WEBGROUP=www-data ../ </pre> Note: if you are interested in building the examples to run with fcgi (rather than wthttpd), add to the line above: <pre> -D EXAMPLES_CONNECTOR=wtfcgi </pre> If no errors were encountered, continue <pre> -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found ** Disabling multi threading. -- Configuring done -- Generating done -- Build files have been written to: /usr/local/src/wt/build </pre> If using ccmake 2.2 <pre> for i in `find . -name "build.make"`; do echo ".SUFFIXES:" >> $i; done </pre> Else continue the install <pre> make && make install </pre> Now config fcgid <pre> nano /etc/apache2/conf.d/fcgid.conf </pre> Put the following there <pre> <IfModule mod_fcgid.c> AddHandler fcgid-script .fcg SocketPath /var/lib/apache2/fcgid/sock IdleTimeout -1 ProcessLifeTime -1 MaxProcessCount 1 DefaultMaxClassProcessCount 1 DefaultMinClassProcessCount 1 </IfModule> </pre> and then do this command: <pre> chown www-data:www-data /usr/wt/run -R </pre> Next I setup my apache2 (ver 2.2): Go to the wt config file in apache <pre> nano /etc/apache2/sites-available/wt </pre> In it, replace whatever is there with the following: <pre> <Directory /var/www/wt/> #Order Deny,Allow Allow from all # Don't show indexes for directories on publicly accessible machines (Uncomment if it's a private devshell). #Options -Indexes # Enable CGIs to be executed Options ExecCGI </Directory> </pre> Next I enable the site & reload apache: <pre> a2ensite wt /etc/init.d/apache2 reload </pre> Open your browser and point it to http://your.server.ip/wt/ if it works your golden. You may wish to also do the following command just to check if mod_fcgid has installed: <pre> a2enmod fcgid </pre> You should get the following output after running the above command: <pre> This module is already enabled! </pre> *LETS GET TO THE EXAMPLES* Depending on your version (I had 1.99.2), you may have to compile all the examples as they were not compiled during install of wt <pre> cd /usr/local/src/wt/build/examples make </pre> Note: The hello-widgetset example doesn't build for the fcgi configuration (ie, if you have set -D EXAMPLES_CONNECTOR=wtfcgi in the call to CMake.) Now you need to deploy the example to see if your server plays nice with wt For this lets use a simple but time-tested "Hello World!" example (it doesn't require anything like mysql, unlike the other examples). <pre> cd /usr/local/src/wt/build/examples/hello ./deploy.sh </pre> Now go to your favorite browser, type in the following and hit enter. <pre> http://your.server.ip/wt/hello/hello.fcg </pre> You should get a "Hello, World!" on your screen with a quit button. SUCCESS!!! Now stop reading and get typing!! There are AJAX apps to be written! Go write your own gmail system and buy-out Google ;)