What Setup does on Unix
This document describes what the install.sh script does when you install FogBugz 7 for Unix. It is intended to help system administrators understand how the script modifies their system, and should help you understand how FogBugz is set up so that you can diagnose and correct problems.
Although we don't recommend setting up FogBugz manually, it is possible to do so by following the instructions in this document. (Note that there is very little benefit to installing FogBugz manually. What you probably want is an automatic install with manual apache integration. Use install.sh for that.)
- Select an install location and user. Copy the Accessories, bin,
Website, conf, and templates directories to this location. Create a
directory named logs. Everything must be readable by the FogBugz user, and
the logs and Accessories/MainIndex directories must be writable.
- Download the runtime. The name of this file can be found by running
echo fogbugz-runtime-`uname`-`cat runtime.version`.tar.gz
This tarball contains a single directory, runtime, that needs to be
extracted into the FogBugz install directory. Fix the runtime/bin/mod-mono-server2 script to refer to the correct paths.
- Create Accessories/application.data. A template is below:
sRegistryVersion:4
sConnectionString:Driver={mysql};Server=server;Database=fogbugz;Uid=fogbugz;Pwd=fogbugz;
sURL:http://localhost/fogbugz
fProduction:0
fDebug:0
sCustom1:Version
sCustom2:Computer
fDemo:0
sCustom1Help:Enter the version where you observed this case.
sCustom2Help:Describe the computer and software environment where this
case occurs.
sLanguage:en-us
You will need to modify the sConnectionString line with the correct MySQL
connection paramters. To connect via a unix socket, specify a filename as
the server with a leading /.
- Decide how you want to run FogBugz. This is the most complicated part.
The templates directory contains a collection of files that the installer
would modify to make this happen.
FogBugz is a .NET web application, that uses Apache, mod_mono and
mod-mono-server2 to execute. Any webserver can be used, but FogBugz
requires the modified version of mono included in the runtime. It will not
work with any version installed by your OS vendor. The normal install uses
a private httpd server running on port 7066. A Redirect directive is
optionally added to the system default httpd.conf so that port 80 requests
for /fogbugz are sent to the correct server.
In short, in order to run FogBugz, you need a webserver serving the
Website directory. It needs to send any request for an .asp or .php page
to FogBugz.dll. FogBugz.dll must be served using a mod-mono-server2 (or
xsp2) process started with the version of mono included in runtime.
What install.sh will try to do for an integrated install:
Create conf/httpd.conf from templates/httpd.conf. This is the config file
for the FogBugz apache server.
Create conf/redirect.conf. This sets up the necessary URL redirection for
http://localhost/fogbugz. The file /etc/apache/httpd.conf (or appropriate
path) is then modified to include redirect.conf. A sample redirect.conf
follows.
# Always redirect to get add trailing slash
Redirect /fogbugz http://ted-vm1/fogbugz/
<IfModule !proxy_module>
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
</IfModule>
<IfModule !proxy_http_module>
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
</IfModule>
ProxyPass /fogbugz/ http://localhost:7066/
- Perform MySQL or SQLite setup. The database and user specified in your connection
string must exist. The user must be granted full access to the database.
For new installs, the Version table must be created before FogBugz is
started: "CREATE TABLE Version (ixVersion INT)".
- Run the heartbeat service. The bin directory contains a .NET program
called heartbeat.exe. It must be running in order for search and mail
operations to work. heartbeat.exe is a long running process. It only needs
to be started once.