Apache 1.3.20, garbled apple_hfs_module

jiblet

Registered
I just followed the instructions on Devshed about installing Apache w/ PHP & MySQL on Mac OS X. I'm running 10.0.4 (I think the article was written for 10.0.3), and the Apache, PHP, and MySQL packages are all higher version than they were at the time of the article writing.

I thought everything went off without a hitch, but upon trying to start up the httpd daemon, I get the following error:

API module structure `apple_hfs_module' in file /usr/libexec/httpd/mod_hfs_apple.so is garbled - perhaps this is not an Apache module DSO?

I tried disabling this module, which I assume is to allow Apache to read Macintosh disks. Unfortunately, although I installed on separate partitions, I formatted my Mac OS X partition as HFS+ rather than UFS.

Can I recompile this module somehow, or what advice would anyone have to go about fixing this?
 
I believe that Scott Anguish has posted the correct instructions for making this transition to 1.3.20 on 10.04.

The problem is certainly that you have to recompile the hfs_mod.so; however you need the source!!!

it is available at stepwise.

http://www.stepwise.com/

they have a search.
here, I searched for you....

http://www.stepwise.com/Articles/Workbench/2001-03-24.01.html
the name of the html and the actual title of the article is a little misleading....
but this is the real thiing....


the hfs_mod is only for correcting a possible security issue with case recognition on HFS+.

HFS+ sees, for example, APACHE as equal to apache or even ApAchE. So if you have a folder which is protected by .htaccess, an intruder may easily discover that they may enter the folder without a password by changing the letter case. the hfs_mod.so is supposed to fix that issue only in this instance.

throughout the rest of your environment, ABC will equal abc or Abc.

the Apache server can "read" HFS+ just fine, whether you install that module or not.

There are several othe rinstances where HFS's ability to remember Case but not distinguish it is problematic.

head a binary file for seeing the head(top several lines) will be replaced by a perl script "HEAD" which reads/processes html headers.

Makefile may be confused or overwritten with makefile
...

etc.
<hr>
You could change to UFS but UFS formatted disks may not be viewed by MacOS9.2 and some applications will just refuse to operate in that environment ...for now.




 
no no


after updating from 1.3.19 to 1.3.20 (of the apache) you just have to recompile the module_hfs_ new! :)

then it works again! :)......
 
Speaking on apache 1.3.20 - did anyone have to do anything special to compile it? I always get a sanity check error when running the configure script - tells me my c preprocesor can't handle something or other (okay, not exactly what it says, but it's been about a week since I last tried it). Tells me I should use a GCC-compatible one. :p I've installed lots of stuff, but I know I haven't uninstalled anything.

If I remember correctly, it was barfing over opening libdl (I guess ... -ldl in the compiler messages). This is what is used to make the .so modules. I'm pretty sure I still have it around in some form or other, since 1.3.19 has the loadable modules and still works.

Anyone have any idea what's going on?
 
you should have the latest version of the dev tools installed.

apples cc compiler is gcc compatible with a couple of tricks up it's sleeve.

libdl as shipped is compiled into the main system library and there should be a symbolic link placed in the /usr/lib directory to leflect this. without any intervention on your part.

there is a separate "improved" libdl compatiblity library at Fink.sourceforge.org

however read any of the numerous postings on this topic ant follow the Stepwise link above.

Nothing special to be done really....until you start trying to do some fancy stuff, discussion of which will be omitted in favor of not giving anyone any bright ideas about how to screw up their system.



./configure \
--enable-module=most \
--enable-shared=max

dirt simple....
 
no no, you don't have to recompile the whole Apache, you just have to compile the apple_hfs_module new!!!! probably it's still halv compiled, and you just have to "> make" in the specific directory! :)

but, i have apache 1.3.19, and have the same problem, when i want to compile 1.3.20 as you wrote…....

i'm also interested in a functioning supervision, how to update apache 1.3.19 to 1.3.20 on OS X! (remark: after the Apple-Automatical-Software-Update is done)

and the problem is, i have updated to the new DEV-Tools!!!! i thougt, that it didn't worked because of them and after that, i removed them and installed again the older DEV-Tools from the 10.0.1 Distribution... but it does not work on both DEV-Tools...

he means, there should be more librarys, while a sanity-check-error....

 
Let's have a look a selected pieces of your compiler output.

some bits of the configure output would also be helpful.

I have compiled so many things with few problems that I didn't cause by trying to be "clever".

apache, php, mysql, postgres, perl 5.6.1, Tomcat, cocoon, mod_jk all work seamlessly.

ssh, and tcpwrappers been working since public beta.

Fink is installed and has helped out with Xfree86-rootless and a bunch of X-windows stuff.


there are a couple of tricks I have pulled but mostly just to get a few small things working. this system is fantastic so many packages intall easily.

OK so here is my actual
configuration

./configure \
--enable-module=most" \
--enable-shared=max" \
--enable-module=so" \
--with-layout=Darwin" \
--prefix=/usr" \


from config.status in the apache_source directory

that layout darwin and prefix=/usr will lay it right over the existing install for the brave-hearted.

I find several alias files called libdyn****
 
[localhost:WebServer/build-apache-1.3.20/apache_1.3.20] root# ./configure --enable-module=most --enable-shared=max --with-layout=Darwin --prefix=/usr
Configuring for Apache, Version 1.3.20
+ using installation path layout: Darwin (config.layout)
Creating Makefile
Creating Configuration.apaci in src
+ enabling mod_so for DSO support
Creating Makefile in src
+ configured for Darwin platform
+ setting C compiler to cc
+ setting C pre-processor to cc -E -traditional-cpp
+ checking for system header files
+ adding selected modules
o rewrite_module uses ConfigStart/End
disabling DBM support for mod_rewrite
(perhaps you need to add -ldbm, -lndbm or -lgdbm to EXTRA_LIBS)
o dbm_auth_module uses ConfigStart/End
+ checking sizeof various data types
+ doing sanity check on compiler and options
** A test compilation with your Makefile configuration
** failed. The below error output from the compilation
** test will give you an idea what is failing. Note that
** Apache requires an ANSI C Compiler, such as gcc.

cd ..; cc -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite `./apaci` -o helpers/dummy helpers/dummy.c
======== Error Output for sanity check ========
============= End of Error Report =============

Aborting!
[localhost:WebServer/build-apache-1.3.20/apache_1.3.20] root#

and... (I'm not sure, if i should post it, because it's very large)... but, my /usr/libs folder contains as following:

total 34680
drwxr-xr-x 104 root wheel 3492 Sep 17 02:26 .
drwxr-xr-x 10 root wheel 296 Apr 27 05:36 ..
-r-xr-xr-x 1 root wheel 42496 Sep 17 02:26 BuildFilter
-r-xr-xr-x 1 root wheel 9292 Sep 17 02:26 arch_tool
-r--r--r-- 1 root wheel 812 Feb 16 2001 bundle1.o
-r-xr-xr-x 1 root wheel 9512 Sep 17 02:26 changes
-r-xr-xr-x 1 root wheel 9600 Sep 17 02:26 clonehdrs
-r--r--r-- 1 root wheel 4232 Feb 16 2001 crt1.o
-r-xr-xr-x 1 root wheel 327528 Feb 24 2001 dyld
-r--r--r-- 1 root wheel 1564 Feb 16 2001 dylib1.o
-r-xr-xr-x 1 root wheel 18648 Sep 17 02:26 fastcp
-r-xr-xr-x 1 root wheel 9224 Sep 17 02:26 frameworkFlags
drwxr-xr-x 3 root wheel 264 Feb 24 2001 gcc
-r--r--r-- 1 root wheel 4640 Feb 16 2001 gcrt1.o
-r-xr-xr-x 1 root wheel 18788 Sep 17 02:26 genclasspath
-r-xr-xr-x 1 root wheel 18396 Sep 17 02:26 genforceload
drwxr-xr-x 18 root wheel 568 Aug 17 20:14 java
-r-xr-xr-x 1 root wheel 14996 Aug 17 20:12 libDHCPServer.A.dylib
lrwxr-xr-x 1 root wheel 21 Sep 17 02:26 libDHCPServer.dylib -> libDHCPServer.A.dylib
lrwxr-xr-x 1 root wheel 59 Sep 17 02:26 libIOKit.A.dylib -> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libIOKit.dylib -> libIOKit.A.dylib
-r-xr-xr-x 1 root wheel 50420 Feb 18 2001 libMallocDebug.A.dylib
-r--r--r-- 1 root wheel 76768 Feb 18 2001 libMallocDebug.a
-r-xr-xr-x 1 root wheel 1260752 Jun 8 10:35 libSystem.B.dylib
-r-xr-xr-x 1 root wheel 5770252 Feb 24 2001 libSystem.B_debug.dylib
-r-xr-xr-x 1 root wheel 5527136 Feb 24 2001 libSystem.B_profile.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libSystem.dylib -> libSystem.B.dylib
lrwxr-xr-x 1 root wheel 23 Sep 17 02:26 libSystem_debug.dylib -> libSystem.B_debug.dylib
lrwxr-xr-x 1 root wheel 25 Sep 17 02:26 libSystem_profile.dylib -> libSystem.B_profile.dylib
-r-xr-xr-x 1 root wheel 45500 Aug 17 20:11 libalias.A.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libalias.dylib -> libalias.A.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libc.dylib -> libSystem.dylib
lrwxr-xr-x 1 root wheel 34 Sep 17 02:26 libcc_dynamic.a -> gcc/darwin/default/libcc_dynamic.a
lrwxr-xr-x 1 root wheel 31 Sep 17 02:26 libcc_kext.a -> gcc/darwin/default/libcc_kext.a
-rw-r--r-- 1 root wheel 9784 Aug 17 20:10 libcom_err.3.0.dylib
lrwxr-xr-x 1 root wheel 20 Sep 17 02:26 libcom_err.3.dylib -> libcom_err.3.0.dylib
lrwxr-xr-x 1 root wheel 20 Sep 17 02:26 libcom_err.dylib -> libcom_err.3.0.dylib
-rwxr-xr-x 1 root wheel 939708 Aug 17 20:10 libcrypto.0.9.dylib
lrwxr-xr-x 1 root wheel 19 Sep 17 02:26 libcrypto.dylib -> libcrypto.0.9.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libcurses.dylib -> libSystem.dylib
-rw-r--r-- 1 root wheel 20404 Aug 17 20:10 libdes425.3.0.dylib
lrwxr-xr-x 1 root wheel 19 Sep 17 02:26 libdes425.3.dylib -> libdes425.3.0.dylib
lrwxr-xr-x 1 root wheel 19 Sep 17 02:26 libdes425.dylib -> libdes425.3.0.dylib
-rw-r--r-- 1 root wheel 14580 Aug 17 20:10 libdyn.1.0.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libdyn.1.dylib -> libdyn.1.0.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libdyn.dylib -> libdyn.1.0.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libedit.dylib -> libSystem.dylib
-rw-r--r-- 1 root wheel 83872 Aug 17 20:10 libgssapi_krb5.2.2.dylib
lrwxr-xr-x 1 root wheel 24 Sep 17 02:26 libgssapi_krb5.2.dylib -> libgssapi_krb5.2.2.dylib
lrwxr-xr-x 1 root wheel 24 Sep 17 02:26 libgssapi_krb5.dylib -> libgssapi_krb5.2.2.dylib
-rw-r--r-- 1 root wheel 90044 Aug 17 20:10 libgssrpc.3.0.dylib
lrwxr-xr-x 1 root wheel 19 Sep 17 02:26 libgssrpc.3.dylib -> libgssrpc.3.0.dylib
lrwxr-xr-x 1 root wheel 19 Sep 17 02:26 libgssrpc.dylib -> libgssrpc.3.0.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libinfo.dylib -> libSystem.dylib
-rw-r--r-- 1 root wheel 75568 Aug 17 20:10 libk5crypto.3.0.dylib
lrwxr-xr-x 1 root wheel 21 Sep 17 02:26 libk5crypto.3.dylib -> libk5crypto.3.0.dylib
lrwxr-xr-x 1 root wheel 21 Sep 17 02:26 libk5crypto.dylib -> libk5crypto.3.0.dylib
-rw-r--r-- 1 root wheel 74188 Feb 17 2001 libkadm5clnt.4.0.dylib
lrwxr-xr-x 1 root wheel 22 Sep 17 02:26 libkadm5clnt.4.dylib -> libkadm5clnt.4.0.dylib
lrwxr-xr-x 1 root wheel 22 Sep 17 02:26 libkadm5clnt.dylib -> libkadm5clnt.4.0.dylib
-rw-r--r-- 1 root wheel 100280 Feb 17 2001 libkadm5srv.4.0.dylib
lrwxr-xr-x 1 root wheel 21 Sep 17 02:26 libkadm5srv.4.dylib -> libkadm5srv.4.0.dylib
lrwxr-xr-x 1 root wheel 21 Sep 17 02:26 libkadm5srv.dylib -> libkadm5srv.4.0.dylib
-rw-r--r-- 1 root wheel 35852 Feb 17 2001 libkdb5.3.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkdb5.3.dylib -> libkdb5.3.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkdb5.dylib -> libkdb5.3.0.dylib
-r--r--r-- 1 root wheel 892 Mar 1 2001 libkmod.a
-r--r--r-- 1 root wheel 1268 Mar 1 2001 libkmodc++.a
-rw-r--r-- 1 root wheel 72652 Aug 17 20:10 libkrb4.2.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkrb4.2.dylib -> libkrb4.2.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkrb4.dylib -> libkrb4.2.0.dylib
-rw-r--r-- 1 root wheel 383840 Aug 17 20:10 libkrb5.3.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkrb5.3.dylib -> libkrb5.3.0.dylib
lrwxr-xr-x 1 root wheel 17 Sep 17 02:26 libkrb5.dylib -> libkrb5.3.0.dylib
-rw-r--r-- 1 root wheel 15872 Feb 17 2001 libkrb524.a
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libkvm.dylib -> libSystem.dylib
-rw-r--r-- 1 root wheel 1228 Feb 17 2001 libl.a
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libm.dylib -> libSystem.dylib
-r-xr-xr-x 1 root wheel 593296 Aug 17 20:09 libobjc.A.dylib
lrwxr-xr-x 1 root wheel 23 Sep 17 02:26 libobjc.A_profile.dylib -> libobjc_profile.A.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libobjc.dylib -> libobjc.A.dylib
-r-xr-xr-x 1 root wheel 613860 Feb 24 2001 libobjc_profile.A.dylib
lrwxr-xr-x 1 root wheel 23 Sep 17 02:26 libobjc_profile.dylib -> libobjc_profile.A.dylib
-r-xr-xr-x 1 root wheel 77716 Aug 17 20:13 libpcap.A.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libpcap.dylib -> libpcap.A.dylib
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libpthread.dylib -> libSystem.dylib
-rw-r--r-- 1 root wheel 16040 Aug 17 20:15 libpty.1.1.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libpty.1.dylib -> libpty.1.1.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libpty.dylib -> libpty.1.1.dylib
-rw-r--r-- 1 root wheel 33656 Feb 17 2001 libss.a
-rwxr-xr-x 1 root wheel 267512 Aug 17 20:10 libssl.0.9.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libssl.dylib -> libssl.0.9.dylib
lrwxr-xr-x 1 root wheel 30 Sep 17 02:26 libstdc++.a -> gcc/darwin/default/libstdc++.a
lrwxr-xr-x 1 root wheel 15 Sep 17 02:26 libtcl.dylib -> libtcl8.3.dylib
-r-xr-xr-x 1 root wheel 593388 Aug 17 20:11 libtcl8.3.dylib
-rw-r--r-- 1 root wheel 1912 Feb 17 2001 libtclstub8.3.a
-r--r--r-- 1 root wheel 2608 Feb 17 2001 liby.a
-rwxr-xr-x 1 root wheel 60380 Aug 17 20:10 libz.1.1.3.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libz.1.dylib -> libz.1.1.3.dylib
lrwxr-xr-x 1 root wheel 16 Sep 17 02:26 libz.dylib -> libz.1.1.3.dylib
-r-xr-xr-x 1 root wheel 22808 Sep 17 02:26 mergeInfo
-r-xr-xr-x 1 root wheel 13680 Sep 17 02:26 ofileListTool
dr-xr-xr-x 3 root wheel 264 Jun 27 20:18 php
-r-xr-xr-x 1 root wheel 17888 Sep 17 02:26 plistread

EOF
 
does anybody know, where i can find these "EXTRA_LIBS" to put in these recomended -ldbm, -lndbm or -lgdbm 's ??? *wonder*.....
 
Ok, here's my options & output. Pretty similar to tazmandevil's. I upped the "verbosity" of the output, so you can see more clearly what's going on.

<b>
[root@dreamstatic: apache_1.3.20] # ./configure --with-perl=/usr/bin/perl --enable-module=most --enable-shared=max --enable-module=so --disable-rule=WANTHSREGEX --enable-suexec --suexec-caller=www --suexec-docroot=/Library/WebServer/Documents --server-uid=www --server-gid=www --suexec-logfile=/var/log/httpd/suexec.log -v
Configuring for Apache, Version 1.3.20
+ using installation path layout: Darwin (config.layout)
Creating Makefile
Creating Configuration.apaci in src
+ Rule SHARED_CORE=default
+ Rule SHARED_CHAIN=default
+ Rule SOCKS4=no
+ Rule SOCKS5=no
+ Rule IRIXNIS=no
+ Rule IRIXN32=yes
+ Rule PARANOID=no
+ Rule EXPAT=default
+ Rule DEV_RANDOM=default
+ Rule WANTHSREGEX=no
+ Module mmap_static: no [shared]
+ Module vhost_alias: yes [shared]
+ Module env: yes [shared]
+ Module log_config: yes [shared]
+ Module log_agent: no [shared]
+ Module log_referer: no [shared]
+ Module mime_magic: yes [shared]
+ Module mime: yes [shared]
+ Module negotiation: yes [shared]
+ Module status: yes [shared]
+ Module info: yes [shared]
+ Module include: yes [shared]
+ Module autoindex: yes [shared]
+ Module dir: yes [shared]
+ Module cgi: yes [shared]
+ Module asis: yes [shared]
+ Module imap: yes [shared]
+ Module actions: yes [shared]
+ Module speling: yes [shared]
+ Module userdir: yes [shared]
+ Module alias: yes [shared]
+ Module rewrite: yes [shared]
+ Module access: yes [shared]
+ Module auth: yes [shared]
+ Module auth_anon: yes [shared]
+ Module auth_dbm: yes [shared]
+ Module auth_db: no [shared]
+ Module digest: yes [shared]
+ Module auth_digest: no [shared]
+ Module proxy: yes [shared]
+ Module cern_meta: yes [shared]
+ Module expires: yes [shared]
+ Module headers: yes [shared]
+ Module usertrack: yes [shared]
+ Module example: no [shared]
+ Module unique_id: yes [shared]
+ Module so: yes
+ Module setenvif: yes [shared]
Creating Makefile in src
+ configured for Darwin platform
+ setting C compiler to gcc
+ setting C pre-processor to gcc -E -traditional-cpp
+ checking for system header files
+ adding selected modules
o rewrite_module uses ConfigStart/End
disabling DBM support for mod_rewrite
(perhaps you need to add -ldbm, -lndbm or -lgdbm to EXTRA_LIBS)
o dbm_auth_module uses ConfigStart/End
+ checking sizeof various data types
cd ..; gcc -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_EXPAT -I./lib/expat-lite `./apaci` -o helpers/dummy helpers/dummy.c -ldl
/usr/bin/ld: can't locate file for: -ldl
make: *** [dummy] Error 1
+ doing sanity check on compiler and options
** A test compilation with your Makefile configuration
** failed. The above error output from the compilation
** test will give you an idea what is failing. Note that
** Apache requires an ANSI C Compiler, such as gcc.

cd ..; gcc -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_EXPAT -I./lib/expat-lite `./apaci` -o helpers/dummy helpers/dummy.c -ldl
/usr/bin/ld: can't locate file for: -ldl
make: *** [dummy] Error 1
======== Error Output for sanity check ========
============= End of Error Report =============

Aborting!
[root@dreamstatic: apache_1.3.20] #
</b>

Note that my compiler is actually using <font color="#0000ff">cc</font>. Since OS X's <font color="#0000ff">cc</font> is actually <font color="#0000ff">gcc</font>, I made a symlink from cc to gcc. Works fine (and it's not the prob here, tested that by removing the symlink). Had to do this for something that refused to use cc, only wanted gcc. But I find that <i>**Apache requires an ANSI C Compiler, such as gcc</i> line <i><b>very</b></i> funny. :p (Ok, I'm a computer/programmer geek, so sue me).

I've been compiling *NIX apps for 5 years...so lay it on, I'll understand what you're gettin' at. I'd be interested in seeing a listing of your /usr/lib dir, maybe I accidentally deleted the symlink for libdl. Or something. :p Like I said, I know I must have it around somewhere, since this is needed to make the loadable modules. Funny thing is, I still get this sanity error even if I explicitly tell it to make the "old style" (non loadable) modules. Guess it wants to make 'em loadable anyway. :D

<b>taz</b> - you can add extra libs to <b>apache-1.3.20/src/Configuration</b>. Edit that file, you'll see a line (not very far down) that says EXTRA_LIBS - just add it after that. You'll have to have libdbm or whatnot installed first, though.

<b><i><font size=+1><font color="#ff0000">**UPDATE**</font></font></i></b>
I solved the prob. Heh. I made a symlink in /usr/lib from libSystem.dylib to libdl.dylib - that fixed it (I'm too impatient, I have to fix everything now rather than wait). Also fixed the no libdbm errors, tazmandevil, so you might wanna do the same thing. Err, I'll leave the text up top for anyone to read if'n they want to, even though it makes for a rather long post.

<i>sheesh...I violated the "Too many smilies" rule...but I like smilies...</i>
 
I thought that was put in by dev tools somewhere along the line.


I think I may have removed my -ldl symbolic link in favor of the dl-lib compatibility fix from
Fink.org.
 
Okay Darkshadow :) (a smile more!!!)

after i followed the instructions of you:

* I made a symlink in /usr/lib from libSystem.dylib to libdl.dylib
> cd /usr/lib
> ln -s libSystem.dylib libdl.dylib
* put the -ldbm behind the line: "EXTRA_LIBS= "
(once with -lndbm, once with -lgdbm and once with all them together)
* used you're ./configure --things....

the output of the compiling-process is then after that the same, as that, what you had (up)... it's also aborting!...
but it still contains the lines:
+ adding selected modules
o rewrite_module uses ConfigStart/End
disabling DBM support for mod_rewrite
(perhaps you need to add -ldbm, -lndbm or -lgdbm to EXTRA_LIBS)
o dbm_auth_module uses ConfigStart/End
+ checking sizeof various data types
cd ..; cc -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_EXPAT -I./lib/expat-lite `./apaci` -o helpers/dummy helpers/dummy.c
+ doing sanity check on compiler and options
** A test compilation with your Makefile configuration
** failed. The above error output from the compilation
** test will give you an idea what is failing. Note that
** Apache requires an ANSI C Compiler, such as gcc.

cd ..; cc -DDARWIN -DNO_DBM_REWRITEMAP -DUSE_EXPAT -I./lib/expat-lite `./apaci` -o helpers/dummy helpers/dummy.c
======== Error Output for sanity check ========
============= End of Error Report =============
in between

(damned)... i know, i'm a rookie in compiler-things, but, where is the problem?... :) was my syntax not correct?... i have the "new" developer-tools installed, Mac OS X 10.0.4 (not the Server) and an iMac DV 500.

by testing the cc there isn't a hint, that it would be a gcc! and i tried to find the gcc, but he seems not to be in my system!
(is the search-syntax: "find gcc" in the root directory correct?)

*wonder*.... please, help ;-)

taz
 
Err...try taking off the line from EXTRA_LIBS. I didn't add that one in, it just worked [shrugs]. Dunno what else it may be.

Ya might not want to copy my configure stuff exactly. All that suexec stuff is for server-side includes. If you're gonna use 'em, then go ahead, but if not (or you don't even know what they are), don't bother. :D

'Course it won't hurt anything if you leave 'em in.

Oh, and <font color="#0000ff">gcc</font> isn't included. What I was saying is that <font color="#0000ff">cc</font> is actually <font color="#0000ff">gcc</font> in disguise. What I did was make a symlink from <font color="#0000ff">cc</font> to <font color="#0000ff">gcc</font> (<font color="#0000ff">cc</font> is in /usr/bin).
 
well.... :).... after all i'm trying around now with an installation-script (i've found) which should helps in any problems with apache ... :).... it's running since 30min..... and has a lot of compiling... well, hope, that it's rescueing my day :)))

...ähm.... it works :))))))).... (it just installed the apache 1.3.20.... :))))

it tooks:

./configure --prefix=/usr/local \
--bindir=/usr/local/bin \
--sbindir=/usr/local/sbin \
--datadir=/Library/WebServer \
--iconsdir=/Library/WebServer/icons \
--htdocsdir=/Library/WebServer/Documents \
--cgidir=/Library/WebServer/CGI-Executables \
--sysconfdir=/private/etc/httpd \
--mandir=/usr/local/share/man \
--includedir=/usr/local/include/apache \
--localstatedir=/private/var/run \
--runtimedir=/private/var/run \
--logfiledir=/private/var/log/httpd \
--enable-module=most \
--enable-shared=max \
--disable-rule=WANTHSREGEX \
--with-perl=/usr/bin/perl \
--enable-suexec \
--suexec-docroot=/Library/WebServer \
--suexec-caller=www \
--server-gid=www \
--server-uid=www
 
Things.

/usr/local/ as the server root.

--prefix=/usr/local \


............
you will have to edit your Startup items to get it to start the correct server.

try typing "which httpd"
in the term window.

then "which apachectl"

if they are the only ones to be found then I guess you are ok.

otherwise....

this script
/System/Library/StartupItems/Apache /Apache
---------------------------------------
#!/bin/sh

##
# Start Web Server
##

. /etc/rc.common

if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting web server"

apachectl start
fi

-----------------------------------
will be run at startup time.
or when you click on web-sharing in the prefs.
it finds the one
on my system

which httpd
/usr/sbin/httpd

which apachectl
/usr/sbin/apachectl

line 28 0f apachectl--->

HTTPD=/usr/sbin/httpd
-----------------------
edit it there to the correct value of httpd and put the new apachectl where your old one is.

Keep backup copies since it appears you have a complete 1.3.19 server as well.


if this is already working for you correctly, maybe it's OK
 
oh man, now i'm unsure, which one is the 1.3.20 or the 1.3.19!.... if i start via "apachectl start" then i have no problems, and in the HTTP-Comment it says to be the 1.3.20,
but if i start via ->Systempreferences->Sharing->, then the button hangs and in the console i can see about 9 modules which should not be compiled right....
the startupscript seams also wants to start the wrong one, because it does not run, after the machine has booted on!

is there also a possibility to say the Aqua (Systempreferences->Sharing) to start the "right" one? ... apachectl .. or .. httpd... ?..... should work with a link, but are then there not other problems?....

which one the OS X usually looks as the "faforite" variant: apachectl or httpd?
 
This is an oddity of multiple commands (dunno if it's OS X specific or not, never tested it out in Linux). If you have two commands by the same name, with one being in the "standard" path (i.e. /bin, /sbin, /usr/bin, /usr/sbin) and the other being in /usr/local/bin or /usr/local/bin, it'll run the one in /usr/local/whichever. But, when the system is starting up, it doesn't include /usr/local/ in it's path, just the standard ones. That means it'll pick up the old Apache.

The startup script uses apachectl to start apache, so I'm guessing that's the one it favors. You can fix it by editing /System/Library/StartupItems/Apache/Apache and giving it the location of the new apachectl that got installed (I'm going to guess that's /usr/local/sbin/apachectl). Then whenever it boots, it'll start that one, and it *should* start the right apache. I'm not sure what the button in System Preferences uses to start apache, though, so I dunno what to edit to fix that one. I don't think it uses the startup script to start or stop it, though. But once you get the startup script working right, you really don't need to worry 'bout System Prefs. If you ever need to stop apache, you can do it in the terminal. Personally, I think that's easier than going to System Prefs anyway. :D
 
Thank you very much, Darkshadow :)....

yes, it's quiet the same work, to open the terminal and start it from over there, than open the prefs/sharing and click the button....

i don't know, why i always look for solutions, which are "idiot"-"save" at least! :).... (perhaps, because in a few years i've forgotten all this syntaxes, but also then want to be sure, that it works easy?).....

times are getting quicker all the days... and that means, that each method that let "doing-things-easy", idiotic-sure and more overviewabler.... are the solutions for me. (i don't think anymore eadler the permanently un-understandalbe freaky, hacking-methods like the terminal specialists...)....
often, things changes, also the owner and users..... so it will pay it out, to configure things that way, which stays stable, along the world changes! :)
you just have to know, how you save informations for overview them later with ease!

i will find out, where the prefs-sharing is configuring and will post it here! :)
 
in my case, the new apache (1.3.20) was putted in:
/usr/local/sbin/apachectl
the old is still in:
/usr/sbin/apachectl

To make the Systempreferences->Sharing still working:

delete or move the old apache from whatever directory he is (/usr/sbin/apachectl) and make a link to the new:

[localhost:] root# ln -s /usr/local/sbin/apachectl /usr/sbin/apachectl

to make sure activating the Systempreferences->Sharing in any case, make sure to have in the File /System/Library/StartUpItems/Apache/Apache the right path! then the Button works :))))

taz
 
line 28 of apachectl
wil fix it

do "locate" apachectl

however it might not find the most recent version

you know there is one in /usr/local/sbin

you know there is one in /usr/sbin

compare them

the which command will tell you exactly what the system thinks is the correct one.

you have to correct the sytems opinion or place your file where the system will find it.

while you are learning unix commands
try "env"

then if you want to change something

"setenv"

if you edit the sytem startup file you really have to know what you are doing.

easiest way it so find out what the system thinks is true and conform to it somehow.

if you want to permanently change some system variables

read the information in
/usr/share/init/tcsh/README


if you find something you don't understand

go to http://www.google.com/

and type in your keywords.

all the unix documentation is online.

don't make things up as you go. Most of this Unix stuff has over 20 years of thought and shared source openly available for everyone, including the hackers to read. when a hole is found, lots of people get on the case and try to figure out how to stop that activity. by editing basic sytem file you may open up some security flaw. everyone else may think this would never happen in the normal system...as it has already been fixed.

BTW it would be better to just replace all of the old files with the new and remove the confusion.

also, while you are at it...better get real familiar with htaccess and the /etc/httpd.conf file since you enabled suexec.
 
Back
Top