Install GeneWeb on a shared hosting account
![]() |
English • français |
---|
A shared hosting account have some restrictions :
- Daemon mode is forbidden, or cannot be activated. So you must use CGI mode.
- You must fit in the server environment : OS version, libraries, installed packages.
- The OS version is generally a stable version, but not the latest version.
Download a GeneWeb package
- File:btn lin.png made for recent Linux distribution
- Geneweb distribution made with Linux Debian Sarge, and currently running on 1&1 hosting.
Directories and files
The following applies to 1&1 hosting, and may differ on other hostings: Under the root directory where CGI scripts may run, we have : !File:captur477.jpg
The directories :
? | Beside the CGI-root directory |
mybases | The bases directory |
? | In the CGI-root directory |
basesxg | An alternative bases directory |
css | A copy of the gw/css directory. This directory is used by the Apache server. |
gw | The gw directory of the Geneweb distribution
No change, except give the "exec" permission on the files gw/gwd, gw/gwsetup, and files used by gwsetup (gw/gwc*, gw/gwu,gw/consang, gw/update_nldb) The gwd.arg file is *empty*. |
gwenv | The gw directory of the Geneweb-5 distribution
On this web site, we can easily switch between the 2 last versions of GeneWeb. |
igw | The images directory for Geneweb-5 |
images | A directory where copies of gw/images/gwback.jpg, gw/images/gwlogo_bas.png |
pub | A directory where are readable copies of the CGI scripts (this website is a demo site) :
launch Geneweb-5 launch Geneweb-6 check if Geneweb-6 can be launched |
And the files :
issue6.cgi | A test script which
- displays information about the environment in the server - checks the gwd binary file : size and md5sum |
issue5.cgi | The same script, but for the GeneWeb-5 version |
gw6.cgi | The CGI script which launches GenWeb-6 |
gw5.cgi | The CGI script which launches GenWeb-5 |
Parameters of the CGI script
PWD=$(pwd)
LNG="fr"
GENEWEBSHARE=$PWD/gw
GENEWEBDOC=$PWD/gw/doc
GENEWEBDB=$PWD/../bases
DAEMON=$GENEWEBSHARE/gwd
LOGFILE=$GENEWEBDB/gw.log
Main settings :
- 1 get the CGI working directory
- 2-7 set the main parameters
- 5 $GENEWEBDB does not need to be accessed by the HTTP server.
It must be protected either by a .htaccess file, either by a location out of the HTTP server scope.
- 7 a log file is useful when there are problems, but do not forget to delete it after downloading.
OPTIONS="-blang -robot_xcl 40,70 -max_clients 15 -conn_tmout 120 -min_disp_req 30 -images_url http://myserver.net/gw/images"
# -allowed_tags $GENEWEBDB/tags.txt
cd $GENEWEBSHARE
$DAEMON -hd$GENEWEBSHARE -dd$GENEWEBDOC -bd$GENEWEBDB -lang$LNG -log$LOGFILE -cgi $OPTIONS 2>/dev/null
Options and launching
- 1 OPTIONS
-robot_xcl | to protect your data from HTTrack or WebSite Extractor |
-conn_tmout | for statistics on the bottom line |
-images_url | icons and images are not sent by GeneWeb, but par your HTTP server (not CGI). |
-allowed_tags | another useful option, if you use HTML tags not in default_good_tag_list |
- 3 cd $GENEWEBSHARE. I am not sure it is really needed.
- 4 launch GeneWeb
An alternative installation on 1&1
Some general comments
Installing GeneWeb on a remote shared server is a little bit (but not that much) more complex than on a personal computer. GeneWeb is a totally self contained package, therefore does not depend on additional libraires. On a server, GeneWeb cannot execute in daemon mode (Unix aficionados will understand), and must be launched in CGI mode. To that extent, a server based installation requires prior installation of a (standard) HTTP server (typically Apache), access to the CGI repository of this server and some control over the access rights to the various folders and files. Installing or verifying your HTTP server is not part of this discussion.
A second restriction of GeneWeb on a server is that gwsetup cannot be used (mainly for security reasons). It is therefore necessary to use command lines on the remote server through a ssh
window or any other remote access tool of your choice.
It is also necessary to have access to a upload mechanism from your personal machine to the server through classical Unix/Linux command lines, or through a ftp
client such as Filezilla. A section below will describe in detail a shell script performing upload to the server of a complete fresh copy of a base sitting on your personal computer.
Folders and files
The first important file for your installation is the welcome page of your HTTP server, by default index.html
sitting at the root of your server. After personalization of this welcome page, you should verify that you can view it by typing the name (or IP address) of your server in the URL window of your browser.
The second important item is the CGI folder containing the executable files invoqued through URLs.
This folder is typically called cgi-bin
and also sits at the root of your HTTP server.
If this folder contains the following executable file named test-cgi.sh
:
#!/bin/sh echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" ' echo ' "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> ' echo '<html xmlns="http://www.w3.org/1999/xhtml"> ' echo '<body>' echo 'This is a test for cgi commands' echo '</body>' echo '</html>'
then typing in the URL window of your browser the following text
your_server_name/cgi-bin/test-cgi.sh
should result in the text This is a test for cgi commands appearing in your browser window.
You must reach this level of functionality to proceed.
At the root of your server, create two additional folders GeneWeb
and Documents
.
- The first folder will contain all GeneWeb related files (binaries, bases, images, ...) and need not or should not be accessible with the HTTP server,
- The second folder will contain any other documents that you may want to share with the visitors of your site.
At this time, we have the following situation:
(uiserver):u72332903:~ > cd (uiserver):u72332903:~ > ls -al total 554088 drwx---r-t 23 u72332903 ftpusers 4096 Oct 7 06:58 . drwxr-xr-t 7 root root 4096 Oct 23 00:21 .. -rw------- 1 u72332903 ftpusers 8319 Oct 10 09:30 .bash_history drwxr-xr-x 3 u72332903 ftpusers 4096 Sep 24 21:24 Documents drwxr-xr-x 10 u72332903 ftpusers 4096 Sep 24 21:24 GeneWeb drwxr-xr-x 3 u72332903 ftpusers 4096 Oct 7 06:58 cgi-bin -rw-r--r-- 1 u72332903 ftpusers 3535 May 22 14:30 index.html -rw-r--r-- 1 u72332903 ftpusers 27 Nov 6 2013 robots.txt (uiserver):u72332903:~ >
The GeneWeb folder
The GeneWeb folder contains one or more versions of GeneWeb (geneweb-6.08
and geneweb-7.00
in our example), and the bases
folder.
Each geneweb-x.yy
folder has the same structure, containing a copy of the distribution
folder resulting from the compilation of GeneWeb. You can upload with ftp
this folder, or you can compile yourself GeneWeb directly on your server, but this necessitates the installation of Ocaml and camlp5 (see Ocaml.
(uiserver):u72332903:~/GeneWeb > cd geneweb-6.08 (uiserver):u72332903:~/GeneWeb/geneweb-6.08 > ls -al total 204 drwx---r-x 3 u72332903 ftpusers 82 Jan 12 2015 . drwxr-xr-x 10 u72332903 ftpusers 4096 Sep 24 21:24 .. -rw----r-- 1 u72332903 ftpusers 160302 Jan 12 2015 CHANGES.txt -rw----r-- 1 u72332903 ftpusers 18007 Jan 12 2015 LICENSE.txt -rw----r-- 1 u72332903 ftpusers 10345 Jan 12 2015 START.htm drwx---r-x 8 u72332903 ftpusers 4096 Dec 17 2014 gw -rw---r-x 1 u72332903 ftpusers 108 Dec 17 2014 gwd.command -rw---r-x 1 u72332903 ftpusers 1117 Dec 17 2014 gwsetup.command (uiserver):u72332903:~/GeneWeb/geneweb-6.08 > (uiserver):u72332903:~/GeneWeb/geneweb-6.08 > cd gw (uiserver):u72332903:~/GeneWeb/geneweb-6.08/gw > ls -al total 13268 drwx---r-x 8 u72332903 ftpusers 4096 Dec 17 2014 . drwx---r-x 3 u72332903 ftpusers 82 Jan 12 2015 .. -rw----r-- 1 u72332903 ftpusers 15280 Jan 12 2015 a.gwf -rwx---r-x 1 u72332903 ftpusers 529764 Jan 12 2015 consang drwx---r-x 12 u72332903 ftpusers 4096 Dec 2 2014 etc -rwx---r-x 1 u72332903 ftpusers 1182404 Jan 12 2015 ged2gwb -rwx---r-x 1 u72332903 ftpusers 1200900 Jan 12 2015 ged2gwb2 -rwx---r-x 1 u72332903 ftpusers 552100 Jan 12 2015 gwb2ged -rwx---r-x 1 u72332903 ftpusers 631844 Jan 12 2015 gwc -rwx---r-x 1 u72332903 ftpusers 861434 Jan 12 2015 gwc1 -rwx---r-x 1 u72332903 ftpusers 630084 Jan 12 2015 gwc2 -rwx---r-x 1 u72332903 ftpusers 2422372 Jan 12 2015 gwd -rw----r-- 1 u72332903 ftpusers 12 Jan 12 2015 gwd.arg -rw----r-- 1 u72332903 ftpusers 0 Jan 12 2015 gwd.log -rw----r-- 1 u72332903 ftpusers 42 Oct 10 2014 gwd.xcl -rw----r-- 1 u72332903 ftpusers 3851203 Jan 12 2015 gwdl.log -rwx---r-x 1 u72332903 ftpusers 358308 Jan 12 2015 gwsetup drwx---r-x 3 u72332903 ftpusers 68 Jan 3 2015 gwtp_tmp -rwx---r-x 1 u72332903 ftpusers 589028 Jan 12 2015 gwu drwx---r-x 3 u72332903 ftpusers 4096 Nov 20 2014 images drwx---r-x 2 u72332903 ftpusers 140 Jan 12 2015 lang drwx---r-x 2 u72332903 ftpusers 6 Sep 24 2014 old -rw----r-- 1 u72332903 ftpusers 10 Jan 12 2015 only.txt drwx---r-x 3 u72332903 ftpusers 33 Sep 24 2014 setup -rw----r-- 1 u72332903 ftpusers 104 Dec 17 2014 tags.txt -rwx---r-x 1 u72332903 ftpusers 497028 Jan 12 2015 update_nldb (uiserver):u72332903:~/GeneWeb/geneweb-6.08/gw >
The cgi folder
The cgi-bin
folder contains the cgi commands launching the gwd server software for each request from a browser client.
(uiserver):u72332903:~ > cd cgi-bin/ (uiserver):u72332903:~/cgi-bin > ls -al total 144 drwxr-xr-x 3 u72332903 ftpusers 4096 Oct 7 06:58 . drwx---r-t 23 u72332903 ftpusers 4096 Oct 7 06:58 .. lrwxrwxrwx 1 u72332903 ftpusers 8 Jan 12 2015 Gwd -> Gwd-7.00 -rwxr-xr-x 1 u72332903 ftpusers 183 Oct 10 2014 Gwd-6.08 -rwx---r-x 1 u72332903 ftpusers 183 Jan 12 2015 Gwd-7.00 -rwx---r-x 1 u72332903 ftpusers 183 Jan 15 2015 test-cgi.sh (uiserver):u72332903:~/cgi-bin >
Gwd
is a symbolic link to the current version of GeneWeb (7.00 in our example).
Each of the fiwd-x.yy
file is a shell script that launches gwd
with the appropriate parameters:
#!/bin/sh DIR=~/GeneWeb/geneweb-6.08/gw BASE_DIR=~/GeneWeb/bases cd $DIR ./gwd -cgi -robot_xcl 19,60 -allowed_tags ./tags.txt -hd "./" -bd "../../bases" -log ./gwdl.log 2>./gwd.log
To change your server to another version of GeneWeb (7.00 for instance), you should do the following:
cd cgi-bin rm -f Gwd ln -s Gwd-7.00 Gwd