4.5Command Line Options .......................................................................9
i
Table of Contents
ii
CSI Web Server for Linux Installation
Guide
1. Introduction
CSI Web Server for Linux is a port of the Campbell Scientific CSI Web Server
product to the Linux Operating System along with one copy of Web Publisher
for Windows. This package does not provide a Linux based Web Publisher.
The Web Publisher is installed on a Windows machine and used to publish
RTMC projects to the Linux based CSI Web Server.
Packages have been built for Red Hat (or Cent OS) version 6.1 and newer,
SUSE Linux version 11.4 and newer, Debian version 6 and newer, and Ubuntu
version 11.04 and newer.
The Debian and Ubuntu version also includes a CSI Web Server Administrator
package. Due to difficulties in supporting the requisite version of the
wxWidgets package on the other platforms, they must be administered by
editing the configuration file directly.
This document focuses mainly on the installation and configuration of the CSI
Web Server for Linux. For additional information on using the CSI Web Server
as well as the CSI Web Server Administrator and the Web Publisher see the
CSI Web Server manual.
2. Installing CSI Web Server for Linux
2.1 DEB Installation (Debian and Ubuntu)
2.1.1 Installing the Web Server
2.1.1.1 Locate the DEB File
Locate the DEB file, csiweb-debian_*_i386.deb. The DEB file is located in
the root directory of the CSI Web Server for Linux CD-ROM.
2.1.1.2 Log In as a Root User
The dpkg utility requires root privileges on the host computer in order to
change the state of the DEB database. You can gain root privileges by using
the su or sudo command or by logging in to a terminal as the root user.
2.1.1.3 Use dpkg to Install the Software
The following command line demonstrates use of the dpkg utility to install CSI
Web Server for Linux:
dpkg --install csiweb-debian_1.1-29_i386.deb
1
CSI Web Server for Linux Installation Guide
NOTE
The package name contains version and revision numbers, and,
therefore, may differ from that shown above.
The utility can also be used to delete the package by using the following
command line:
dpkg --remove csiwebserver
2.1.1.4 Alternatives to the dpkg Command Line
Instead of installing from the command line, most Linux distributions now
provide a GUI program that performs the same types of operations. Note that
you will still be required to provide the password for the root account in order
to use this application.
2.1.2 Installing the Admin Utility
The web server admin package for Ubuntu and Debian has dependencies on
wxWidgets version 2.8 which must be installed before installing the admin
utility. The web server must also be installed before the admin utility is
installed. In order to set up wxWidgets, you need to add the software repository
for wxWidgets.
NOTE
NOTE
For Debian 7 (Wheezy) and Ubuntu 11.10 (Oneiric) and later,
the software repository for the required version of wxWidgets
(2.8) is already available in the standard distribution and you can
skip the below steps up to the installation of the WxWidgets
library package.
Set up software repositories appropriate for your Linux version. For example,
for Ubuntu Natty Narwhal, the following lines need to appear in
/etc/apt/sources.list:
deb http://apt.wxwidgets.org/ natty-wx main
deb-src http://apt.wxwidgets.org/ natty-wx main
You also need to install the certificate from http://apt.wxwidgets.org/key.asc as
follows:
The package name contains version and revision numbers, and,
therefore, may differ from that shown above.
The wxWidgets and web server admin packages can be removed using the
following command lines:
sudo apt-get remove wxgtk2.8-0
sudo dpkg --remove csiwebadmin
To use the sudo command the user must be part of the sudo
group. Otherwise, you can use the su command or log in as the
root user to install the wxWidgets library and web server admin
package.
2.2 RPM Installation (SUSE and Red Hat)
2.2.1 Locate the RPM for Your Distribution
The following table shows the Linux RPM distributions that are supported and
the RPM file that supports each:
Distribution RPM File Name
Red Hat csiweb-redhat_*_i386.rpm
SUSE csiweb-suse_*_i386.rpm
The RPM files are located in the root directory of the CSI Web Server for
Linux CD-ROM.
2.2.2 Log In as a Root User
The RPM utility requires root privileges on the host computer in order to
change the state of the RPM database. You can gain root privileges by using
the su command or by logging in to a terminal as the root user.
2.2.3 Use RPM to Install the Software
The following command line demonstrates use of the RPM utility to install CSI
Web Server for Linux:
rpm --install csiweb-redhat_1.1-31_i386.rpm
NOTE
The package name contains version and revision numbers, and,
therefore, may differ from that shown above.
The RPM utility can also be used to upgrade an already installed version by
replacing the --install option with the --upgrade option on the command line.
3
CSI Web Server for Linux Installation Guide
The utility can also be used to delete the package by using the following
command line:
rpm --erase csiwebserver
2.2.4 Alternatives to the RPM Command Line
Instead of installing from the command line, most Linux distributions now
provide a GUI program that performs the same types of operations. On
CentOS, for instance, the Package Manager application can be accessed by
clicking the “Add/Remove Software” item on the “Applications” menu. Note
that you will still be required to provide the password for the root account in
order to use this application.
3. What the RPM/DEB Installs
Installing the CSI Web Server for Linux RPM or DEB results in the following
actions:
•Copies binary executables and user documentation to the
/opt/CampbellSci/CsiWebServer directory.
4. Usage Notes
4.1 Starting and Stopping the Web Server
On those platforms where the CSI Web Server Administrator (CSIWebAdmin)
is available, the easiest way to start and restart the web server is by clicking on
its icon on the CSIWebAdmin's Status tab. Clicking on this icon will toggle the
started state of the server. Alternatively, the web server can be started and
stopped from the command line.
RedHat/Fedora
The server can be started or stopped using the /sbin/service command as
follows:
• Copies configuration files to the /etc/opt/CampbellSci directory.
• Copies daemon init scripts to directories appropriate for your
distribution and registers the csiwebd daemon so that it will start
automatically when the host operating system boots.
•Ensures that the CSI Web Server working directory at
/var/opt/CampbellSci/CsiWebServer is created.
4
/sbin/service csiwebd start
/sbin/service csiwebd stop
CSI Web Server for Linux Installation Guide
Other Distributions
The server can be started or stopped using the daemon's init script as follows:
/etc/init.d/csiwebd start
/etc/init.d/csiwebd stop
Note that these commands must be run with root privileges. Alternatively,
some distributions provide a service manager GUI application to start and stop
daemons.
4.2 Launching the CSIWebAdmin Package
The CSIWebAdmin package can be launched using the application launcher
found at /usr/share/applications/CSI Web Server Admin.
4.3 Changing the Web Server Configuration File
4.3.1 Location of the Web Server Configuration File
The web server looks for its main configuration file, config.xml, in the sys
subdirectory of its application directory. If the web server cannot find a
configuration file, it will generate its own default configuration and write it at
the specified directory. By default, the configuration file is:
/var/opt/CampbellSci/CsiWebServer/sys/config.xml
4.3.2 Organization of the Configuration File
The configuration file is in XML format. It root element is expected to have the
name, CsiWebServer. This element does not expect any attributes but it does
expect to contain an http-settings child and can optionally contain a logsettings element child.
4.3.2.1 http-settings Element
This element describes the configuration settings for the HTTP server. The
following attributes are required:
service-port This attribute specifies the TCP port on which the HTTP
server will offer its service. This value will default to TCP port
80 (the default port for the HTTP protocol).
home-dir This attribute specifies the directory that the HTTP server will
use as its root. If specified as an empty string (the default), the
home directory will default to the application working
directory.
5
CSI Web Server for Linux Installation Guide
The http-settings element has a child element, https that will specify the
configuration of the HTTPS server stack. This child element must have the
following attributes:
enabled A boolean value that will specify whether the HTTPS stack is
service-port Specifies the TCP port on which the web server will accept
key Specifies the path to the file that contains the HTTPS private
password Specifies the password which is needed in order to decrypt the
cert Specifies the path to the file that contains the HTTPS
4.3.2.2 log-settings Element
enabled for the web server.
HTTPS connections.
key.
HTTPS private key.
certificate.
The server can be optionally configured to track its progress in one or more
baled log files. This feature is enabled when there is log-settings element in the
server configuration. This element recognizes the following attributes:
mode Specifies the mode that will be used to control how log files
are written by the server. The following values are recognized
for this attribute:
disabled--Specifies that log files will not be created.
time--Specifies that the log files will be baled based upon the
passage of time and the interval specified by the interval
attribute.
size--Specifies that the log files will be baled based upon the
size of the file and the maximum size specified by the balesize parameter.
dir This attribute specifies the directory where the log file(s) will
be kept. If not specified or is specified as an empty string, this
attribute value will default to the application working
directory.
file This attribute specifies the base name that will be used when
generating log files. If this attribute is not specified or is
specified as an empty string, then it will default to
csiwebd$.log. The dollar sign character in this string marks
the part of the name that will get changed when the log file is
baled.
6
CSI Web Server for Linux Installation Guide
interval This attribute specifies the interval, in milliseconds, at which
the log files will get baled. If this attribute is not specified, it
will default to a value of 86400000 (one day in milliseconds).
The server will not honour any interval that is less than 10
seconds (it will clamp it to this minimum interval). This
parameter will be ignored unless the mode attribute is set to
time.
bale-size This attribute specifies the maximum size, in bytes, that the
active log file will be allowed to reach before baling occurs.
It will be ignored unless the mode attribute is set to size.
bale-count Specifies the maximum number of baled files that will be
kept by the web server before the oldest baled file is
overwritten during a baling event.
report-headers Specifies that HTTP headers that are sent or received should
be written in the log files. This can be a useful
troubleshooting tool but can increase the amount of data
logged per web transaction dramatically.
4.3.3 Editing the Configuration File
On those platforms where CSIWebAdmin is available, the configuration file
can be edited using CSIWebAdmin as explained in Section 1, CSI Web Server Administrator, in the CSI Web Server manual.
For those platforms that do not include CSIWebAdmin, the config.xml file
must be edited directly using a text editor.
4.3.4 Configuration File Auto-Update
When the web server reads the configuration file, it will also save the date/time
when that file was last changed. It will check the file approximately every
fifteen seconds to see if the file has changed since the last time that it was read.
If its has changed, the server will read the file again and reinitialise itself with
its contents.
4.4 Security
Users and their website access rights are controlled through .csipasswd files.
Each user can be given one of the following access levels (the numbers in
parentheses are used when editing the configuration file manually):
None (0) – No access is allowed. The account is disabled.
Read Only (3) – Allowed to view data. No values can be changed.
Read/Write (2) – Allowed to view data, make changes to writeable values
in a datalogger’s Public or Status table or a virtual data source, and set a
datalogger’s clock.
7
CSI Web Server for Linux Installation Guide
All (1) – Allowed to view data, make changes to writeable values in a
datalogger’s Public or Status table or a virtual data source, set a
datalogger’s clock, use the API FileControl command, and publish
websites.
Section 3.1, PC Websites, in the CSI Web Server manual explains how to
create and edit .csipasswd files from CSIWebAdmin or the Web Publisher. The
csipasswd command can be used from the command line to edit the .csipasswd
file.
Adding a User
In order to add a user with csipasswd, invoke the command as follows:
Advanced Linux administrators may have reasons to modify the provided init
scripts, create their own, or use other methods for launching the daemon. The
csiwebserver executable supports the following command line options:
--AppDir=path: Controls the location where the server will look for its
configuration file and will also control the default location of the web
server home directory as well as its log files. If this option is not
specified, the value will be read from the registry. If not specified in
the registry, it will default to /var/opt/CampbellSci/CsiWebServer.
--run-option=<standalone|daemon>: Standalone specifies that the program
will run within the console from which it was started. In this mode, it
will write its log events to the stdout device. This mode is very useful
for debugging and/or troubleshooting. Daemon is the default if the
run-option option is not specified on the command line and will make
the program run as a daemon. This will force the program to fork
(create another process) and then stop. The forked process will close
its stdio handles and then execute as a daemon.