If something goes wrong

### Index Up <<

## If something goes wrong

MiniVend is a complex program, and needs the services of other complex programs (i.e. web servers and relational databases) to work. When there is a problem, it is not always MiniVend. It may have to do with Perl or your HTTP server setup. In fact, in the over four years of MiniVend's existence many more basic installation problems have to do with those than with MiniVend itself.

If you get a message about not being able to find libraries, or if you get a core dump or segment fault message, it is always an improperly built or configured Perl and has nothing to do with MiniVend. Contact your system administrator or install a new Perl yourself.

The `makecat` program is intended to be used to create the starting point for the catalog. If you don't get the demo to work the first time, keep trying. If you still can't get the demo to work, try running in INET mode. Finally, see the MiniVend FAQ at:

        http://www.minivend.com/minivend/faq/

Check the two error log files -- `error.log` in the MiniVend home directory (where minivend.cfg resides) and `error.log` in the catalog directory (where catalog.cfg resides; there can be many of these). Many problems can be diagnosed quickly if these error logs are consulted.

Check the README file, the FAQ, and mail list archive at the official MiniVend web site for information:

        http://www.minivend.com/minivend/

You may subscribe to the MiniVend users mail list by sending the message text `subscribe minivend-users` to:

        majordomo@minivend.com

Double check that you have the following things:

1. Using UNIX sockets: Check that the `vlink` program is SUID, or you have made appropriate changes in the SocketPerms directive. Unless the files are world-writable, the vlink program and the MiniVend server must run as the same user ID! If you are running CGI-WRAP or SUEXEC, then you will find that the `vlink` program must not be SUID.

   If you have trouble with the vlink program (named simple in the demo configuration), try re-running `makecat` and using INET mode instead. (Or you can copy the `tlink` INET mode link program over `vlink`). This should work unchanged for many systems, but if you are on an ISP or have a non-standard network configuration you may have to make some changes to minivend.cfg. For `tlink` to work you must have the proper host `name(s)` configured into the TcpHost directive in minivend.cfg. The program selects port 7786 by default (the ASCII codes for ``M'' and ``V'') -- if you decide to use another port, you must set the same number in both the tlink program (by running `compile_link`) and the `minivend.cfg` file.

   The `tlink` program does not need to be SUID.

2. That you have proper file permissions.

   IMPORTANT NOTE: The MiniVend server should not run as the user `nobody`!

   The program files can be owned by anyone, but any databases, ASCII database source files, error logs, and the directory that holds them must be writable by the proper user ID, that is the one that is executing the minivend program. The best way to operate in multi-user, multi-catalog setups is to create a special `minivend` user, then put that user in the group that each catalog user is in. If you can define a group for each individual user, that provides the best security. Then all associated files can be in 660 or 770 mode, and you should have no problems with permissions, and no problems with security.

3. The `vlink` program is being executed on a machine that has the socket file `etc/socket` on a directly attached disk. UNIX-domain sockets will not work on NFS-mounted filesystems! That means the server `minivend` and the CGI program `vlink` must be executing on the same machine.

   The `tlink` program does not have this problem, but it must have the proper host `name(s)` and TCP ports set in the TcpHost and TcpPort directives in `minivend.cfg`. Also, you should be careful of security if sensitive information like customer credit card numbers is being placed on a network wire.

MiniVend is an ambitious and complex program, and is not presented as being easy to use, easy to install, or bug-free. The configuration scripts were done to try and make a very painful process only slightly painful. Some people install in one pass. Others never make it, especially when they are running on an ISP with a restrictive setup. Determined and thoughtful users almost always make MiniVend work.

### Index Up <<