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