I finally got mod_perl with DSO running perfectly under Redhat 6.2 by 
doing a no-no. I kept the default Apache RPM that came with Redhat 
(it's a very convenient set-up) and compiled mod_perl DSO outside the 
Apache source tree using apxs.

INHO, keeping the Apache RPM and compiling mod_perl from scratch is a 
good best of both worlds approach if you don't want to tinker with 
Apache for a million years to get it configured just right.

If you're interested, I took the following steps to make mod_perl DSO 
work with Redhad 6.2

rpm -e mod_perl
rpm -Uvh 
ftp://ftp.redhat.com/pub/redhat/redhat-6.2/i386/RedHat/RPMS/apache-dev 
el-1.3.12-2.i386.rpm

Then follow the instructions at: 
http://perl.apache.org/guide/install.html#Build_mod_perl_as_a_DSO_outs 
ide_

(hint: Redhat puts apxs at /usr/sbin/apxs)

Whereby DBI, Apache::DBI, MD5, and other modules would die under DSO, 
they now run great. Your mileage may vary.

- mt


At 11:47 PM -0500 7/17/00, Richard M. Lemanski wrote:
>I know that I have probably beat this issue to a dead horse but has
>anyone been successful getting Apache to work with mod_perl from RPM
>installations in the initial setup of Linux (RedHat 6.2, Mandrake Linux
>7.0 or the like)?  Bear with me, this email includes all my
>configuration information including samples from httpd.conf,
>mod_perl.conf, apachectl status, httpd -l, mod_perl execution error,
>etc.  Thanks!
>
>****************************************************************
>ENVIRONMENT:
>
>Apache, version 1.3.12
>Perl, version 5.005_03 built for i386-linux
>GCC version 2.95.2 19991024 (release)
>Mod_perl, version 1.21
>****************************************************************
>
>I have been hesitant to remove what has been installed but I may have to
>go with building everything from source.
>
>I believe that mod_perl on my system has been configured as a DSO.  At
>the end of my httpd.conf file I have the following line:
>
>****************************************************************
>END OF HTTPD.CONF FILE --- /etc/httpd/conf/httpd.conf
>
>Include conf/addon-modules/mod_perl.conf
>
>****************************************************************
>MOD_PERL.CONF FILE --- /etc/httpd/conf/addon-modules/mod_perl.conf
>
>LoadModule perl_module    /usr/lib/apache/libperl.so
>AddModule mod_perl.c
>
>Alias /mod-perl/ /home/httpd/mod-perl/
><Location /mod-perl>
>SetHandler perl-script
>PerlHandler Apache::Registry
>PerlSendHeader On
>Options +ExecCGI
></Location>
>
>****************************************************************
>It appears that mod_perl was not originally compiled into Apache is
>included as a DSO and is addressed at the end of httpd.conf.  I would
>expect to see mod_perl.c as output of 'httpd -l' but I do not get that.
>
>****************************************************************
>OUTPUT OF 'httpd -l'
>
>Compiled-in modules:
>http_core.c
>mod_so.c
>
>****************************************************************
>I am confused however in that if I run 'apachectl status' while Apache
>is running I get the following.
>
>****************************************************************
>OUTPUT OF 'apachectl status'
>
>Apache Server Status for LaZaRus.ubfQd.net
>
>    Server Version: Apache/1.3.9 (NetRevolution Advanced Extranet
>    Server/Linux-Mandrake) PHP/3.0.13 mod_perl/1.21
>    Server Built: Jan 5 2000 05:09:42
>      _________________________________________________________________
>
>    Current Time: Monday, 17-Jul-2000 22:03:40 CDT
>    Restart Time: Monday, 17-Jul-2000 17:28:00 CDT
>    Parent Server Generation: 2
>    Server uptime: 4 hours 35 minutes 40 seconds
>    1 requests currently being processed, 8 idle servers
>_._______W......................................................
>................................................................
>................................................................
>................................................................
>
>    Scoreboard Key:
>    "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
>    "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
>    "L" Logging, "G" Gracefully finishing, "." Open slot with no current
>    process
>
>****************************************************************
>The configuration line seems to indicate that mod_perl is installed???
>
>Server Version: Apache/1.3.9 (NetRevolution Advanced Extranet
>Server/Linux-Mandrake) PHP/3.0.13 mod_perl/1.21
>
>****************************************************************
>HTTPD.CONF WITHOUT COMMENTS
>
>ResourceConfig /dev/null
>AccessConfig /dev/null
>
>LoadModule env_module         modules/mod_env.so
>LoadModule config_log_module  modules/mod_log_config.so
>LoadModule agent_log_module   modules/mod_log_agent.so
>LoadModule referer_log_module modules/mod_log_referer.so
>LoadModule mime_module        modules/mod_mime.so
>LoadModule negotiation_module modules/mod_negotiation.so
>LoadModule status_module      modules/mod_status.so
>LoadModule info_module        modules/mod_info.so
>LoadModule includes_module    modules/mod_include.so
>LoadModule autoindex_module   modules/mod_autoindex.so
>LoadModule dir_module         modules/mod_dir.so
>LoadModule cgi_module         modules/mod_cgi.so
>LoadModule asis_module        modules/mod_asis.so
>LoadModule imap_module        modules/mod_imap.so
>LoadModule action_module      modules/mod_actions.so
>LoadModule userdir_module     modules/mod_userdir.so
>LoadModule proxy_module       modules/libproxy.so
>LoadModule alias_module       modules/mod_alias.so
>LoadModule rewrite_module     modules/mod_rewrite.so
>LoadModule access_module      modules/mod_access.so
>LoadModule auth_module        modules/mod_auth.so
>LoadModule anon_auth_module   modules/mod_auth_anon.so
>LoadModule digest_module      modules/mod_digest.so
>LoadModule expires_module     modules/mod_expires.so
>LoadModule headers_module     modules/mod_headers.so
>LoadModule usertrack_module   modules/mod_usertrack.so
>LoadModule setenvif_module    modules/mod_setenvif.so
>
>ClearModuleList
>
>AddModule mod_env.c
>AddModule mod_log_config.c
>AddModule mod_log_agent.c
>AddModule mod_log_referer.c
>AddModule mod_mime.c
>AddModule mod_negotiation.c
>AddModule mod_status.c
>AddModule mod_info.c
>AddModule mod_include.c
>AddModule mod_autoindex.c
>AddModule mod_dir.c
>AddModule mod_cgi.c
>AddModule mod_asis.c
>AddModule mod_imap.c
>AddModule mod_actions.c
>AddModule mod_userdir.c
>AddModule mod_proxy.c
>AddModule mod_alias.c
>AddModule mod_rewrite.c
>AddModule mod_access.c
>AddModule mod_auth.c
>AddModule mod_auth_anon.c
>AddModule mod_digest.c
>AddModule mod_expires.c
>AddModule mod_headers.c
>AddModule mod_usertrack.c
>AddModule mod_so.c
>AddModule mod_setenvif.c
>
>DocumentRoot /home/httpd/html
>
>UserDir public_html
>
>DirectoryIndex index.html index.htm index.shtml index.cgi  Default.htm
>default.htm index.php3
>
>FancyIndexing on
>
>AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
>
>AddIconByType (TXT,/icons/text.gif) text/*
>AddIconByType (IMG,/icons/image2.gif) image/*
>AddIconByType (SND,/icons/sound2.gif) audio/*
>AddIconByType (VID,/icons/movie.gif) video/*
>
>AddIcon /icons/binary.gif .bin .exe
>AddIcon /icons/binhex.gif .hqx
>AddIcon /icons/tar.gif .tar
>AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
>AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
>AddIcon /icons/a.gif .ps .ai .eps
>AddIcon /icons/layout.gif .html .shtml .htm .pdf
>AddIcon /icons/text.gif .txt
>AddIcon /icons/c.gif .c
>AddIcon /icons/p.gif .pl .py
>AddIcon /icons/f.gif .for
>AddIcon /icons/dvi.gif .dvi
>AddIcon /icons/uuencoded.gif .uu
>AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
>AddIcon /icons/tex.gif .tex
>AddIcon /icons/bomb.gif core
>AddIcon /icons/back.gif ..
>AddIcon /icons/hand.right.gif README
>AddIcon /icons/folder.gif ^^DIRECTORY^^
>AddIcon /icons/blank.gif ^^BLANKICON^^
>
>DefaultIcon /icons/unknown.gif
>
>ReadmeName README
>HeaderName HEADER
>
>IndexIgnore .??* *~ *# HEADER* README* RCS
>
>AccessFileName .htaccess
>TypesConfig /etc/httpd/conf/apache-mime.types
>DefaultType text/plain
>AddEncoding x-compress Z
>AddEncoding x-gzip gz
>
>AddLanguage en .en
>AddLanguage fr .fr
>AddLanguage de .de
>AddLanguage da .da
>AddLanguage el .el
>AddLanguage it .it
>
>LanguagePriority en fr de
>
>Alias /icons/ /home/httpd/icons/
>ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
>ScriptAlias /protected-cgi-bin/ /home/httpd/protected-cgi-bin/
>AddType application/x-httpd-php3 .php3 .phtml .php
>AddType application/x-httpd-php3-source .phps
>AddHandler cgi-script .cgi
>AddType text/html .shtml
>AddHandler server-parsed .shtml
>AddHandler imap-file map
>
>BrowserMatch "Mozilla/2" nokeepalive
>BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
>
>BrowserMatch "RealPlayer 4\.0" force-response-1.0
>BrowserMatch "Java/1\.0" force-response-1.0
>BrowserMatch "JDK/1\.0" force-response-1.0
>
><Directory />
>Options Indexes Includes FollowSymLinks
>AllowOverride None
></Directory>
>
><Directory /home>
>
>Options Indexes Includes FollowSymLinks
>
>AllowOverride All
>
>order allow,deny
>allow from all
>
></Directory>
>
><Directory /home/httpd/cgi-bin>
>AllowOverride None
>Options ExecCGI
></Directory>
>
><Directory /home/httpd/protected-cgi-bin>
>order deny,allow
>deny from all
>allow from localhost
>AllowOverride None
>Options ExecCGI
></Directory>
>
><Location /server-status>
>SetHandler server-status
>
>order deny,allow
>deny from all
>allow from localhost, 127.0.0.1
></Location>
>
>Alias /doc /usr/doc
><Directory /usr/doc>
>order deny,allow
>deny from all
>allow from localhost, 127.0.0.1
>
>Options Indexes FollowSymLinks
></Directory>
>
>ServerType standalone
>Port 80
>HostnameLookups off
>User nobody
>Group nobody
>ServerAdmin root@localhost
>ServerRoot /etc/httpd
>Listen 80
>ErrorLog logs/error_log
>LogLevel warn
>
>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
>combined
>LogFormat "%h %l %u %t \"%r\" %>s %b" common
>LogFormat "%{Referer}i -> %U" referer
>LogFormat "%{User-agent}i" agent
>
>CustomLog logs/access_log combined
>PidFile /var/run/httpd.pid
>ScoreBoardFile /etc/httpd/httpd.scoreboard
>LockFile /etc/httpd/httpd.lock
>UseCanonicalName on
>Timeout 300
>KeepAlive On
>MaxKeepAliveRequests 100
>KeepAliveTimeout 15
>MinSpareServers 8
>MaxSpareServers 20
>StartServers 10
>MaxClients 150
>MaxRequestsPerChild 500
>
>Include conf/vhosts/vhost0.conf
>
>Include conf/addon-modules/mod_perl.conf
>Include conf/addon-modules/mod_php3.conf
>
>****************************************************************
>
>Server IP:  192.168.0.2
>
>CGI EXECUTION:  http://192.168.0.2/cgi-bin/cgi_test.pl --- works fine!!!
>
>MOD_PERL EXEC:  http://192.168.0.2/mod-perl/modperl.pl ---does not
>work!!!
>
>****************************************************************
>MOD_PERL EXECUTION ERROR
>
>The document contained no data.  Try again later, or contact the
>server's
>administrator.  <OK>
>
>****************************************************************
>The file (modperl.pl) exists and is not empty.  What permissions do you
>usually assign to a CGI or mod_perl script?
>
>Right now they are perm, user, group respectively:  755   root   root
>Should these be changed to user and group nobody???
>
>****************************************************************
>UNINSTALLING RPM DISTRIBUTIONS???
>
>If indeed I am stupid for continuing to mess with this RPM install - be
>honest and tell me.  If you recommend installing from source, what is
>the best way to clean up all of this default installation stuff -
>Apache, Apache front-end utility in DrakConf, mod_perl, etc.  If I use
>RPM to uninstall these is that all I need to do?
>
>Guys if I can get this figured out I will ask no more questions.  :)
>
>THANK YOU VERY VERY MUCH!!!
>
>Rich Lemanski
>Software Engineer

Reply via email to