|
Calcium - Frequently Asked Questions
-
Where can I find some installation tips?
-
Why does my browser display the script text,
instead of running the program?
-
What does "Internal Server Error" mean?
-
What about this "Permission Denied" error message?
-
What is this "CGI version 2.42 required" error message?
-
And how about "Can't locate CGI/Carp.pm in @INC"?
(common in recent versions of Red Hat Linux)
-
We're using a Netscape web server (e.g. FastTrack,
Enterprise); why do we get these "Page Not Found" errors?
-
Why does Microsoft IIS 6.0 always show only a 404
"Page Not Found" Error?
-
Software error: Can't locate
Calendar/CalciumStart.pm in @INC ...
-
...CGI application misbehaved by not returning
a complete set of HTTP headers.
-
Software error: Day '34' out of range 1..31 at
... Calendar/Date/Calc.pm line 27
-
Can't create data
file...Permission Denied
-
Couldn't open Session ID file...
-
On Windows w/recent Active State Perl:
Use of uninitialized value in substitution (s///) at (eval 54)
line 44
or invalid method (HTTP verb),
HTTP Error 405 - The HTTP verb used to access this page is
not allowed.
-
Why doesn't my Calcium login work?
-
How do I recover a lost password?
-
Why can't I reduce anyone's permissions?
-
Does Calcium work in Perl's "taint" mode?
-
What URL can I use to go directly to a calendar?
-
How do I put an image in event text?
-
Can I display different date ranges?
-
Why aren't the columns in Block View all the
same width?
-
How do I print the calendar on one page?
-
Why doesn't my calendar print in color?
-
How do I get a left side-bar to display?
-
How do I include a calendar into another HTML page?
-
Which files should I backup?
-
Calcium is overloading the server! What can be done?
-
Can I use Calcium's Dynamic Include features
with hosted calendars?
-
Can I use TripleSync with hosted calendars?
-
If I sign up for the Hosting Service, can I
keep my calendar data and settings if I later decide to install my own
version?
-
What would the URL for our hosted installation
be?
-
Can we use a custom domain for our hosted
installation, like http://calendar.mycompany.com?
-
Where can I find some installation tips?
In our on-line documentation: Installation
Tips
-
Why does my browser display the script text, instead of
running the program?
This happens when your web server doesn't recognize that it
needs to run the script as a CGI program. Try adding a ".pl" or
".cgi" extension to the script name. If that doesn't help, make sure
the script is in the "cgi-bin" directory or folder. If you're still
seeing the program text when you browse to it, you'll need to find
out how to configure your web server to run CGI scripts.
-
What does "Internal Server Error" mean?
This usually means the server couldn't run the script at all;
not even enough to generate a useful error message describing what
the problem is. The best way to find out what's wrong is to look in
the web server's error log. (Unfortunately, most people using hosting
services can't do this.)
If you don't have access to the server's error log, you can try
getting the messages displayed in the browser instead. To do this,
you need to uncomment one line in the main Calcium script file
Calcium40.pl. Edit that file (it's ASCII, so
use a plain text editor, not e.g. MS Word), and remove the
leading '#' from the fifth line. I.e. change this:
#use CGI::Carp qw/fatalsToBrowser/;
to this:
use CGI::Carp qw/fatalsToBrowser/;
Then reload the URL; hopefully a more informative message will appear.
For unix users, two common problems are:
- the main script file (e.g. "Calcium.pl") does not have
execute permission set
- the path to the perl executable is incorrect. The
very first line of the main script file looks like this:
#!/usr/bin/perl
If your server has perl located somewhere else, you'll
need to change that; e.g. it might be something like
#!/usr/local/bin/perl
You should also make sure the main script isn't corrupted; this can
happen if it was transferred between machines with different
operating systems (e.g Windows --> unix) using FTP in binary mode.
Finally, if you have shell access to the server (or "command line"
access on a Windows machine), you can use Perl to check the script
and report any errors. Just go to the directory where Calcium is
installed, and run "perl -c Calcium40.pl", e.g.:
$ cd /home/httpd/cgi-bin
$ perl -c Calcium40.pl
That will either display some error messages, or "syntax OK". If you
do get errors and don't know what they mean, let us know - we'll be
happy to help.
-
What about this "Permission Denied" error message?
This is a file permissions problem. Calcium needs to be able
to write to the "CalciumDir40/data" directory (and sub-directories in
there) to store the data. Since Calcium runs as a CGI script, the
user that the web server runs CGI scripts as must have the
appropriate permissions.
On Unix and Mac OS X systems, make sure that user has write
permission to that directory. You can do this via FTP if you're using
a remote web server. On remotely hosted systems, the user is
typically the name associated with your account. If you have your own
Apache server, the user is typically something like "nobody", "www",
"www-data", "http-user", etc.
Remember that on Unix systems, the main Calcium script file must
be executable by the web server. Also, your web server may be
configured to prevent running a script if it is writable by anyone
other than the owner. So first, ensure the user the web server runs
your script as has execute permission. Then, if you're still having
trouble, make sure that only the owner of the file has write
permission.
Note: see below for SELinux systems (like Fedora, from Red Hat.)
On Microsoft Windows systems running IIS, the user in
question is usually called "IUSR_[machine-name]", where
[machine-name] is the name of the server. You need to make sure that
user has rights to read, write, create, and delete files in the
Calcium 'data' folder. With Windows, you typically need to be at the
machine to change access rights, so if your site is remotely hosted
and you're having file permission problems, it's likely you'll need
to get the admin staff to change it for you.
If you're having trouble setting file permissions on Windows NTFS,
you may need to use the cacls command. This is a Windows
utility you run from a Command Prompt; change to the Calcium
installation directory (i.e. the directory that the Calcium 'data'
dir is in), and run this:
cacls data /g IUSR_[machinename]:C /e /t
The "/g IUSR_[machinename]:C" part says to Grant that user Change
permission; the /e means to add the permission instead of completely
replacing the existing set; and the /t makes the command work
recursively, i.e. applies the change to all sub-directories as well.
Finally, if your server is using SELinux, there are
further settings you'll likely need to make. (The "SE" in
"SELinux" stands for "Security Enhanced".) It's likely that the
problem is that system security settings don't allow CGI scripts
to write to files unless those files have an appropriate
security context. To fix this, you can change the security
context of the Calcium data directories and files.
To do that from the command line, use the chcon
command; for example, something like the following:
chcon -R -t httpd_sys_content_t CalciumDir40/data
You can use the -Z flag to ls to see the
extended seucirty information for files and directories.
-
What is this "CGI version 2.42 required" error
message?
This means a library file that comes with Perl is too old.
The module is called "CGI.pm" - version 2.42 was released back in
1998, so most reasonable sites have a recent enough version. However,
if your hosting company (or your system admin!) won't update that
module, you can do it yourself.
It's not difficult; you can install a new version of CGI.pm that's
used only by Calcium. Here's a page of instructions.
-
And how about "Can't locate CGI/Carp.pm in @INC"?
(common in recent versions of Red Hat Linux)
This error indicates that part of the Perl installation on
the server is missing. The Perl library "CGI" is not installed -
although it is a standard part of Perl, it is sometimes packaged
separately. Some recent versions of Red Hat Linux have this problem.
To fix it, you need to install the Perl "CGI" module. For Red Hat,
you can use the RPM file "perl-CGI", which is on your installation
media. Or, you can download the installation package for CGI.pm from the CPAN, from the author's
site, or from us.
(That last link also has instructions for installing the module just
for Calcium - useful if you don't have permission to write to the
system directories on the server.)
-
We're using a Netscape web server (e.g. FastTrack,
Enterprise); why do we get these "Page Not Found" errors?
This problem is easy to fix - please see the solution in the
on-line documentation. The same problem (and solution) occur with a
few other web servers, such as Xitami.
-
Why does Microsoft IIS 6.0 always show only a 404
"Page Not Found" Error?
By default, new installations of IIS 6.0 have most
access to the web server restricted. You need to use the "Web
Service Extensions" section of the IIS Manager to enable CGI
scripts. Please see Microsoft's TechCenter for more information.
-
A message like:
Software error: Can't locate
Calendar/CalciumStart.pm in @INC (@INC contains: CalciumDir40/upgrades
CalciumDir40/redist ...
A message like this means that Calcium can't find its
installation directory. The location of the Calcium source code files
and data directory are specified in the main Calcium script; some
installations will require the full path to the Calcium installation
directory here, instead of a relative path. To fix this, edit the
main script (Calcium40.pl), and change the line near the top
that looks like this:
BEGIN {$Defines::calendar_root = 'CalciumDir40'}
Replace CalciumDir40 with the full filesystem path to that
directory. For example, something like:
BEGIN {$Defines::calendar_root = 'C:\public\html\cgi-bin\CalciumDir40'}
or maybe
BEGIN {$Defines::calendar_root = '/usr/local/apache/cgi-bin/CalciumDir40'}
should help.
-
...CGI application misbehaved by not returning
a complete set of HTTP headers.
This is likely a different symptom of the same "Can't
locate" problem above; see answer for the previous question.
-
Software error: Day '34' out of range 1..31 at
... Calendar/Date/Calc.pm line 27
This problem can occur if Calcium 3.7 or older is running
under Perl 5.8 or newer. To fix the problem, download this
modified version of the Calcium file "Calc.pm",
and copy it into the upgrades/Calendar/Date
directory of your Calcium installation. The directory
upgrades/Calendar should already exist; you'll
likely need to create the "Date" directory in there.
(To download the file, right-click the link, and pick
"Save Link As..." or "Save Target As...")
-
Couldn't open Session ID file...
This is a file permissions problem on the server. When
you login, Calcium needs to write some information to a
particular file; if the operating system doesn't let it,
you'll see an error like this.
In this case, the file in question is named
"sessionIDs", and is in the "data/Master" directory of
your Calcium installation. Try changing permissions on
that file, so the user that the web server runs CGI
scripts as has permission to write to it. Then, go back
and try logging in again.
Please see the Permissions
answer for more information on file permissions.
Or, you can simply delete that "sessionIDs" file from
the server. Typically the permissions will be correct
when it gets recreated. (That would happen the next
time somebody logs in to Calcium.) That file is used
only to keep track of who is currently logged in, so
you won't lose any information by deleting it.
-
On Windows w/recent Active State Perl:
Use of uninitialized value in substitution (s///) at (eval 54)
line 44
or invalid method (HTTP verb),
HTTP Error 405 - The HTTP verb used to access this page is
not allowed.
This is due to a bug in the version of the Perl CGI
library modules that come with ActiveState Perl version
5.8.8.817. It affects IIS and possibly other Windows web
servers. (If you like, see this Perl
bug report)
To fix the problem, you can install a different
version of the CGI modules. Simple steps for doing that
can be found on our site:
CGI Version
Fix (Note: that page describes the problem of
having a version of CGI that's too old, but you should
do what's described there - it also will fix the
problems with this new version.)
This bug may also result in problems with form
submittals on ActiveState/IIS installations not working,
resulting in blank pages or error messages.
-
Why doesn't my Calcium login work?
- Usernames and passwords are case sensitive; for example, "Bob"
and "bob" are different.
- Calcium uses cookies to maintain login information. If
cookies are disabled in your browser, you won't be able to
login to Calcium. Note: If you're using the
Microsoft IE browser and do have it set to allow cookies,
it could be a problem on your PC. There might be a corrupt
cookie file, a registry problem, or the clock on your
computer may be wrong. Please see this page from Microsoft
for more information on these IE cookie problems:
http://support.microsoft.com/kb/175662
-
How do I recover a lost password?
A user with Calcium System Administration rights can reset
passwords for users, and assign new ones; lost passwords cannot be
recovered, since they're stored only in an encrypted format.
For security reasons, there's no special `superuser' password or
`back doors'; if you lose the passwords for all users with System
Administration rights, you'll need to run a special script to reset
security - please let us know if you find yourself in this
situation, and we'll send instructions.
-
Why can't I reduce anyone's permissions?
What's likely happening is that Anonymous Users
still have System Administration permission. If that's
the case, it basically means no security is in force; anybody
will be able to do anything anywhere, and you won't be able to
set any user to a lower permission level. (Since all users
always have at least the permissions of "anonymous" users.)
Fix this by removing System Administration rights for
anonymous users. Go to the System Administration page and
follow the System Security link. From there, make sure
the Only the users selected below option is checked,
along with whichever users should have System Administration
permission.
There's more information on this at the
System
Security documentation page.
-
Does Calcium work in Perl's "taint" mode?
Yes. You can turn taint mode on easily; just add the "-T"
option to the end of the very first line of the main Calcium script.
This won't work if you're using Microsoft's IIS however; you'll
need to edit the script mapping (for ".pl" or ".cgi" extensions,
whatever is mapped to Perl); note that this will cause the server to
run all Perl scripts in taint mode.
-
What URL can I use to go directly to a calendar?
In Calcium v3.6 and later, a URL like this will go directly
to the current month in the "Conferences" calendar:
http://www.mydomain.com/cgi-bin/Calcium.pl/Conferences
Of course, you will have to substitute your domain name, and the
correct path to your Calcium script.
Some web servers don't handle that extra information in the URL
correctly. (Most notably, IIS 4 servers without a special patch.)
For these (or any) web servers, you can still get directly to a
calendar with a URL like this:
http://www.mydomain.com/cgi-bin/Calcium.pl?CalendarName=Conferences
-
How do I put an image in event text?
Just use the standard HTML <IMG>
tag in the event text. You can put a picture of, say, a Big Black Dog
in an event using text something like:
Look at my dog: <img src="/images/BigBlackDog.jpg">
And if you want that image to be a clickable link, try
Click on my dog: <a href="http://www.mydog.com">
<img src="/images/BigBlackDog.jpg"></a>
-
Can I display different date ranges?
Yes; you can display any range of dates in the Block or
List views; either with specific dates, or using dates
relative to today. There aren't links you can click to do
this though, you'd need to specify the dates in the URL
yourself.
You need to use the parameters "StartDate" and "EndDate" in
the URL. For example, this would show two weeks in
September, 2006:
http://www.mydomain.com/cgi-bin/Calcium.pl?
CalendarName=MyCal&StartDate=2006/09/03&EndDate=2006/09/16
If the calendar defaults to "Block" view, that's the format
it would use. You can specify the List view instead:
http://www.mydomain.com/cgi-bin/Calcium.pl?
CalendarName=MyCal&StartDate=2006/09/03&EndDate=2006/09/16&Type=List
You can also use dates relative to the current date, by
specifying small integers for the StartDate/EndDate
parameters. Those will be used as the number of days from
today. -0 means today, -1 yesterday, 1 tomorrow, 7 means 7
days from today, etc. (Note: you do need "-0" for
today; just "0" won't work.)
This example would display a List View, showing yesterday,
today, and tomorrow - no matter what day it is when you click
it:
http://www.mydomain.com/cgi-bin/Calcium.pl?
CalendarName=MyCal&StartDate=-1&EndDate=1&Type=List
The Block View always displays a full week, even if the
start/end dates are in the middle of a week, e.g. a Wednesday.
-
Why aren't the columns in Block View all the same width?
In Block view, the width of each column is - at a minimum -
as wide as it needs to be for the widest entry.
The problem is that calendar entries will wrap only on whitespace,
so if you have an event with a long string in it, the column it's in
will be wider. E.g. an event with the text "This is an event with
spaces" will wrap nicely, but one with
"ThisEventDoesNotHaveAnySpacesInIt" will be rather wide, since it
doesn't split the text.
You can fix this by adding a space where you want the string to
wrap; you might enter the long word above as "ThisEventDoesNot
HaveAnySpacesInIt".
-
How do I print the calendar on one page?
The actual printing is controlled by your web browser; it will
try to print whatever is displayed. If the calendar display is
too wide to fit on a page, you can try having your browser or
print software scale the page down to fit.
For example, to do this in IE 7, bring up the "Print Preview"
option. (Either via the menu bar's "File...Print Preview", or
the drop-down menu next to the printer icon on the tool bar.) On
the Print Preview screen, you'll find options to reduce the size
of the page. Similar options are available in other browsers,
like Firefox.
Another option would be to create a smaller view of the
calendar in Calcium.
To do that, the easiest way is to create a new calendar and
set it to Dynamically Include events from the calendar you
actually want to print. Then, set the display options on that
new calendar so it displays smaller - e.g. reduce font sizes,
change header/footer, etc.
That way, you can change the settings for the "printable"
calendar so it prints better, while not affecting the browser
display of the "real" calendar.
-
Why doesn't my calendar print in color?
This is likely due to print settings in your web browser. One
important thing to note is that most of the colors you see in
Calcium are actually *background* colors; in most browsers,
there's a separate print setting for that. For instance, in
Internet Explorer on Windows:
- From the IE browser menu select "Tools/Internet Options..."
- Click the "Advanced" Tab
- Check the box labeled "Print background colors and images"
If you're using a different browser, there's likely a
similar setting.
-
How do I get a left side-bar to display?
You can do this with a little trick in the Calendar Header.
You need to specify the Header as something like:
</table>
<table width="100%" background="/images/background.jpg">
<tr><td>Side Bar Content goes here...</td>
<td><table>
and set the Footer to:
</table>
Yes, the table tags don't match up; the calendar generates some that
fit together with these. You may need to experiment a bit to get it
looking right :-)
(Warning - this is not a supported feature, and behavior may
change in future releases.)
Of course, you can also get a left-side menu using HTML frames.
-
How do I include a calendar into another HTML page?
There are a few ways to do this:
- Using HTML Frames or an IFrame
- Using SSI (Server-Side Include)
- Using the side-bar method, above.
Note that using a Printer-Friendly View may be useful; this
way, you can choose to not display the calendar navigation
controls, or the calendar header, footer, etc.
For examples, please see our
Calcium Demos page.
-
Which files should I backup?
All Calcium
data and settings are stored in the 'data' directory of your Calcium
installation; that's all you need to backup. Make sure you get the
sub-directories too. (And if you've made any custom changes to the
source code, you'll want to save those.)
-
Calcium is overloading the server! What can be done?
The most common reason for this is that a web robot,
spider, or other program is accessing the calendars and
following all links, resulting in a large number of requests to
the calendar in a short time.
You can check the access logs for your site to see what sort
of requests are coming in; if it is a robot/spider problem,
there are two solutions. First, you can set security on your
calendars to require logging in to see them. Or, you can try
blocking robots using the standard "robots.txt" file, or by
configuring your web server. (E.g. using "Deny" in apache.)
Another reason Calcium can be CPU-intensive is if a calendar has
a very large number of events. If that's the case, you might
want to consider deleting old data that you don't need; that would
help reduce the load. An easy way to do that would be to go to the
"Settings" page for a calendar, and click the "Delete Events"
link. That will show a form you can use to delete all events
in a date range, e.g. from Jan 2001 through Dec. 2005.
-
Can I use Calcium's Dynamic Include features with hosted
calendars?
Yes! Your installation is a complete, private version of
Calcium Professional. All features are available, including
dynamically including one or more calendars into
another.
-
Can I use TripleSync with hosted calendars?
Yes!
-
If I sign up for the Hosting Service,
can I keep my calendar data and settings if I later decide to install
Calcium on my own server?
Yes!
-
What would the URL for our hosted installation be?
something like http://hosting.brownbearsw.com/YourNameHere
-
Can we use a custom domain for our hosted
installation, like http://calendar.mycompany.com?
Yes; you'd need to set up the DNS to point your domain
to our server (we'll supply the appropriate IP address.) There
is also a $150 setup charge for configuration on our end.
|