Project

General

Profile

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 ;)