httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From alta <a...@alta-research.com>
Subject [users@httpd] Problems with "publishing" PUT
Date Wed, 27 Nov 2002 20:03:47 GMT
Problems implementing "publishing" PUT on Apache:


I have been working to enable the "publishing" PUT method on
my Apache server.

I originally attempted to solve the problem with PHP, which supposedly
supports PUTs for publishing, but existing doc (available on the web)
is sparse and sometimes inaccurate.  So, I went to trusty CGI.

My need is to enable "publishing," as from Netscape Composer.
This, via http, not ftp. The browsers do their upload using a PUT,
but Apache does not have the complete mechanism natively to handle
the publishing PUT.  This is done by setting up in the httpd.conf 
file:

     ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
     Script PUT /cgi-bin/put.cgi
     
This mechanism supposedly vectors any server request containing a PUT
to the script put.cgi, which is a perl script that handles the file 
after upload.

I have experimented and searched the web for documentation,
but have not been able to get the publishing PUT to work.


THE SYMPTOMS:

If I attempt to publish from Netscape to the server root htdocs
directory, the returned error message is:

     Error uploading files.  The server responded: METHOD NOT ALLOWED.
     The requested method PUT is not allowed for /test/test.htm on
     this server.  Apache/1.3.20 Server at alta1.local Port 80.

If I attempt to publish to a public_http directory, the error message 
is:

     Error uploading files.  The server responded: FORBIDDEN.
     You don't have permission to access /~alta/test.htm on
     this server.  Apache/1.3.20 Server at alta1.local Port 80.
     
(configuration details below)
     
     
Your suggestions appreciated ... Reed


----------------------------------------------------------------
    
     
CONFIGURATION DETAILS AND TEST RESULTS:

- Apache 1.3.20 with mod_actions on SuSE 7.3 (no mod_perl).

- The server works fine for normal operations like html, cgi, and php.

- For testing the PUT mode, web directories have permissions 777.

- No .htaccess or other auth files or mechanisms.

- The Alias properly works to cgi-bin and bin.cgi,
  in other words, bin.cgi can be directly run from a browser.

- A telnet, hand-typed PUT to port 80 produces the same results.

- The rcapache.log says:  Syntax OK

- The access_log shows like:

  192.168.0.2 - - [27/Nov...] "PUT /~alta/test.htm HTTP/1.0" 403 280
  192.168.0.2 - - [27/Nov...] "PUT /test/test.htm HTTP/1.0" 405 298
  
- The error_log:

  [Wed...] [crit] (98)Address already in use: make_sock:
     could not bind to port 80           <--- I do not understand 
this. ###
  [Wed...] [error] [client ...] client denied by server configuration:
     /home/alta/public_html/home.htm
  [Wed...] [error] [client ...] client denied by server configuration:
     /home/alta/public_html/home.htm


- Parts of httpd.conf:

  ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
  Script PUT /cgi-bin/put.cgi

  <Directory "/usr/local/httpd/htdocs">

     Options Indexes -FollowSymLinks +Includes MultiViews

     AllowOverride None

     <Limit PUT>
      order allow,deny
      allow from all
     </Limit>

     <IfModule mod_dav.c>
        DAV Off
     </IfModule>

  </Directory>
   
  <Location /cgi-bin>
  AllowOverride None
  Options +ExecCGI -Includes
  SetHandler cgi-script
  </Location>
  
  <Directory "/usr/local/httpd/cgi-bin">
     AllowOverride None
     Options None
     Order allow,deny
     Allow from all
  </Directory>
  
  <IfModule mod_perl.c>
    # Provide two aliases to the same cgi-bin directory, 
    # to see the effects of the 2 different mod_perl modes.
    # for Apache::Registry Mode
    ScriptAlias /perl/          "/usr/local/httpd/cgi-bin/"
    # for Apache::Perlrun Mode
    ScriptAlias /cgi-perl/      "/usr/local/httpd/cgi-bin/"
   </IfModule>
    #
    # "/usr/local/httpd/cgi-bin" should be changed to
    # whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
    <Directory "/usr/local/httpd/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
  </IfModule>
   
   
- suse_public_html.conf:

  <IfModule mod_userdir.c>
    UserDir public_html
  </IfModule>

  <Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
  </Directory>

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message