Commit 25f4c08d authored by Amos Latteier's avatar Amos Latteier

Refactored ZServer documentation a bit, and tried to bring things up to date.

parent 12fcc480
......@@ -19,42 +19,38 @@ ZServer Changes
Now using (almost) unmodified Medusa sources.
Added environment variable overriding to HTTPServer.py
Documented the startup script more fully.
ZServer now tries to become nobody if run as root.
Bugs Fixed
PCGI is a lot more stable now.
Using PCGI under IIS, now PATH_INFO begins with a /
Fixed FTP passive mode response message IP address.
Fixed multiple file upload problem where response gets out of synch.
The log file is now not overwritten each time Zope starts.
Logging works for PCGI.
Known Bugs
PCGI under IIS 4.0 is broken with respect to file uploads, and binary
data in general. IIS seems to convert \n to \r\n in binary data :-(
The latest medusa select_trigger.py doesn't seem to work under NT.
This seems to be an IIS/PCGI issue, not a ZServer issue.
TODO
stress test multi-threaded channel push. (done)
More testing.
test http 1.1 pipelined requests. (done)
iron out additional http 1.1 issues... (hmm)
test ftp with emacs. (done)
remove cruft.
test with latest Zope from CVS. (done)
fix medusa select_trigger under win32.
re-write Zope installers to install a ZServer start script.
Fix latest medusa select_trigger under win32.
get pcgi working with IIS and apache under win32, or at least get
it working under apache 1.3.6 on NT
Re-write Zope installers to install a ZServer start script.
ZServer 1.0a2
......
ZServer Installation
--------------------
Requirement
You must have a very recent copy of Zope or at least ZPublisher
installed.
ZServer *does not* work with Zope 1.10.2. It requires some newer
features of Zope. You can either use the lastest Zope from CVS or
else get the latest ZPublisher package from CVS and use it with
your current Zope installation. Zope CVS information is available
at::
http://www.zope.org/Community/CVS_public_access
If this doesn't make sense to you, then wait until the next Zope
release to use ZServer. This release is still for hackers, sorry.
Installation
Untar and ungzip the ZServer tarball in your Zope directory. This
will create a 'ZServer' directory in your Zope directory.
Configuration
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution).
Shell scripts and batch files
You may also wish to create a shell script (or batch file under
win32) to set environment variables (such as ZOPE_DEBUG_MODE and
PYTHONHOME) and run the start script.
Here's an example shell script for a binary Zope release::
ZOPE_DEBUG_MODE=1
export ZOPE_DEBUG_MODE
PYTHONHOME=/home/Zope
export PYTHONHOME
/home/Zope/bin/python /home/Zope/Zserver/start.py &
Note: If ZServer fails because it can't find some standard Python
libaries there's a good bet that you need to set the PYTHONHOME as
shown above.
Here's an example batch file::
set ZOPE_DEBUG_MODE=1
"\Program Files\Zope\bin\python" "\Program Files\Zope\ZServer\start.py"
Now you're ready to go.
Starting ZServer
To start ZServer run the start script::
./start.py
To stop the server type 'control-c'.
Note: If you've created a shell script or batch file to run ZServer
use that instead.
You should see some Medusa information come up on the screen.
A log file will be written to the 'var' directory, named
'ZServer.log' by default.
Using ZServer
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
ftp www.example.com 8021
This opens a FTP session to your machine on port 8021, ZServer's
default FTP port. When you are prompted to log in you should supply
a Zope username and password. (Probably you should use an account
with the 'Manager' role, unless you have configured Zope to allow
FTP access to the 'Anonymous' role.) You can also enter 'anonymous'
and any password for anonymous FTP access. Once you have logged in
you can start issuing normal FTP commands.
Right now ZServer supports most basic FTP commands.
Note: When you log in your working directory is set to '/'. If you
do not have FTP permissions in this directory, you will need to 'cd'
to a directory where you have permissions before you can do
anything. See above for more information about logging into FTP.
Where to go from here
Check out the README.txt file. It contains information on what
ZServer can do, how it works and and what you can do if you run into
problems.
And don't forget to have fun!
\ No newline at end of file
ZServer Release 1.0a2
ZServer Release 1.0b1
---------------------
Welcome to the second Zope ZServer alpha release. This release
Welcome to the first Zope ZServer beta release. This release
provides a first look at Zope/Medusa integration, and introduces FTP
support in Zope.
......@@ -13,8 +13,9 @@ What is ZServer?
http://www.zope.org/Documentation/Reference/ZServer
ZServer gives you HTTP, FTP, and PCGI access. In later releases it
will probably offer more protocols such as FastCGI, WebDAV, etc.
ZServer gives you HTTP, FTP, WebDAV, and PCGI access. In later
releases it will probably offer more protocols such as FastCGI,
etc.
What is Medusa?
......@@ -40,12 +41,12 @@ ZServer FTP support
* Create Documents, Images, Files, Folders
* Delete any sort of object
* Delete objects and Folders.
So basically you can do more than is possible with PUT. Also,
So basically you can do more than is possible with HTTP PUT. Also,
unlike PUT, FTP gives you access to Document content. So when you
download a Document you are getting its content, not what it looks
like when it rendered.
like when it is rendered.
Using FTP
......@@ -66,7 +67,8 @@ ZServer FTP support
* login with a special name that indicates where you are
defined.
The format of the special name is <username>@<path>. For example::
The format of the special name is '<username>@<path>'. For
example::
joe@Marketing/Projects
......@@ -94,23 +96,22 @@ ZServer FTP support
upload it to change the object's properties.
We do not currently have a target date for FTP property support.
It will probably need to wait until Zope has property sheets.
How does FTP work?
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
ZServer PCGI support
......@@ -126,12 +127,17 @@ ZServer PCGI support
impose a larger overhead than simply using the web server as an HTTP
proxy for ZServer.
PCGI support in ZServer is still incomplete.
To use PCGI, configure your PCGI info files to communicate with
ZServer by setting the PCGI_PORT, PCGI_SOCKET_FILE, and PCGI_NAME.
The other PCGI settings are currently ignored by ZServer.
ZServer WebDAV support
WebDAV is a new protocol for managing web resources. WebDAV operates
over HTTP. Since WebDAV uses HTTP, ZServer doesn't really have to do
anything special, except stay out of Zope's way when handling WebDAV
requests.
Differences between ZopeHTTPServer and ZServer
Both ZopeHTTPServer and ZServer are Python HTTP servers.
......@@ -151,68 +157,28 @@ Differences between ZopeHTTPServer and ZServer
Who should use ZServer?
This release is *alpha* quality. It should be used by Zope hackers.
This release is *beta* quality. It should be used by Zope hackers.
If you are not inquisitive and self-reliant, this release may
frustrate you.
Installation
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution). If you are using
win32, you might want to create a bat file to run the 'start.py'
program with Zope's Python.
Now you're ready to go.
In later Zope releases, ZServer installation and stability will
improve and eventually ZServer will probably supplant
ZopeHTTPServer.
Usage
Running ZServer as nobody
To start ZServer run the start script::
./start.py
To stop the server type 'control-c'.
Normally ZServer will run with the userid of the user who starts
it. However, if ZServer is started by root, it will attempt to
become nobody.
ZServer is similar to ZopeHTTPServer in these respects.
You should see some Medusa information come up on the screen.
A log file will be written, named 'ZServer.log' by default.
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
ftp www.example.com 8021
This starts and FTP session to your machine on port 8021, ZServer's
default FTP port. When you are prompted to log in you should supply
a Zope username and password. (Probably you should use an account
with the 'Manager' role, unless you have configured Zope to allow
FTP access to the 'Anonymous' role.) You can also enter 'anonymous'
and any password for anonymous FTP access. Once you have logged in
you can start issuing normal FTP commands. Right now ZServer only
supports basic FTP commands. Note: When you log in your working
directory is set to '/'. If you do not have FTP permissions in this
directory, you will need to 'cd' to a directory where you have
permissions before you can do anything. See above for more
information about logging into FTP.
If you run Zope with different userids you must be aware of
permission issues. Zope must be able to read and write to the 'var'
directory. If you change the userid Zope is running under you will
probably need to change the permissions on the 'var' directory
and the files in it in order for Zope to run under a different
userid.
Support
......@@ -231,19 +197,10 @@ License
Outstanding issues
PCGI support is buggy. The FTP interface for Zope objects may be
changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
and/or renamed. When FTP support for properties is added, this may
change a lot. WebDAV support will also probably cause a little
reorganization.
Currently ZServer's Medusa files are a bit modified from the
originals. It would be good idea to try and keep deviations to a
minimum. For this reason we have been feeding bug reports and change
requests back to Sam Rushing for inclusion in the official Medusa
sources. It is possible, however, that Medusa and ZServer will
diverge in some small respects despite our best efforts to keep them
unified. One area in particular where ZServer currently departs from
Medusa is in the use of future producers. Change is likely in
ZServer's use of future producers.
The FTP interface for Zope objects may be changed, i.e.
'manage_FTPlist' and 'manage_FTPstat' maybe changed and/or renamed.
When FTP support for properties is added, this may change a lot.
HTTP 1.1 support is ZServer is rather spotty, though it does handle
pipelined requests.
......@@ -19,42 +19,38 @@ ZServer Changes
Now using (almost) unmodified Medusa sources.
Added environment variable overriding to HTTPServer.py
Documented the startup script more fully.
ZServer now tries to become nobody if run as root.
Bugs Fixed
PCGI is a lot more stable now.
Using PCGI under IIS, now PATH_INFO begins with a /
Fixed FTP passive mode response message IP address.
Fixed multiple file upload problem where response gets out of synch.
The log file is now not overwritten each time Zope starts.
Logging works for PCGI.
Known Bugs
PCGI under IIS 4.0 is broken with respect to file uploads, and binary
data in general. IIS seems to convert \n to \r\n in binary data :-(
The latest medusa select_trigger.py doesn't seem to work under NT.
This seems to be an IIS/PCGI issue, not a ZServer issue.
TODO
stress test multi-threaded channel push. (done)
More testing.
test http 1.1 pipelined requests. (done)
iron out additional http 1.1 issues... (hmm)
test ftp with emacs. (done)
remove cruft.
test with latest Zope from CVS. (done)
fix medusa select_trigger under win32.
re-write Zope installers to install a ZServer start script.
Fix latest medusa select_trigger under win32.
get pcgi working with IIS and apache under win32, or at least get
it working under apache 1.3.6 on NT
Re-write Zope installers to install a ZServer start script.
ZServer 1.0a2
......
ZServer Installation
--------------------
Requirement
You must have a very recent copy of Zope or at least ZPublisher
installed.
ZServer *does not* work with Zope 1.10.2. It requires some newer
features of Zope. You can either use the lastest Zope from CVS or
else get the latest ZPublisher package from CVS and use it with
your current Zope installation. Zope CVS information is available
at::
http://www.zope.org/Community/CVS_public_access
If this doesn't make sense to you, then wait until the next Zope
release to use ZServer. This release is still for hackers, sorry.
Installation
Untar and ungzip the ZServer tarball in your Zope directory. This
will create a 'ZServer' directory in your Zope directory.
Configuration
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution).
Shell scripts and batch files
You may also wish to create a shell script (or batch file under
win32) to set environment variables (such as ZOPE_DEBUG_MODE and
PYTHONHOME) and run the start script.
Here's an example shell script for a binary Zope release::
ZOPE_DEBUG_MODE=1
export ZOPE_DEBUG_MODE
PYTHONHOME=/home/Zope
export PYTHONHOME
/home/Zope/bin/python /home/Zope/Zserver/start.py &
Note: If ZServer fails because it can't find some standard Python
libaries there's a good bet that you need to set the PYTHONHOME as
shown above.
Here's an example batch file::
set ZOPE_DEBUG_MODE=1
"\Program Files\Zope\bin\python" "\Program Files\Zope\ZServer\start.py"
Now you're ready to go.
Starting ZServer
To start ZServer run the start script::
./start.py
To stop the server type 'control-c'.
Note: If you've created a shell script or batch file to run ZServer
use that instead.
You should see some Medusa information come up on the screen.
A log file will be written to the 'var' directory, named
'ZServer.log' by default.
Using ZServer
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
ftp www.example.com 8021
This opens a FTP session to your machine on port 8021, ZServer's
default FTP port. When you are prompted to log in you should supply
a Zope username and password. (Probably you should use an account
with the 'Manager' role, unless you have configured Zope to allow
FTP access to the 'Anonymous' role.) You can also enter 'anonymous'
and any password for anonymous FTP access. Once you have logged in
you can start issuing normal FTP commands.
Right now ZServer supports most basic FTP commands.
Note: When you log in your working directory is set to '/'. If you
do not have FTP permissions in this directory, you will need to 'cd'
to a directory where you have permissions before you can do
anything. See above for more information about logging into FTP.
Where to go from here
Check out the README.txt file. It contains information on what
ZServer can do, how it works and and what you can do if you run into
problems.
And don't forget to have fun!
\ No newline at end of file
ZServer Release 1.0a2
ZServer Release 1.0b1
---------------------
Welcome to the second Zope ZServer alpha release. This release
Welcome to the first Zope ZServer beta release. This release
provides a first look at Zope/Medusa integration, and introduces FTP
support in Zope.
......@@ -13,8 +13,9 @@ What is ZServer?
http://www.zope.org/Documentation/Reference/ZServer
ZServer gives you HTTP, FTP, and PCGI access. In later releases it
will probably offer more protocols such as FastCGI, WebDAV, etc.
ZServer gives you HTTP, FTP, WebDAV, and PCGI access. In later
releases it will probably offer more protocols such as FastCGI,
etc.
What is Medusa?
......@@ -40,12 +41,12 @@ ZServer FTP support
* Create Documents, Images, Files, Folders
* Delete any sort of object
* Delete objects and Folders.
So basically you can do more than is possible with PUT. Also,
So basically you can do more than is possible with HTTP PUT. Also,
unlike PUT, FTP gives you access to Document content. So when you
download a Document you are getting its content, not what it looks
like when it rendered.
like when it is rendered.
Using FTP
......@@ -66,7 +67,8 @@ ZServer FTP support
* login with a special name that indicates where you are
defined.
The format of the special name is <username>@<path>. For example::
The format of the special name is '<username>@<path>'. For
example::
joe@Marketing/Projects
......@@ -94,23 +96,22 @@ ZServer FTP support
upload it to change the object's properties.
We do not currently have a target date for FTP property support.
It will probably need to wait until Zope has property sheets.
How does FTP work?
How does FTP work?
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
The ZServer's FTP channel object translates FTP requests into
ZPublisher requests. The FTP channel then analyses the response
and formulates an appropriate FTP response. The FTP channel
stores some state such as the current working directory and the
username and password.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
On the Zope side of things, the 'lib/python/OFS/FTPInterface.py'
module defines the Zope FTP interface, for listing sub-items,
stating, and getting content. The interface is implemented in
'SimpleItem', and in other Zope classes. Programmers will not
need to implement the entire interface if they inherit from
'SimpleItem'. All the other FTP functions are handled by
existing methods like 'manage_delObjects', and 'PUT', etc.
ZServer PCGI support
......@@ -126,12 +127,17 @@ ZServer PCGI support
impose a larger overhead than simply using the web server as an HTTP
proxy for ZServer.
PCGI support in ZServer is still incomplete.
To use PCGI, configure your PCGI info files to communicate with
ZServer by setting the PCGI_PORT, PCGI_SOCKET_FILE, and PCGI_NAME.
The other PCGI settings are currently ignored by ZServer.
ZServer WebDAV support
WebDAV is a new protocol for managing web resources. WebDAV operates
over HTTP. Since WebDAV uses HTTP, ZServer doesn't really have to do
anything special, except stay out of Zope's way when handling WebDAV
requests.
Differences between ZopeHTTPServer and ZServer
Both ZopeHTTPServer and ZServer are Python HTTP servers.
......@@ -151,68 +157,28 @@ Differences between ZopeHTTPServer and ZServer
Who should use ZServer?
This release is *alpha* quality. It should be used by Zope hackers.
This release is *beta* quality. It should be used by Zope hackers.
If you are not inquisitive and self-reliant, this release may
frustrate you.
Installation
To run ZServer you need to edit the start script to set your
configuration. In the future will will probably provide a customized
start script as part of the Zope installtion process.
To edit the start up script, open 'ZServer/start.py' in your
favorite editor and change the configuration variables. If you
understand Medusa, you can also change the rest of the script.
Finally make sure the shebang line is right on the 'start.py'
script. You can use your own copy of Python, or the copy that came
with Zope (if you are using a binary distribution). If you are using
win32, you might want to create a bat file to run the 'start.py'
program with Zope's Python.
Now you're ready to go.
In later Zope releases, ZServer installation and stability will
improve and eventually ZServer will probably supplant
ZopeHTTPServer.
Usage
Running ZServer as nobody
To start ZServer run the start script::
./start.py
To stop the server type 'control-c'.
Normally ZServer will run with the userid of the user who starts
it. However, if ZServer is started by root, it will attempt to
become nobody.
ZServer is similar to ZopeHTTPServer in these respects.
You should see some Medusa information come up on the screen.
A log file will be written, named 'ZServer.log' by default.
Once you start ZServer is will publish Zope (or any Python module)
on HTTP and/or FTP. To access Zope via HTTP point your browser at
the server like so::
http://www.example.com:9673/
This assumes that you have chosen to put HTTP on port 9673 and that
you are publishing a module named whose URL prefix is set to ''.
Note: to publish Zope normally you publish the 'lib/python/Main.py'
module.
To access Zope via FTP you need to FTP to it at the port you set FTP
to run on. For example::
ftp www.example.com 8021
This starts and FTP session to your machine on port 8021, ZServer's
default FTP port. When you are prompted to log in you should supply
a Zope username and password. (Probably you should use an account
with the 'Manager' role, unless you have configured Zope to allow
FTP access to the 'Anonymous' role.) You can also enter 'anonymous'
and any password for anonymous FTP access. Once you have logged in
you can start issuing normal FTP commands. Right now ZServer only
supports basic FTP commands. Note: When you log in your working
directory is set to '/'. If you do not have FTP permissions in this
directory, you will need to 'cd' to a directory where you have
permissions before you can do anything. See above for more
information about logging into FTP.
If you run Zope with different userids you must be aware of
permission issues. Zope must be able to read and write to the 'var'
directory. If you change the userid Zope is running under you will
probably need to change the permissions on the 'var' directory
and the files in it in order for Zope to run under a different
userid.
Support
......@@ -231,19 +197,10 @@ License
Outstanding issues
PCGI support is buggy. The FTP interface for Zope objects may be
changed, i.e. 'manage_FTPlist' and 'manage_FTPstat' maybe changed
and/or renamed. When FTP support for properties is added, this may
change a lot. WebDAV support will also probably cause a little
reorganization.
Currently ZServer's Medusa files are a bit modified from the
originals. It would be good idea to try and keep deviations to a
minimum. For this reason we have been feeding bug reports and change
requests back to Sam Rushing for inclusion in the official Medusa
sources. It is possible, however, that Medusa and ZServer will
diverge in some small respects despite our best efforts to keep them
unified. One area in particular where ZServer currently departs from
Medusa is in the use of future producers. Change is likely in
ZServer's use of future producers.
The FTP interface for Zope objects may be changed, i.e.
'manage_FTPlist' and 'manage_FTPstat' maybe changed and/or renamed.
When FTP support for properties is added, this may change a lot.
HTTP 1.1 support is ZServer is rather spotty, though it does handle
pipelined requests.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment