<!DOCTYPE html PUBLIC "-//IETF//DTD HTML//EN">
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>README - Microsoft FrontPage 2000 Server Extensions</title>
<meta name="Microsoft Theme" content="none">
</head>

<body>
<font face="Verdana">
<h1><a name="top">Microsoft FrontPage 2000 Server Extensions, UNIX</a></h1>

<font size="2"><i>&copy; Copyright Microsoft Corporation, 1999&nbsp;</i></font>


<p>The FrontPage Server Extensions are a set of programs on the Web server that support: 

</p>
<ul>
  <li>Authoring FrontPage webs</li>
  <li>Administering FrontPage webs</li>
  <li>Browse-time FrontPage web functionality</li>
</ul>


<h2>Contents&nbsp;</h2>

<a href="#relnotes">Release Notes</a><br>
<a href="#moreinfo">Resources for More Information</a>
<p>&nbsp;</p>
<hr>
<h2><a name="relnotes">Release Notes</a></h2>

<p>This section provides complementary or late-breaking 
information to supplement the Microsoft FrontPage Server Extensions documentation.</p>

<p><a href="#apache">Apache 1.3.4 Support</a><br>
<a href="#upgrading">Upgrading from previous version of FrontPage Server Extensions</a><br>
<a href="#executables">Uploading files into executable folders</a></p>


<p align="right"><font size="1"><a href="#top">Top of Page</a></font></p>


<h3><a name="apache">Apache 1.3.4 Support</a></h3>

<p>You need to take some special steps to run the FrontPage Server Extensions with Apache 1.3.4.
FrontPage Server Extensions expect to find all resource directives in the main server 
configuration file, usually http.conf. To prevent the server extensions from using any secondary
configuration files (access.conf, srm.conf), add the following lines to http.conf:</p>


</font>
<blockquote>
  <font face="Courier New">
ResourceConfig /dev/null&nbsp;<br>
AccessConfig /dev/null</font>
</blockquote>
<font face="Verdana">


<p>If you have some settings stored in secondary configuration files, move them to http.conf.</p>

<p>You must stop and restart the web server for your changes to http.conf to take effect.</p>



<p align="right"><font size="1"><a href="#relnotes">Top of Section</a></font></p>



<h3><a name="upgrading">Upgrading from previous version of FrontPage Server Extensions</a></h3>

<p>Custom entries in frontpage.cnf are not migrated to FrontPage 2000.</p>

<p>When you install FrontPage 2000 Server Extensions, a new frontpage.cnf file is created in the /usr/local/frontpage/version4.0 directory. 
Any custom settings stored in a previous-version frontpage.cnf are not used. However, you can copy 
your custom settings from the previous-version frontpage.cnf file after you install the FrontPage 2000 Server Extensions.</p>

<p>Do not overwrite the FrontPage 2000 frontpage.cnf file with a frontpage.cnf file from an 
earlier version of the FrontPage Server Extensions.</p>



<p align="right"><font size="1"><a href="#relnotes">Top of Section</a></font></p>



<h3><a name="executables">Uploading files into executable folders</a></h3>


<p>After upgrading to FrontPage 2000, FrontPage authors will not be able to upload files into
executable folders. For security reasons, the default setting on FrontPage 2000 webs does not 
allow authors to upload executable files into executable folders in a FrontPage web. This 
setting protects servers so that authors do not inadvertently upload a program containing a bug 
or a virus.</p> 

<p>To allow FrontPage authors to upload executables, set the NoExecutableCgiUpload configuration 
variable to zero (0). For information about FrontPage Server Extension configuration variables, 
see the FrontPage 2000 Server Extensions Resource Kit at <a href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</a>.</p>



<p align="right"><font size="1"><a href="#relnotes">Top of Section</a></font></p>



<hr>



<h2><a name="moreinfo">Resources for More Information</a></h2>

<p>This section lists sources of more information about the
FrontPage Server Extensions.</p>

<p><a href="#serk">Server Extensions Resource Kit</a><br>
<a href="#serkupdate">Server Extensions Resource Kit Update</a><br>
<a href="#kb">Knowledge Base</a></p>


<p align="right"><font size="1"><a href="#top">Top of Page</a></font></p>


<h3><a name="serk">Server Extensions Resource Kit</a></h3>

<p>The FrontPage 2000 Server Extensions include a full set of documentation: the Server
Extensions Resource Kit. This is an HTML document installed on the server machine (by
default) in /usr/local/frontpage/version4.0/serk. To view the Server Extensions Resource
Kit, open /usr/local/frontpage/version4.0/serk/default.htm in your Web browser.</p>

<p>The Server Extensions Resource Kit contains detailed information about installing and
administering the FrontPage Server Extensions along with an overview of the Server
Extensions, a detailed discussion of Server Extensions security on UNIX and Windows,
troubleshooting information, and a full set of appendixes.</p>

<p align="right"><font size="1"><a href="#moreinfo">Top of Section</a></font></p>


<h3><a name="serkupdate">Server Extensions Resource Kit Update</a></h3>

<p>For updated information about installing, setting up, and administrating the FrontPage Server 
Extensions, see the Server Extensions Resource Kit Update at: <a href="http://officeupdate.microsoft.com/frontpage/wpp/serk/">http://officeupdate.microsoft.com/frontpage/wpp/serk/</a>.</p>


<p align="right"><font size="1"><a href="#moreinfo">Top of Section</a></font></p>


<h3><a name="kb">Microsoft Knowledge Base</a></h3>

<p>For further technical information on FrontPage, please consult Support Online. Use Support
Online to easily search Microsoft Product Support Services' collection of resources including 
technical articles from Microsoft's extensive Knowledge Base, FAQs, &amp; troubleshooters to find 
fast, accurate answers. You can also customize the site to control your search using either 
keywords or the site's natural language search engine, which uses normal everyday language for 
answering inquiries, so you can write your question in your own words. To begin, go to
<a href="http://support.microsoft.com/support/">http://support.microsoft.com/support/</a>.</p>  

<p align="right"><font size="1"><a href="#moreinfo">Top of Section</a></font></p>


<p>&nbsp;</p>  

</font>
</body>
</html>
