RHEL3 (RHAS3, Red Hat Enterprise Server or Red Hat Advanced Server) is a pain to use with Drupal 4.6.x because:

Here is what I did, more or less.
Notes

  • I placed the drupal directory in /var/www/html/drupal-4.6.3 then created a symlink called portal.  This allows me to have other things beside Drupal in the same tree (e.g. /ViewCVS) without messing with rewrite rules and makes is trivial to flip-flop between versions if necessary.  But it requires a redirect in the web root to make the portal transparent. [1]
  • You must restart Apache between changes to PHP.  This is only intuitive in hind-sight but is critical!
  • I had a terrible problem with PHP segfaults "[notice] child pid nnn exit signal Segmentation fault (11)".  It turned out to be a mis-match between Apache and PHP.  Both were RHEL versions, but due to many and various up2date problems, I had a newer PHP than Apache.  Forcing an update of Apache fixed that problem.
Process
  1. Downloaded Drupal tarball and extracted it into /var/www/html/drupal-4.6.3 then followed setup instructions in http://drupal.org/node/260 more or less.
  2. Using mysql command line as root:
  • create database Portal;
  • GRANT ALL PRIVILEGES ON Portal.* TO drupal@localhost IDENTIFIED BY 'password';
  • chown web-date.web-data /var/www/html/portal/files
  • Created Apache config file /etc/httpd/conf.d/portal.conf [2] and restarted Apache.
  • Edited /var/www/html/portal/.htaccess and uncommented and updated as needed:
    • RewriteBase /portal
  • Edited /var/www/html/portal/sites/default/settings.php:
  • Created /etc/cron.hourly/poke_portal [3] to run the Drupal cron job.
  • Fought for 2 days to get the PHP and especially search stuff figured out, until I found http://drupal.org/comment/reply/26439.  This was critical.  It gave me http://www.atomicrocketturtle.com/atomic/art/3ES/RPMS/ and http://drupal.org/node/2796.
  • Ran 'up2date -i pspell' (needed for next).
  • Ran this in a temp sub-dir:
  • Then this: rpm -Uvh php*
  • Cleared the bad index per http://drupal.org/node/26439 and http://drupal.org/node/2796
  • Ran /etc/cron.hourly/poke_portal a few times.
  • As far as I can tell, everything now works.
    Files

    [1] /var/www/html/index.html

    <html>
    <head>
    <meta http-equiv="REFRESH" content="0; URL=http://your.site.here/portal/index.php">
    <title></title>
    </head>
    <body>
    </body>
    </html>

    [2] /etc/httpd/conf.d/portal.conf

    # Apache config directives for the Drupal portal
    # See also drupal.org, and /var/www/html/portal/.htaccess
    
    <Directory "/var/www/html/portal*">
    
        AllowOverride FileInfo Limit Options Indexes
    
    </Directory>
    

    [3] /etc/cron.hourly/poke_portal

    #!/bin/sh -
    
    # Poke Drupal to trigger its cron jobs
    # See http://drupal.org/node/23714
    
    /usr/bin/wget -o /dev/null -O /dev/null http://localhost/portal/cron.php
    

    Comments

    JPV’s picture

    The RPMs I noted above in #8 and 10 aren't there anymore. These newer ones should work, but I have not tested them:

    New (proposed):
    wget http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/php-4.4.2-3.rhel3.... \
    http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/php-mbstring-4.4.2... \
    http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/php-mysql-4.4.2-3.... \
    http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/php-pear-4.4.2-3.r...

    Note "libmysqlclient.so.14 is needed by php-mysql-4.4.2-3.rhel3.art". I think the mysql-compat below will satisfy that, but I'd hesitate to load only that without the other MySQL packages. I didn't do this since I had the older packages archived and used them instead.

    Maybe (while you're at it):
    wget http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/mysql-4.1.20-1.art... \
    http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/mysql-server-4.1.2... \
    http://3es.atomicrocketturtle.com/atomic/art/3ES/RPMS/mysql-compat-4.1.2...

    See also http://drupal.org/node/71742 "Unable to upgrade from 4.6.5 to 4.7.2 on CentOS3 with mysql-3.23.58-16 and php-4.3.2-30"