[docs] xmldocs - docelic modified 12 files

docs at icdevgroup.org docs at icdevgroup.org
Wed May 25 05:36:51 EDT 2005


User:      docelic
Date:      2005-05-25 09:36:50 GMT
Modified:  guides   faq.xml
Added:     refs     Mall OrderReport PageSelectField ParseVariables
Added:              Password Pragma PriceCommas PriceDivide ProductDir
Added:              ProductFiles RemoteUser
Log:
* 10 new config directives documented.

Revision  Changes    Path
1.2       +109 -2    xmldocs/guides/faq.xml


rev 1.2, prev_rev 1.1
Index: faq.xml
===================================================================
RCS file: /var/cvs/xmldocs/guides/faq.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- faq.xml	24 May 2005 21:42:18 -0000	1.1
+++ faq.xml	25 May 2005 09:36:50 -0000	1.2
@@ -60,7 +60,7 @@
 <qandaset>
 
 
-<qandadiv><title>How does &IC; work</title>
+<qandadiv><title>How does Interchange work</title>
 
 <qandaentry>
 <question><para>
@@ -76,7 +76,7 @@
 Where are the images?
 </para></question>
 <answer><para>
-&IC; is a &glos-CGI; program, and if relative image paths were used, erroneous 
+&IC; is a &glos-CGI;; program, and if relative image paths were used, erroneous 
 &glos-img; output like the following would have occured:
 
 <programlisting><![CDATA[
@@ -116,6 +116,113 @@
 Absolute image paths are not affected. An image such as
 <literal>/other/images/whatever.gif</literal> will not be changed.
 </para></answer>
+</qandaentry>
+
+</qandadiv>
+
+<qandadiv><title>Installation</title>
+
+<qandaentry>
+<question><para>
+Configuration Problems
+</para></question>
+<answer><para>
+Most &IC; configuration and setup problems are due to one of the following:
+</para>
+
+<itemizedlist>
+<listitem><para>Wrong information given to makecat program.
+</para><para>
+This is by far the most common problem. To install a working demo,
+&IC; needs to know what the &glos-DOCROOT; is and how to run &glos-CGI;
+programs. Details of this setup are server- and site-specific, which may
+require some research.
+</para><para>
+Re-run the configuration again, and pay close attention to the prompts
+given. There are examples given which apply to most systems.
+</para><para>
+If the web server is &APACHE; or NCSA, &IC; will try and parse its
+<filename>httpd.conf</filename> file to help you along, but many ISPs
+don't allow users to
+read these and it may fail.
+</para></listitem>
+<listitem><para>Too-low version of &PERL;.
+</para><para>
+If you have a &PERL; earlier than 5.005, &IC; will not work. Don't
+even try an earlier version.
+</para></listitem>
+
+<listitem><para>&PERL; compiled with <literal>USE_THREADS</literal>.
+</para><para>
+Run <command>perl -V</command>. If you see
+<literal>-DUSE_THREADS</literal> in the compilation definition,
+you might run into problems with &IC;.
+</para></listitem>
+
+<listitem>
+<para>Running &IC; as root</para>
+<para>You cannot run &IC; software as <systemitem class='username'>root</systemitem>.</para>
+</listitem>
+</itemizedlist>
+</answer></qandaentry>
+
+
+
+<qandaentry>
+<question><para>
+Proper file ownership and permissions
+</para></question>
+<answer><para>
+If you are setting &IC; up for the entire machine, and not just
+as a virtual host user, it is usual to create a special
+<systemitem class='username'>interch</systemitem> user
+to run the daemon and the link program. This means the directory listing
+for your <filename>cgi-bin/</filename> directory should be something like:
+
+<programlisting><![CDATA[
+-rwsr-xr-x   1 interchange users        6312 Dec 30 11:39 cgi-bin/simple
+]]></programlisting>
+
+and for the socket file it should be:
+
+<programlisting><![CDATA[
+srw-------   1 interchange users           0 Dec 30 11:41 etc/socket
+]]></programlisting>
+
+Once you have set up the software, you can easily install catalogs as
+<systemitem class='username'>root</systemitem> as long as your &glos-umask;
+is set to <literal>2</literal> or <literal>22</literal>.
+</para><para>
+
+(The following assumes you have made the &IC; software owned and run by the
+special user <systemitem class='username'>interch</systemitem> and that each
+user has a &IC; catalogs directory <filename>/home/user/catalogs</filename>).
+</para><para>
+
+The best way to set permissions on a multi-user system is to make all
+files group readable and writable (<literal>660</literal> or
+<literal>664</literal> &glos-mode;). If you have a
+system setup that places each user in their own group, make
+<systemitem class='username'>interch</systemitem> a member of each user's
+group and set ownership and permissions with:
+
+<programlisting>
+find <replaceable>/home/user/catalogs</replaceable> -print | xargs chown <replaceable>USER</replaceable>
+find <replaceable>/home/user/catalogs</replaceable> -print | xargs chgrp <replaceable>USER</replaceable>
+find <replaceable>/home/user/catalogs</replaceable> -print | xargs chmod g+rw
+</programlisting>
+
+For best results, set the user's default &glos-umask; to <literal>2</literal>,
+so that they will,
+by default, create files that have the proper permissions. If you have
+all users in the same group, the above is not secure. You should put
+<systemitem class="username">interch</systemitem> in a group of which no
+user is a member (perhaps
+<literal>interch</literal> would be a good choice ;-) and set all files
+owned by the group <literal>interch</literal> and all directories to &glos-mode;
+<literal>2770</literal>:
+</para>
+</answer>
 </qandaentry>
 
 </qandadiv>



1.1                  xmldocs/refs/Mall


rev 1.1, prev_rev 1.0
Index: Mall
===================================================================
__NAME__ purpose
issue cookies only for the current catalog, and not the base domain
__END__


__NAME__ see also
CookieDomain,Cookies,CookieLogin
__END__

__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'>0</arg>
	<arg choice='plain'>1</arg>
</group>
__END__


__NAME__ description
Issue cookies only for the current catalog's script. By
default, when &IC; issues a cookie, it does so for the whole base domain.
</para><para>
This setting will allow multiple catalogs to operate on the same domain
without interfering with each others session ID.
__END__

__NAME__ example: Enabling Mall
<programlisting>
Mall 1
</programlisting>
__END__




1.1                  xmldocs/refs/OrderReport


rev 1.1, prev_rev 1.0
Index: OrderReport
===================================================================
__NAME__ purpose
specify location of the order report form
__END__


__NAME__ see also
Profiles
__END__

__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'><replaceable>filename</replaceable></arg>
</group>
__END__


__NAME__ description
Specify location of the simple order report file.
__END__

__NAME__ example: Setting OrderReport
<programlisting>
OrderReport /data/order-form
</programlisting>
__END__




1.1                  xmldocs/refs/PageSelectField


rev 1.1, prev_rev 1.0
Index: PageSelectField
===================================================================
__NAME__ purpose
specify products database column used to select the flypage
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'><replaceable>column_name</replaceable></arg>
</group>
__END__


__NAME__ description
Sets a <database>products</database> database column which can be used to
select the on-the-fly template page (the &glos-flypage;). This allows
multiple flypages to be defined and selected automatically. If the field
is empty (no spaces!), the default will be used.
__END__

__NAME__ example: Setting PageSelectField
<programlisting>
PageSelectField display_page
</programlisting>
__END__




1.1                  xmldocs/refs/ParseVariables


rev 1.1, prev_rev 1.0
Index: ParseVariables
===================================================================
__NAME__ purpose
parse (interpolate ITL and variables) variable values before storing them
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'>0</arg>
	<arg choice='plain'>1</arg>
</group>
__END__


__NAME__ description
Specify that global and catalog variables should be parsed in catalog
configuration directives (not including the &conf-Variable; directives
themselves, which never have their contents parsed).
</para><para>
Applies only to variables with names in ALL CAPS. Our catalogs enable
&conf-ParseVariables; and usually rely on that behavior.
__END__

__NAME__ example: Enabling ParseVariables globally
<programlisting>
ParseVariables 1
</programlisting>
__END__

__NAME__ example: Defining a variable containing parse-needing data
<programlisting>
Variable STORE_ID topshop

ParseVariables Yes
StaticDir  /home/__STORE_ID__/www/cat
ParseVariables No
</programlisting>
__END__




1.1                  xmldocs/refs/Password


rev 1.1, prev_rev 1.0
Index: Password
===================================================================
__NAME__ purpose
password for RemoteUser
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'><replaceable>password</replaceable></arg>
</group>
__END__


__NAME__ description
Password that will cause internal authorization checks for &conf-RemoteUser;
to allow access.
</para><para>
The password must be encrypted, unless <varname>MV_NO_CRYPT</varname> is
enabled.
__END__


__NAME__ notes
The encrypted password is a standard Unix crypt, which you can obtain either
using <command>makepasswd --crypt</command> or indirectly
using <command>htpasswd</command>, or invoking
<command>perl -le'print crypt("mypasswd","AA")'</command>,
where <literal>mypasswd</literal> is the desired password and
<literal>AA</literal> are your two always random characters.
</para><para>
See &var-MV_NO_CRYPT; and &tag-crypt; for more discussion.
__END__


__NAME__ see also
RemoteUser, MV_NO_CRYPT, crypt
__END__

__NAME__ example: Setting Password with an encrypted string corresponding to a blank password
<programlisting>
Password bAWoVkuzphOX.
</programlisting>
__END__





1.1                  xmldocs/refs/Pragma


rev 1.1, prev_rev 1.0
Index: Pragma
===================================================================
__NAME__ purpose
specify pragma's default value
__END__


__NAME__ synopsis
	<arg choice='plain'><replaceable>pragma_name</replaceable></arg>
	<arg choice='opt'><replaceable>value</replaceable></arg>
__END__


__NAME__ description
Sets the default value of an Interchange &glos-pragma;.
__END__

__NAME__ notes
Please see the &glos-pragma; glossary entry for complete information.
__END__


__NAME__ example: Enabling 'dynamic_variables' pragma (variant 1)
<programlisting>
Pragma dynamic_variables
</programlisting>
__END__

__NAME__ example: Enabling 'dynamic_variables' pragma (variant 2)
<programlisting>
Pragma dynamic_variables 1
</programlisting>
__END__

__NAME__ example: Disabling 'dynamic_variables' pragma
<programlisting>
Pragma dynamic_variables 0
</programlisting>
__END__





1.1                  xmldocs/refs/PriceCommas


rev 1.1, prev_rev 1.0
Index: PriceCommas
===================================================================
__NAME__ purpose
show thousands separator in price pictures
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'>1</arg>
	<arg choice='plain'>0</arg>
</group>
__END__


__NAME__ description
If no commas are desired in price numbers (for the &tag-item-price; tag etc.),
disable this directive. 
</para><para>
Despite the possibly misleading directive name, &IC; does not always insert
a comma ("<literal>,</literal>") but a proper &glos-locale;-equivalent of it.
__END__


__NAME__ notes
This directive is overriden by eventual
&conf-Locale; <literal>price_picture</literal> definition.
__END__


__NAME__ see also
Locale
__END__


__NAME__ example: Disabling PriceCommas
<programlisting>
PriceCommas 0
</programlisting>
__END__






1.1                  xmldocs/refs/PriceDivide


rev 1.1, prev_rev 1.0
Index: PriceDivide
===================================================================
__NAME__ purpose
specify number to divide the price by, to obtain price in units
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'><replaceable>number</replaceable></arg>
</group>
__END__


__NAME__ description
The number the price should be divided by, to get the price in base units
(dollars or such).
</para><para>
For example, if you keep your prices specified in pennies (100th part of a
dollar), set the directive to <literal>100</literal>.
__END__


__NAME__ notes
This directive is overriden by eventual &conf-Locale; definition which,
by design of &conf-Locale;, allows it to be set differently for different
currencies.
__END__


__NAME__ see also
Locale
__END__


__NAME__ example: Setting PriceDivide
<programlisting>
PriceDivide 100
</programlisting>
__END__






1.1                  xmldocs/refs/ProductDir


rev 1.1, prev_rev 1.0
Index: ProductDir
===================================================================
__NAME__ purpose
specify directory containing database files
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'>directory</arg>
</group>
__END__


__NAME__ description
Specify the directory containing database files.
The directory cannot be absolute, unless &conf-NoAbsolute; is disabled.
__END__

__NAME__ notes
The specified location is, unless absolute, treated relative to &glos-CATROOT;.
__END__

__NAME__ example: Setting ProductDir
<programlisting>
ProductDir databases
</programlisting>
__END__

__NAME__ example: Setting ProductDir to an absolute value
<programlisting>
NoAbsolute 0

ProductDir /data/catalog/for-sale
</programlisting>
__END__




1.1                  xmldocs/refs/ProductFiles


rev 1.1, prev_rev 1.0
Index: ProductFiles
===================================================================
__NAME__ purpose
specify all databases containing products that form one big "products" database
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain' rep='repeat'><replaceable>database</replaceable></arg>
</group>
__END__


__NAME__ description
Specify &glos-database; tables that should be, all together, logically seen
as one bigger <database>products</database> database.
</para><para>
For example, when doing product searches, all &conf-ProductFiles; databases
will be searched.
__END__


__NAME__ example: Setting ProductFiles
<programlisting>
ProductFiles vendor_a vendor_b
</programlisting>
__END__





1.1                  xmldocs/refs/RemoteUser


rev 1.1, prev_rev 1.0
Index: RemoteUser
===================================================================
__NAME__ purpose
specify required value of the REMOTE_USER environment variable
__END__


__NAME__ synopsis
<group choice='req'>
	<arg choice='plain'><replaceable>username</replaceable></arg>
</group>
__END__


__NAME__ description
Specify required value of the <envar>REMOTE_USER</envar> HTTP environment 
variable that will enable catalog reconfiguration. HTTP basic authentication
must be set configured independently at web server side, for this to work.
__END__


__NAME__ see also
Environment
__END__

__NAME__ example: Setting RemoteUser
<programlisting>
RemoteUser interchange
</programlisting>
__END__










More information about the docs mailing list