Leser: 34
1 2 3 4 5 6 7 8
#!/usr/bin/perl -w use strict; my $p1 = "ok"; my $erg = up(); exit; sub up { return $p1; }
1 2 3 4 5 6 7 8
#!/usr/bin/perl -w use strict; my $p1 = "ok"; my $erg = up($p1); exit; sub up { return $_[0]; }
2011-02-04T12:45:05 biancaDer Fehler tritt auf dem Liveserver vermutlich auch auf, Du siehst ihn wahrscheinlich nur nicht. Oder haste mal ins error.log geschaut?
1 2 3 4 5 6 7 8
sub handler { my $p1 = "ok"; my $erg = up(); exit; sub up { return $p1; } }
2011-02-04T12:54:45 LinuxerHi, welche Perl-Version benutzt Du?
2011-02-04T13:06:11 wastlinsbesondere waren mir die Erläuterungen zu mod_perl unklar.
2011-02-04T13:17:44 wastlVermutlich benutze ich ein Mischmash aus Perl und mod_perl.
QuoteWie genau das eine bzw. das andere aktiviert wird ist mir nicht klar.
2011-02-04T13:21:03 reneeImmer wenn Du mod_perl benutzt, benutzt Du Perl. mod_perl integriert perl nur in den Webserver!
2011-02-04T13:21:03 reneeIn der Apache-Konfig wird das eingeschaltet...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# if mod_perl is used
<IfModule mod_perl.c>
# load all otrs modules
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl
# Apache::Reload - Reload Perl Modules when Changed on Disk
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlModule Apache2::RequestRec
# set mod_perl2 options
<Location /otrs>
# ErrorDocument 403 /otrs/customer.pl
ErrorDocument 403 /otrs/index.pl
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
PerlOptions +SetupEnv
Order allow,deny
Allow from all
</Location>
</IfModule>
1
2
3
4
5
6
<Location /otrs>
Options +ExecCGI
AddHandler cgi-script .pl
Order allow,deny
Allow from all
</Location>
2011-02-04T13:37:36 pqDas hat aber eben genau zur Folge, dass schon vorhandene Subroutinen nun verschachtelt sind und es zu dem beschriebenen Fehler kommen kann.
Deshalb vermeide ich ModPerl::Registry. Ein echter Handler ist soviel besser.
2011-02-04T13:52:44 wastlIch nehme an, dass im Internet aus Performance-Gründen jeweils mod_perl aktiviert ist.
2011-02-04T13:52:44 wastlIch nehme an, dass im Internet aus Performance-Gründen jeweils mod_perl aktiviert ist. Und dort tritt der Fehler ja nicht auf.
use diagnostics;
2011-02-05T09:35:20 reneeDoch, durch das mod_perl! Das packt automatisch eine Subroutine drumherum. Lesenswert: http://modperlbook.org/html/6-2-1-The-First-Myster...
Guest Gerhard@GwenDragon & torsten:
Das Beispiel von wastl hatte aber keine "nested subroutines"!
2011-02-05T09:41:22 GwenDragon1. Woher weißt du das? Hast du den Code mit B gedumpt/angesehen?
2. Ich habe gar nichts von "nested subroutines" geschrieben.
2011-02-05T10:17:07 GwenDragonDass in mod_perl um "Programme" ein Handler herum gesetzt wird, der ja eine sub ist, sollte bekannt sein.
2011-02-05T11:36:07 pqoder gibt es vielleicht einen fehler im forum und meine beiträge sind unsichtbar?
1 2 3 4 5 6
#... foreach $key (sort keys %ENV) { print "<tr><td class='text'><strong>$key</strong></td>"; print "<td nowrap class='data'>$ENV{$key}</td></tr>"; } #...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use Apache2::Status; use ModPerl::Util (); use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::RequestUtil (); use Apache2::ServerRec (); use Apache2::ServerUtil (); use Apache2::Connection (); use Apache2::Log (); use Apache2::Const -compile => ':common'; use APR::Const -compile => ':common'; use APR::Table (); use Apache2::compat (); use ModPerl::Registry (); use CGI (); 1;
1 2 3 4 5 6 7 8 9 10 11 12
#!perl.exe ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain; charset=iso-8859-1\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use ModPerl::Util (); use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::RequestUtil (); use Apache2::ServerRec (); use Apache2::ServerUtil (); use Apache2::Connection (); use Apache2::Log (); use Apache2::Const -compile => ':common'; use APR::Const -compile => ':common'; use APR::Table (); use Apache2::compat (); use ModPerl::Registry (); use CGI (); use Apache::ASP (); 1;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
ServerRoot "/xampp/apache" Listen 80 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule bucketeer_module modules/mod_bucketeer.so #LoadModule cache_module modules/mod_cache.so #LoadModule case_filter_module modules/mod_case_filter.so #LoadModule case_filter_in_module modules/mod_case_filter_in.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule dumpio_module modules/mod_dumpio.so #LoadModule echo_module modules/mod_echo.so LoadModule env_module modules/mod_env.so #LoadModule example_module modules/mod_example.so #LoadModule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule filter_module modules/mod_filter.so LoadModule headers_module modules/mod_headers.so #LoadModule ident_module modules/mod_ident.so #LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_forensic_module modules/mod_log_forensic.so #LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule mime_module modules/mod_mime.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule speling_module modules/mod_speling.so LoadModule ssl_module modules/mod_ssl.so LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so #LoadModule userdir_module modules/mod_userdir.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> User daemon Group daemon </IfModule> </IfModule> ServerAdmin postmaster@localhost ServerName localhost:80 DocumentRoot "/xampp/htdocs" <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/xampp/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> <IfModule dir_module> DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \ default.php default.pl default.cgi default.asp default.shtml default.html default.htm \ home.php home.pl home.cgi home.asp home.shtml home.html home.htm </IfModule> <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> ErrorLog "logs/error.log" #ScriptLog "logs/cgi.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> CustomLog "logs/access.log" combined </IfModule> <IfModule alias_module> # ScriptAlias /cgi-bin/ "/xampp/cgi-bin/" <===== von mir auskommentiert, da in vhost </IfModule> <IfModule cgid_module> </IfModule> <Directory "/xampp/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> DefaultType text/plain <IfModule mime_module> TypesConfig "conf/mime.types" AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler cgi-script .cgi .pl .asp AddType text/html .shtml AddOutputFilter INCLUDES .shtml </IfModule> <IfModule mime_magic_module> MIMEMagicFile "conf/magic" </IfModule> # XAMPP specific settings Include "conf/extra/httpd-xampp.conf" # Perl settings Include "conf/extra/httpd-perl.conf" # Server-pool management (MPM specific) Include "conf/extra/httpd-mpm.conf" # Multi-language error messages Include "conf/extra/httpd-multilang-errordoc.conf" # Fancy directory listings Include "conf/extra/httpd-autoindex.conf" # Language settings Include "conf/extra/httpd-languages.conf" # User home directories Include "conf/extra/httpd-userdir.conf" # Real-time info on requests and configuration Include "conf/extra/httpd-info.conf" # Virtual hosts Include "conf/extra/httpd-vhosts.conf" # Include "conf/extra/httpd-dav.conf" Include "conf/extra/httpd-proxy.conf" # Various default settings Include "conf/extra/httpd-default.conf" # Secure (SSL/TLS) connections Include "conf/extra/httpd-ssl.conf" # <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin SSLSessionCache "shmcb:logs/ssl.scache(512000)" SSLSessionCacheTimeout 300 </IfModule> # AJP13 Proxy <IfModule mod_proxy.c> <IfModule mod_proxy_ajp.c> Include "conf/extra/httpd-ajp.conf" </IfModule> </IfModule>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
NameVirtualHost 127.0.0.1 <VirtualHost 127.0.0.1> DocumentRoot "/xampp/htdocs" ServerName localhost ServerAlias 127.0.0.1 <Directory "/xampp/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost www.test.de> DocumentRoot "d:/hp/test" ServerName www.test.de ServerAlias test.de <Directory "d:/hp/test"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> ScriptAlias /cgi-bin/ "d:/hp/test/cgi-bin/"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
LoadFile "/xampp/perl/bin/perl510.dll" LoadModule perl_module modules/mod_perl.so PerlPostConfigRequire "/xampp/apache/conf/extra/startup.pl" <IfModule mime_module> AddType text/html .pl </IfModule> <FilesMatch "\.pl$"> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders </FilesMatch> <Directory "/xampp/cgi-bin"> <FilesMatch "\.pl$"> SetHandler cgi-script </FilesMatch> </Directory> # ASP settings Include "conf/extra/httpd-perl-asp.conf"
PerlResponseHandler ModPerl::Registry
PerlResponseHandler ModPerl::PerlRun
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use ModPerl::Util (); use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::RequestUtil (); use Apache2::ServerRec (); use Apache2::ServerUtil (); use Apache2::Connection (); use Apache2::Log (); use Apache2::Const -compile => ':common'; use APR::Const -compile => ':common'; use APR::Table (); use Apache2::compat (); use ModPerl::Registry (); use CGI (); use Apache::ASP (); 1;
LoadModule perl_module modules/mod_perl.so
QuoteGibt keine doofen Fragen, nur doofe Antworten, sagte mal vor 30 Jahren ein Dozent in Informatik zu uns. Stimmt.PS: Hoffe, bei Gelegenheit noch ne doofe Frage stellen zu dürfen :-))