LAMP (Linux + Apache + Mysql + perl/php/python/put your favorite scripting language here) is getting to be rock solid. Even though my one-step compile script is based on specific versions of each of the components, those components have hardly changed since the last script update:

  • Apache 1.3.31
  • mod_perl 1.29
  • openssl 09.7d
  • mod_ssl 2.8.19-1.3.31
  • PHP 4.3.8
  • mysql 4.0.21
  • mm 1.3.0
  • This is awesome, it’s an indication that the components are really mature and stable. There are newer versions available of some of them (Apache 2.0, PHP 5.0, etc.) but the currently supported stable versions (Apache 1.3, PHP 4, etc.) are very very good things (TM). So without further ado, check it out, the one-step Apache script. If you’ve never compiled Apache from source before, it’s a great jump-start. Dump it into an empty directory, run it, and watch it fill up with goodies. Warning: check out the script first, it will actually install apache into /usr/local/apache (and other components too in other places) without asking you, if it gets far enough – so MAKE SURE THAT’S WHAT YOU WANT. The script assumes you have mysql and perl installed already, but not Apache. It also tweaks the build to target an Athlon architecture, which you can turn off in the script. As a final note, the PHP configuration in the script expects mcrypt and mhash to be installed. You should have them installed, or remove them from the PHP configure line. Have fun!


    Apache One-Step Compile Script

    Here’s the output.  It dumps most output to a log file, this just shows the errors/warnings sent to stderr, not TOO bad :> ….

    [root@thedigitalmachine apache_source]# compile_apache.pl

    =================================================================

    ## MDM APACHE build script, v 0.2 ##

    =================================================================

    Untarring apache_1.3.31.tar.gz…

    Untarring mm-1.3.0.tar.gz…

    Untarring openssl-0.9.7d.tar.gz…

    Untarring php-4.3.8.tar.gz…

    Untarring mod_ssl-2.8.19-1.3.31.tar.gz…

    Untarring mod_perl-1.0-current.tar.gz…

    Installing openssl…

    ar: creating ../libcrypto.a

    a_type.c: In function `ASN1_TYPE_set’:

    a_type.c:74: warning: dereferencing type-punned pointer will break strict-aliasing rules

    x_name.c: In function `x509_name_ex_d2i’:

    x_name.c:171: warning: dereferencing type-punned pointer will break strict-aliasing rules

    x_name.c:177: warning: dereferencing type-punned pointer will break strict-aliasing rules

    x_name.c: In function `x509_name_encode’:

    x_name.c:239: warning: dereferencing type-punned pointer will break strict-aliasing rules

    x_name.c:242: warning: dereferencing type-punned pointer will break strict-aliasing rules

    pem_lib.c: In function `PEM_get_EVP_CIPHER_INFO’:

    pem_lib.c:481: warning: dereferencing type-punned pointer will break strict-aliasing rules

    ar: creating ../libssl.a

    Installing mm…

    Installing mod_ssl…

    + Auxiliary patch tool: ./etc/patch/patch (local)

    Installing mod_perl…

    Patching mod_perl makefile for Athlon…

    Installing PHP…

    /home/m/development/apache_source/php-4.3.8/ext/standard/var_unserializer.c: In function `php_var_unserialize’:

    /home/m/development/apache_source/php-4.3.8/ext/standard/var_unserializer.c:310: warning: comparison is always false due to limited range of data type

    /usr/lib/libc-client.a(osdep.o)(.text+0xabf7): In function `ssl_onceonlyinit’:

    : warning: the use of `tmpnam’ is dangerous, better use `mkstemp’

    Installing apache…

    Patching apache makefile for Athlon…

    /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../libc-client.a(osdep.o)(.text+0xabf7): In function `ssl_onceonlyinit’:

    : warning: the use of `tmpnam’ is dangerous, better use `mkstemp’

    modules/proxy/libproxy.a(proxy_cache.o)(.text+0x2bbb): In function `ap_proxy_cache_update’:

    : warning: the use of `mktemp’ is dangerous, better use `mkstemp’

    htpasswd.o(.text+0xca9): In function `main’:

    : warning: the use of `tmpnam’ is dangerous, better use `mkstemp’

    htdigest.o(.text+0x4bb): In function `main’:

    : warning: the use of `tmpnam’ is dangerous, better use `mkstemp’

    Finished Apache build script!

    [root@thedigitalmachine apache_source]#

    Leave a Reply