Installing Wt on Debian » History » Version 1
Pieter Libin, 10/29/2009 01:09 PM
| 1 | 1 | Pieter Libin | h1. Installing Wt on Debian |
|---|---|---|---|
| 2 | |||
| 3 | {{toc}} |
||
| 4 | |||
| 5 | |||
| 6 | h3. Wt installation on Debian or Debian-based distributions |
||
| 7 | |||
| 8 | Wt is included in Debian Testing and Unstable. If you want to use Wt on Debian Stable, download the source package and build the binaries yourself: |
||
| 9 | |||
| 10 | <pre> |
||
| 11 | $ dget http://ftp.debian.org/debian/pool/main/w/witty/witty_2.2.3-1.dsc |
||
| 12 | $ dpkg-source -x witty_2.2.3-1.dsc |
||
| 13 | $ cd witty-2.2.3 |
||
| 14 | $ dpkg-buildpackage -rfakeroot |
||
| 15 | </pre> |
||
| 16 | |||
| 17 | As of this writing, the newest debianized version is 2.2.3. Please check the directory contents and make sure you download the latest version. |
||
| 18 | |||
| 19 | Please note you need Boost 1.35.0 or newer (Boost 1.35.0 is available in Debian Stable). |
||
| 20 | |||
| 21 | |||
| 22 | h3. Wt-1.99.2 installation on Debian 3.1 (testing) |
||
| 23 | |||
| 24 | # apt-get install cmake libfcgi-dev |
||
| 25 | # apt-get install apache2 (if apache2 is not already installed) |
||
| 26 | # apt-get install libapache2-mod-fastcgi |
||
| 27 | # apt-get install libboost-* libxerces27 (fix mask to use the only one of libboost versions) |
||
| 28 | |||
| 29 | and then follow the build and install steps given in the "INSTALL" file. |
||
| 30 | |||
| 31 | |||
| 32 | h3. Howto: Install & configure Apache and WT(Witty) on a fresh Debian/Ubuntu install |
||
| 33 | |||
| 34 | Following commands should be run as root. |
||
| 35 | |||
| 36 | Either log in as root, or run |
||
| 37 | <pre> |
||
| 38 | su - |
||
| 39 | </pre> |
||
| 40 | or |
||
| 41 | <pre> |
||
| 42 | sudo bash |
||
| 43 | </pre> |
||
| 44 | |||
| 45 | *# Using following sources.list (FOR UBUNTU WHEN I TRIED IT ON THE SERVER):* |
||
| 46 | |||
| 47 | <pre> |
||
| 48 | ## Ubuntu supported packages (packages, GPG key: 437D05B5) |
||
| 49 | deb http://archive.ubuntu.com/ubuntu dapper main restricted |
||
| 50 | deb http://archive.ubuntu.com/ubuntu dapper-updates main restricted |
||
| 51 | deb http://archive.ubuntu.com/ubuntu breezy main restricted |
||
| 52 | deb http://archive.ubuntu.com/ubuntu breezy-updates main restricted |
||
| 53 | deb http://security.ubuntu.com/ubuntu dapper-security main restricted |
||
| 54 | deb http://security.ubuntu.com/ubuntu breezy-security main restricted |
||
| 55 | deb-src http://archive.ubuntu.com/ubuntu dapper main restricted |
||
| 56 | deb-src http://archive.ubuntu.com/ubuntu dapper-updates main restricted |
||
| 57 | deb-src http://archive.ubuntu.com/ubuntu breezy main restricted |
||
| 58 | deb-src http://archive.ubuntu.com/ubuntu breezy-updates main restricted |
||
| 59 | deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted |
||
| 60 | deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted |
||
| 61 | ## Ubuntu community supported packages (packages, GPG key: 437D05B5) |
||
| 62 | deb http://archive.ubuntu.com/ubuntu dapper universe multiverse |
||
| 63 | deb http://archive.ubuntu.com/ubuntu dapper-updates universe multiverse |
||
| 64 | deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse |
||
| 65 | deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse |
||
| 66 | deb-src http://archive.ubuntu.com/ubuntu dapper-updates universe multiverse |
||
| 67 | deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse |
||
| 68 | ## Ubuntu backports project (packages, GPG key: 437D05B5) |
||
| 69 | deb http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse |
||
| 70 | deb-src http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse |
||
| 71 | ## CANONICAL COMMERCIAL REPOSITORY (Hosted on Canonical servers, not Ubuntu servers. |
||
| 72 | ## RealPlayer10, Opera and more to come.) |
||
| 73 | deb http://archive.canonical.com/ubuntu dapper-commercial main |
||
| 74 | ## Cipherfunk multimedia packages (packages, GPG key: 33BAC1B3) |
||
| 75 | #deb ftp://cipherfunk.org/pub/packages/ubuntu/ dapper main |
||
| 76 | #deb-src ftp://cipherfunk.org/pub/packages/ubuntu dapper main |
||
| 77 | ## All the new packages such as cmake 2.4 & gcc 4.1 |
||
| 78 | deb http://mirrors.kernel.org/ubuntu/ feisty main |
||
| 79 | </pre> |
||
| 80 | |||
| 81 | |||
| 82 | |||
| 83 | |||
| 84 | *# Using sources.list (FOR DEBIAN SARGE CURRENTLY INSTALLED ON THE BOX):* |
||
| 85 | |||
| 86 | <pre> |
||
| 87 | deb http://security.debian.org/ stable/updates main |
||
| 88 | #################################################### |
||
| 89 | deb http://ftp.us.debian.org/debian/ stable main |
||
| 90 | deb-src http://ftp.us.debian.org/debian/ stable main |
||
| 91 | deb http://ftp.us.debian.org/debian/ unstable main |
||
| 92 | deb-src http://ftp.us.debian.org/debian/ unstable main |
||
| 93 | deb http://ftp.us.debian.org/debian/ testing main |
||
| 94 | deb-src http://ftp.us.debian.org/debian/ testing main |
||
| 95 | ##################################################### |
||
| 96 | deb http://mirrors2.kernel.org/debian/ stable main |
||
| 97 | deb-src http://mirrors2.kernel.org/debian/ stable main |
||
| 98 | deb http://mirrors2.kernel.org/debian/ unstable main |
||
| 99 | deb-src http://mirrors2.kernel.org/debian/ unstable main |
||
| 100 | deb http://mirrors2.kernel.org/debian/ testing main |
||
| 101 | deb-src http://mirrors2.kernel.org/debian/ testing main |
||
| 102 | deb http://mirrors2.kernel.org/debian/ sarge main contrib non-free |
||
| 103 | deb-src http://mirrors2.kernel.org/debian/ sarge main contrib non-free |
||
| 104 | </pre> |
||
| 105 | |||
| 106 | |||
| 107 | |||
| 108 | |||
| 109 | |||
| 110 | |||
| 111 | *OPTIONAL SECTION - START* |
||
| 112 | |||
| 113 | This is in case you are getting the following errors: |
||
| 114 | <pre> |
||
| 115 | perl: warning: Please check that your locale settings: |
||
| 116 | LANGUAGE = (unset), |
||
| 117 | LC_ALL = (unset), |
||
| 118 | LANG = "en_US" |
||
| 119 | are supported and installed on your system. |
||
| 120 | perl: warning: Falling back to the standard locale ("C"). |
||
| 121 | </pre> |
||
| 122 | |||
| 123 | If you get that error do: |
||
| 124 | <pre> |
||
| 125 | dpkg-reconfigure locales |
||
| 126 | </pre> |
||
| 127 | |||
| 128 | *OPTIONAL SECTION - END* |
||
| 129 | |||
| 130 | |||
| 131 | Now install all apache, locales, and other stuff (most of which is required for wt) |
||
| 132 | <pre> |
||
| 133 | apt-get update |
||
| 134 | apt-get install apache2 locales |
||
| 135 | dpkg-reconfigure locales // Select All + en_US -> OK (this may take up to 15min) |
||
| 136 | apt-get install localeconf // (Yes, then No) |
||
| 137 | apt-get install libxml++2.6-2 |
||
| 138 | 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 |
||
| 139 | </pre> |
||
| 140 | |||
| 141 | Now install CVS and download the latest copy of wt (witty) -- press enter when asked for login/pass |
||
| 142 | <pre> |
||
| 143 | apt-get install cvs |
||
| 144 | cd /usr/local/src/ |
||
| 145 | cvs -d:pserver:anonymous@witty.cvs.sourceforge.net:/cvsroot/witty login |
||
| 146 | cvs -z3 -d:pserver:anonymous@witty.cvs.sourceforge.net:/cvsroot/witty co -P wt |
||
| 147 | cd wt |
||
| 148 | mkdir build |
||
| 149 | cd build |
||
| 150 | mkdir /var/www/wt |
||
| 151 | </pre> |
||
| 152 | |||
| 153 | |||
| 154 | |||
| 155 | Get libxerces |
||
| 156 | <pre> |
||
| 157 | apt-get install libxerces27-dev |
||
| 158 | </pre> |
||
| 159 | |||
| 160 | ON TO THE INSTALL |
||
| 161 | <pre> |
||
| 162 | cd /usr/local/src/wt/build/ |
||
| 163 | cmake -D DEPLOYROOT=/var/www/wt -D WEBUSER=www-data -D WEBGROUP=www-data ../ |
||
| 164 | </pre> |
||
| 165 | |||
| 166 | Note: if you are interested in building the examples to run with fcgi (rather than wthttpd), add to the line above: |
||
| 167 | <pre> |
||
| 168 | -D EXAMPLES_CONNECTOR=wtfcgi |
||
| 169 | </pre> |
||
| 170 | |||
| 171 | If no errors were encountered, continue |
||
| 172 | <pre> |
||
| 173 | -- Check for working C compiler: /usr/bin/gcc |
||
| 174 | -- Check for working C compiler: /usr/bin/gcc -- works |
||
| 175 | -- Check size of void* |
||
| 176 | -- Check size of void* - done |
||
| 177 | -- Check for working CXX compiler: /usr/bin/c++ |
||
| 178 | -- Check for working CXX compiler: /usr/bin/c++ -- works |
||
| 179 | -- Looking for pthread.h |
||
| 180 | -- Looking for pthread.h - found |
||
| 181 | -- Looking for pthread_create in pthreads |
||
| 182 | -- Looking for pthread_create in pthreads - not found |
||
| 183 | -- Looking for pthread_create in pthread |
||
| 184 | -- Looking for pthread_create in pthread - found |
||
| 185 | ** Disabling multi threading. |
||
| 186 | -- Configuring done |
||
| 187 | -- Generating done |
||
| 188 | -- Build files have been written to: /usr/local/src/wt/build |
||
| 189 | </pre> |
||
| 190 | |||
| 191 | |||
| 192 | If using ccmake 2.2 |
||
| 193 | <pre> |
||
| 194 | for i in `find . -name "build.make"`; do echo ".SUFFIXES:" >> $i; done |
||
| 195 | </pre> |
||
| 196 | |||
| 197 | Else continue the install |
||
| 198 | <pre> |
||
| 199 | make && make install |
||
| 200 | </pre> |
||
| 201 | |||
| 202 | Now config fcgid |
||
| 203 | <pre> |
||
| 204 | nano /etc/apache2/conf.d/fcgid.conf |
||
| 205 | </pre> |
||
| 206 | |||
| 207 | Put the following there |
||
| 208 | <pre> |
||
| 209 | <IfModule mod_fcgid.c> |
||
| 210 | AddHandler fcgid-script .fcg |
||
| 211 | SocketPath /var/lib/apache2/fcgid/sock |
||
| 212 | IdleTimeout -1 |
||
| 213 | ProcessLifeTime -1 |
||
| 214 | MaxProcessCount 1 |
||
| 215 | DefaultMaxClassProcessCount 1 |
||
| 216 | DefaultMinClassProcessCount 1 |
||
| 217 | </IfModule> |
||
| 218 | </pre> |
||
| 219 | |||
| 220 | and then do this command: |
||
| 221 | <pre> |
||
| 222 | chown www-data:www-data /usr/wt/run -R |
||
| 223 | </pre> |
||
| 224 | |||
| 225 | Next I setup my apache2 (ver 2.2): |
||
| 226 | |||
| 227 | Go to the wt config file in apache |
||
| 228 | <pre> |
||
| 229 | nano /etc/apache2/sites-available/wt |
||
| 230 | </pre> |
||
| 231 | |||
| 232 | In it, replace whatever is there with the following: |
||
| 233 | <pre> |
||
| 234 | <Directory /var/www/wt/> |
||
| 235 | #Order Deny,Allow |
||
| 236 | Allow from all |
||
| 237 | # Don't show indexes for directories on publicly accessible machines (Uncomment if it's a private devshell). |
||
| 238 | #Options -Indexes |
||
| 239 | # Enable CGIs to be executed |
||
| 240 | Options ExecCGI |
||
| 241 | </Directory> |
||
| 242 | </pre> |
||
| 243 | |||
| 244 | Next I enable the site & reload apache: |
||
| 245 | <pre> |
||
| 246 | a2ensite wt |
||
| 247 | /etc/init.d/apache2 reload |
||
| 248 | </pre> |
||
| 249 | |||
| 250 | Open your browser and point it to http://your.server.ip/wt/ if it works your golden. |
||
| 251 | |||
| 252 | You may wish to also do the following command just to check if mod_fcgid has installed: |
||
| 253 | <pre> |
||
| 254 | a2enmod fcgid |
||
| 255 | </pre> |
||
| 256 | |||
| 257 | You should get the following output after running the above command: |
||
| 258 | <pre> |
||
| 259 | This module is already enabled! |
||
| 260 | </pre> |
||
| 261 | |||
| 262 | *LETS GET TO THE EXAMPLES* |
||
| 263 | 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 |
||
| 264 | <pre> |
||
| 265 | cd /usr/local/src/wt/build/examples |
||
| 266 | make |
||
| 267 | </pre> |
||
| 268 | |||
| 269 | 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.) |
||
| 270 | |||
| 271 | Now you need to deploy the example to see if your server plays nice with wt |
||
| 272 | For this lets use a simple but time-tested "Hello World!" example (it doesn't require anything like mysql, unlike the other examples). |
||
| 273 | <pre> |
||
| 274 | cd /usr/local/src/wt/build/examples/hello |
||
| 275 | ./deploy.sh |
||
| 276 | </pre> |
||
| 277 | |||
| 278 | Now go to your favorite browser, type in the following and hit enter. |
||
| 279 | <pre> |
||
| 280 | http://your.server.ip/wt/hello/hello.fcg |
||
| 281 | </pre> |
||
| 282 | |||
| 283 | You should get a "Hello, World!" on your screen with a quit button. SUCCESS!!! |
||
| 284 | |||
| 285 | Now stop reading and get typing!! There are AJAX apps to be written! Go write your own gmail system and buy-out Google ;) |