[Seaside] Safari on Leopard Apache post problem

Roger Whitney whitney at cs.sdsu.edu
Wed Nov 14 15:29:52 UTC 2007


Boris,
	I found your blog entry on this. I will give it a try. It sure looks  
more complex than what I was doing  since I did not have to write the  
perl relay.

On Nov 14, 2007, at 12:59 AM, Boris Popov wrote:

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



----
Roger Whitney              Department of Computer Science
whitney at cs.sdsu.edu        San Diego State University
http://www.eli.sdsu.edu/   San Diego, CA 92182-7720




More information about the seaside mailing list