<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Re: [Seaside] Safari on Leopard Apache post problem</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>Hmm, okay, not quite apples to apples. I've always used a simple proxy to a tiny http server or swazoo, not the nasty perl relay hack to ip listener. Any chance you could give that a try? Its a whole lot simpler to set up, can't remember the exact link to a sample though.<BR>
<BR>
Cheers!<BR>
<BR>
-Boris<BR>
(Sent from a BlackBerry)<BR>
<BR>
----- Original Message -----<BR>
From: seaside-bounces@lists.squeakfoundation.org <seaside-bounces@lists.squeakfoundation.org><BR>
To: Seaside - general discussion <seaside@lists.squeakfoundation.org><BR>
Sent: Tue Nov 13 20:38:03 2007<BR>
Subject: Re: [Seaside] Safari on Leopard Apache post problem<BR>
<BR>
Boris,<BR>
On the Leopard machine I start with stock Apache config file that <BR>
ships with Leopard (see below) and add in a separate conf file that is <BR>
included in the httpd.conf file:<BR>
---<BR>
ScriptAlias /scandia/2008/ "/Library/WebServer/CGI-Executables/<BR>
scandia.pl/"<BR>
<BR>
<Directory /Library/WebServer/CGI-Executables/><BR>
Options +FollowSymLinks<BR>
RewriteEngine on<BR>
RewriteCond %{<A HREF="HTTP:Authorization">HTTP:Authorization</A>} ^(.*)<BR>
RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]<BR>
</Directory><BR>
---<BR>
<BR>
(Aside: the rewrite rules above do not work to pass the http <BR>
authorization requests). The scandia.pl file is the perl relay file <BR>
$visualHome/waveserver/waverelays/perl/visualworks.pl. The /Library/<BR>
WebServer/CGI-Executables is Apple's CGI-bin directory.<BR>
<BR>
The httpd.conf file with some comments removed:<BR>
---<BR>
ServerRoot "/usr"<BR>
<BR>
Listen 80<BR>
<BR>
LoadModule authn_file_module libexec/apache2/mod_authn_file.so<BR>
LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so<BR>
LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so<BR>
LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so<BR>
LoadModule authn_default_module libexec/apache2/mod_authn_default.so<BR>
LoadModule authz_host_module libexec/apache2/mod_authz_host.so<BR>
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so<BR>
LoadModule authz_user_module libexec/apache2/mod_authz_user.so<BR>
LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so<BR>
LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so<BR>
LoadModule authz_default_module libexec/apache2/mod_authz_default.so<BR>
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so<BR>
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so<BR>
LoadModule cache_module libexec/apache2/mod_cache.so<BR>
LoadModule disk_cache_module libexec/apache2/mod_disk_cache.so<BR>
LoadModule mem_cache_module libexec/apache2/mod_mem_cache.so<BR>
LoadModule dbd_module libexec/apache2/mod_dbd.so<BR>
LoadModule dumpio_module libexec/apache2/mod_dumpio.so<BR>
LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so<BR>
LoadModule include_module libexec/apache2/mod_include.so<BR>
LoadModule filter_module libexec/apache2/mod_filter.so<BR>
LoadModule deflate_module libexec/apache2/mod_deflate.so<BR>
LoadModule log_config_module libexec/apache2/mod_log_config.so<BR>
LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so<BR>
LoadModule logio_module libexec/apache2/mod_logio.so<BR>
LoadModule env_module libexec/apache2/mod_env.so<BR>
LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so<BR>
LoadModule cern_meta_module libexec/apache2/mod_cern_meta.so<BR>
LoadModule expires_module libexec/apache2/mod_expires.so<BR>
LoadModule headers_module libexec/apache2/mod_headers.so<BR>
LoadModule ident_module libexec/apache2/mod_ident.so<BR>
LoadModule usertrack_module libexec/apache2/mod_usertrack.so<BR>
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so<BR>
LoadModule setenvif_module libexec/apache2/mod_setenvif.so<BR>
LoadModule version_module libexec/apache2/mod_version.so<BR>
LoadModule proxy_module libexec/apache2/mod_proxy.so<BR>
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so<BR>
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so<BR>
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so<BR>
LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so<BR>
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so<BR>
LoadModule ssl_module libexec/apache2/mod_ssl.so<BR>
LoadModule mime_module libexec/apache2/mod_mime.so<BR>
LoadModule dav_module libexec/apache2/mod_dav.so<BR>
LoadModule status_module libexec/apache2/mod_status.so<BR>
LoadModule autoindex_module libexec/apache2/mod_autoindex.so<BR>
LoadModule asis_module libexec/apache2/mod_asis.so<BR>
LoadModule info_module libexec/apache2/mod_info.so<BR>
LoadModule cgi_module libexec/apache2/mod_cgi.so<BR>
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so<BR>
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so<BR>
LoadModule negotiation_module libexec/apache2/mod_negotiation.so<BR>
LoadModule dir_module libexec/apache2/mod_dir.so<BR>
LoadModule imagemap_module libexec/apache2/mod_imagemap.so<BR>
LoadModule actions_module libexec/apache2/mod_actions.so<BR>
LoadModule speling_module libexec/apache2/mod_speling.so<BR>
LoadModule userdir_module libexec/apache2/mod_userdir.so<BR>
LoadModule alias_module libexec/apache2/mod_alias.so<BR>
LoadModule rewrite_module libexec/apache2/mod_rewrite.so<BR>
LoadModule bonjour_module libexec/apache2/mod_bonjour.so<BR>
#LoadModule php5_module libexec/apache2/libphp5.so<BR>
#LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so<BR>
<BR>
<IfModule !mpm_netware_module><BR>
<BR>
User www<BR>
Group www<BR>
</IfModule><BR>
<BR>
<BR>
ServerAdmin you@example.com<BR>
<BR>
<BR>
DocumentRoot "/Library/WebServer/Documents"<BR>
<BR>
<Directory /><BR>
Options FollowSymLinks<BR>
AllowOverride None<BR>
Order deny,allow<BR>
Deny from all<BR>
</Directory><BR>
<BR>
<Directory "/Library/WebServer/Documents"><BR>
Options Indexes FollowSymLinks MultiViews<BR>
AllowOverride None<BR>
Order allow,deny<BR>
Allow from all<BR>
<BR>
</Directory><BR>
<BR>
<IfModule dir_module><BR>
DirectoryIndex index.html<BR>
</IfModule><BR>
<BR>
<BR>
<FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])"><BR>
Order allow,deny<BR>
Deny from all<BR>
Satisfy All<BR>
</FilesMatch><BR>
<BR>
<BR>
<Files "rsrc"><BR>
Order allow,deny<BR>
Deny from all<BR>
Satisfy All<BR>
</Files><BR>
<DirectoryMatch ".*\.\.namedfork"><BR>
Order allow,deny<BR>
Deny from all<BR>
Satisfy All<BR>
</DirectoryMatch><BR>
<BR>
<BR>
ErrorLog /private/var/log/apache2/error_log<BR>
<BR>
LogLevel warn<BR>
<BR>
<IfModule log_config_module><BR>
<BR>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-<BR>
Agent}i\"" combined<BR>
LogFormat "%h %l %u %t \"%r\" %>s %b" common<BR>
<BR>
<IfModule logio_module><BR>
# You need to enable mod_logio.c to use %I and %O<BR>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-<BR>
Agent}i\" %I %O" combinedio<BR>
</IfModule><BR>
<BR>
#<BR>
# The location and format of the access logfile (Common Logfile <BR>
Format).<BR>
# If you do not define any access logfiles within a <VirtualHost><BR>
# container, they will be logged here. Contrariwise, if you *do*<BR>
# define per-<VirtualHost> access logfiles, transactions will be<BR>
# logged therein and *not* in this file.<BR>
#<BR>
CustomLog /private/var/log/apache2/access_log common<BR>
<BR>
#<BR>
# If you prefer a logfile with access, agent, and referer <BR>
information<BR>
# (Combined Logfile Format) you can use the following directive.<BR>
#<BR>
#CustomLog /private/var/log/apache2/access_log combined<BR>
</IfModule><BR>
<BR>
<IfModule alias_module><BR>
<BR>
#<BR>
# ScriptAlias: This controls which directories contain server <BR>
scripts.<BR>
# ScriptAliases are essentially the same as Aliases, except that<BR>
# documents in the target directory are treated as applications and<BR>
# run by the server when requested rather than as documents sent <BR>
to the<BR>
# client. The same rules about trailing "/" apply to ScriptAlias<BR>
# directives as to Alias.<BR>
#<BR>
ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/<BR>
WebServer/CGI-Executables/$1"<BR>
<BR>
</IfModule><BR>
<BR>
<IfModule cgid_module><BR>
<BR>
</IfModule><BR>
<BR>
#<BR>
# "/Library/WebServer/CGI-Executables" should be changed to whatever <BR>
your ScriptAliased<BR>
# CGI directory exists, if you have that configured.<BR>
#<BR>
<Directory "/Library/WebServer/CGI-Executables"><BR>
AllowOverride None<BR>
Options None<BR>
Order allow,deny<BR>
Allow from all<BR>
</Directory><BR>
<BR>
DefaultType text/plain<BR>
<BR>
<IfModule mime_module><BR>
<BR>
TypesConfig /private/etc/apache2/mime.types<BR>
<BR>
AddType application/x-compress .Z<BR>
AddType application/x-gzip .gz .tgz<BR>
<BR>
#<BR>
# AddHandler allows you to map certain file extensions to <BR>
"handlers":<BR>
# actions unrelated to filetype. These can be either built into <BR>
the server<BR>
# or added with the Action directive (see below)<BR>
#<BR>
# To use CGI scripts outside of ScriptAliased directories:<BR>
# (You will also need to add "ExecCGI" to the "Options" directive.)<BR>
#<BR>
#AddHandler cgi-script .cgi<BR>
<BR>
# For type maps (negotiated resources):<BR>
#AddHandler type-map var<BR>
<BR>
#<BR>
# Filters allow you to process content before it is sent to the <BR>
client.<BR>
#<BR>
# To parse .shtml files for server-side includes (SSI):<BR>
# (You will also need to add "Includes" to the "Options" <BR>
directive.)<BR>
#<BR>
#AddType text/html .shtml<BR>
#AddOutputFilter INCLUDES .shtml<BR>
</IfModule><BR>
<BR>
#<BR>
# The mod_mime_magic module allows the server to use various hints <BR>
from the<BR>
# contents of the file itself to determine its type. The MIMEMagicFile<BR>
# directive tells the module where the hint definitions are located.<BR>
#<BR>
#MIMEMagicFile /private/etc/apache2/magic<BR>
<BR>
#<BR>
# Customizable error responses come in three flavors:<BR>
# 1) plain text 2) local redirects 3) external redirects<BR>
#<BR>
# Some examples:<BR>
#ErrorDocument 500 "The server made a boo boo."<BR>
#ErrorDocument 404 /missing.html<BR>
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"<BR>
#ErrorDocument 402 <A HREF="http://www.example.com/subscription_info.html">http://www.example.com/subscription_info.html</A><BR>
#<BR>
<BR>
#<BR>
# EnableMMAP and EnableSendfile: On systems that support it,<BR>
# memory-mapping or the sendfile syscall is used to deliver<BR>
# files. This usually improves server performance, but must<BR>
# be turned off when serving from networked-mounted<BR>
# filesystems or if support for these functions is otherwise<BR>
# broken on your system.<BR>
#<BR>
#EnableMMAP off<BR>
#EnableSendfile off<BR>
<BR>
# Supplemental configuration<BR>
#<BR>
# The configuration files in the /private/etc/apache2/extra/ directory <BR>
can be<BR>
# included to add extra features or to modify the default <BR>
configuration of<BR>
# the server, or you may simply copy their contents here and change as<BR>
# necessary.<BR>
<BR>
# Server-pool management (MPM specific)<BR>
Include /private/etc/apache2/extra/httpd-mpm.conf<BR>
<BR>
# Multi-language error messages<BR>
#Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf<BR>
<BR>
# Fancy directory listings<BR>
Include /private/etc/apache2/extra/httpd-autoindex.conf<BR>
<BR>
# Language settings<BR>
Include /private/etc/apache2/extra/httpd-languages.conf<BR>
<BR>
# User home directories<BR>
Include /private/etc/apache2/extra/httpd-userdir.conf<BR>
<BR>
# Real-time info on requests and configuration<BR>
#Include /private/etc/apache2/extra/httpd-info.conf<BR>
<BR>
# Virtual hosts<BR>
#Include /private/etc/apache2/extra/httpd-vhosts.conf<BR>
<BR>
# Local access to the Apache HTTP Server Manual<BR>
Include /private/etc/apache2/extra/httpd-manual.conf<BR>
<BR>
# Distributed authoring and versioning (WebDAV)<BR>
#Include /private/etc/apache2/extra/httpd-dav.conf<BR>
<BR>
# Various default settings<BR>
#Include /private/etc/apache2/extra/httpd-default.conf<BR>
<BR>
# Secure (SSL/TLS) connections<BR>
#Include /private/etc/apache2/extra/httpd-ssl.conf<BR>
#<BR>
# Note: The following must must be present to support<BR>
# starting without SSL on platforms with no /dev/random equivalent<BR>
# but a statically compiled-in mod_ssl.<BR>
#<BR>
<IfModule ssl_module><BR>
SSLRandomSeed startup builtin<BR>
SSLRandomSeed connect builtin<BR>
</IfModule><BR>
<BR>
Include /private/etc/apache2/other/*.conf<BR>
On Nov 13, 2007, at 6:22 PM, Boris Popov wrote:<BR>
<BR>
> That's pretty much the same configuration I'm using and we haven't <BR>
> seen<BR>
> this problem yet. Could you perhaps post your Apache config so we <BR>
> could<BR>
> compare?<BR>
><BR>
><BR>
>> -----Original Message-----<BR>
>> From: seaside-bounces@lists.squeakfoundation.org [<A HREF="mailto:seaside-">mailto:seaside-</A><BR>
>> bounces@lists.squeakfoundation.org] On Behalf Of Roger Whitney<BR>
>> Sent: Tuesday, November 13, 2007 4:20 PM<BR>
>> To: Seaside - general discussion<BR>
>> Subject: [Seaside] Safari on Leopard Apache post problem<BR>
>><BR>
>> I have a problem with the new Safari on Leopard (Mac OS 10.5)<BR>
>> accessing a Seaside application running behind Apache and hope <BR>
>> someone<BR>
>> can shed some light on it.<BR>
>><BR>
>> I am using Seaside 2.8 on VW 7.5. When I run Seaside as a standalone<BR>
>> web server in VW (the tiny Web server in VW) Safari in Leopard has no<BR>
>> problems accessing the Seaside application. When I run the Seaside<BR>
>> application behind Apache there is no problem with Firefox, Opera and<BR>
>> older versions of Safari accessing the application.<BR>
>><BR>
>> When I use Safari 3.0.4, which comes on Leopard, there are problems<BR>
>> with posts from a seaside page. The problem occurs not only on my <BR>
>> code<BR>
>> but in Functional Seaside Test Suite examples. When I click on a<BR>
>> button to submit a form the bowser says it is contacting the server<BR>
>> and seems to wait for ever without timing out. On the server side I<BR>
>> first get the POST request. According to the log file 15 seconds <BR>
>> later<BR>
>> I get a GET request. The server and client are running on the same<BR>
>> machine (Dual Core), so there is no network delay. A few seconds <BR>
>> later<BR>
>> a second GET request comes from Safari. If I stop the request from<BR>
>> Safari and then have it reload the page I do get the reply to the<BR>
> post.<BR>
>><BR>
>> Since Safari 3.0.4 does work when talking directly to the VW web<BR>
>> server there is some problem with Safari 3.0.4 and Apache. Does <BR>
>> anyone<BR>
>> have any idea how to configure Apache to avoid this? Unfortunately<BR>
>> some of my users can only access port 80, so I have to run behind<BR>
>> Apache.<BR>
>><BR>
>><BR>
>><BR>
>> ----<BR>
>> Roger Whitney Department of Computer Science<BR>
>> whitney@cs.sdsu.edu San Diego State University<BR>
>> <A HREF="http://www.eli.sdsu.edu/">http://www.eli.sdsu.edu/</A> San Diego, CA 92182-7720<BR>
>><BR>
>><BR>
>> _______________________________________________<BR>
>> seaside mailing list<BR>
>> seaside@lists.squeakfoundation.org<BR>
>> <A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
> _______________________________________________<BR>
> seaside mailing list<BR>
> seaside@lists.squeakfoundation.org<BR>
> <A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
><BR>
><BR>
<BR>
<BR>
<BR>
----<BR>
Roger Whitney Department of Computer Science<BR>
whitney@cs.sdsu.edu San Diego State University<BR>
<A HREF="http://www.eli.sdsu.edu/">http://www.eli.sdsu.edu/</A> San Diego, CA 92182-7720<BR>
<BR>
<BR>
_______________________________________________<BR>
seaside mailing list<BR>
seaside@lists.squeakfoundation.org<BR>
<A HREF="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</A><BR>
</FONT>
</P>
</BODY>
</HTML>