Q: What is this program actually about?
A: Amiga Apache is the Amiga port of Apache, the web server used on most of the machines in the internet. It allows others to access web pages on your computer you want to publish. It doesn't cost you any money - since the original Apache is distributed under the GPL (GNU public licence), the port also it, which basically means its free.
Anyway, if you want to tell me you're using Amiga Apache, feel absolutely free to send me a postcard from your home town to:
Rüdiger Kuhlmann Im Gießenbach 59 57234 Wilnsdorf GERMANY
Q: Who is doing all this work?
A: The Amiga port of Apache has been compiled by Jeff Shepherd with some changes and bug fixes by Rüdiger Kuhlmann. The website was originally hosted and maintained by Bert Vortman (who seems to have disappeared from the net) at http://www.xs4all.nl/~albertv/apache/index.html, and is now maintained by Rüdiger Kuhlmann at http://amiga-apache.home.pages.de, who also runs the mailinglist and did the last Aminet upload. The FAQ was somewhen maintained by Brett Burridge, who seems not to be involved in the Amiga anymore, and seems like I have to continue his work.
Remember that all persons are volunteers - feel free to contribute.
Q: When I try to start Apache, it complains that it can't open it's logfiles. I'm using AFS/PFS/PFS3. What is going on?
A: AFS/PFS/PFS3 has the bug to not allow programs to open a file several times at the same time in MOD_READWRITE, although this is perfectly legal. Unfortunately, AmigaApache spawns a bunch of subprocesses, and each one tries to open the necessary log files during it's startup. Hence, you have to put your logfiles onto a non-AFS/PFS/PFS3/partition; FFS, SFS or even RAM and RAD will do.
UPDATE: There is an update on Aminet in the biz/patch directory to fix this problem for PFS3.
Q: I see there are two different versions of httpd, one saying something with PHP in it. What's this about?
A: Well, the version marked PHP is the version that includes PHP. Obvious, isn't it? If you've never heard of PHP, then you don't need it. Anyway, it is a nice scripting language that you can embed into HTML code. Beware - it has a quite noticable memory footprint.
Q: I'm using the brand new Apache with PHP. Now, if I just start up Apache, already nearly 20MB are gone. That's stupid!
A: No problem! Apache is compiled with --resident32
,
which means it's position independent code, i.e. pure. In other words:
you can make httpd resident with C:resident Apache:bin/httpd pure
before you fire up Apache,
then the code segment is reused for every child httpd spawns, thus reducing
memory usage dramatically.
configure
doesn't
even find cat, rm, sed etc.Q: I'm trying to recompile, but configure doesn't even find cat, rm, sed etc, although
I can start them using my Amiga shell. It's strange anyway, these files are listed as if
they were directories. I'm using SFS < 1.62. This is what configure says, when I use the
supplemented config.status.68040 file:
1.Tmp:apache_1.3.11> sh ./config.status.68040
./configure: ./configure[104]: cat: not found
./configure: ./configure[104]: grep: not found
./configure: ./configure[104]: sed: not found
Configuring for Apache, Version
src/helpers/PrintPath: src/helpers/PrintPath[86]: sed: not found
[...]
configure:Error: Path layout definition not found or incorrect
1.Tmp:apache_1.3.11>
A: You should update SFS to at least version 1.62. There is a bug in GG which prevent symbolic links to work properly using ixemul, which doesn't show up when you use FFS. A workaround was added for SFS 1.62. The newest version of SFS can always be found at http://www.xs4all.nl/~hjohn/, but it might still be a beta release. As for SFS 1.84, do not use the defragmenter unless you want to be a beta-tester.
make
breaks with an error about "struct timeval".Q: I'm trying to recompile, but when I type
make
, it breaks with an error about "struct timeval". Here is
what it says:
1.Tmp:apache_1.3.11> make
===> src
make[1]: Entering directory /Tmp/apache_1.3.11'
make[2]: Entering directory /Tmp/apache_1.3.11/src'
===> src/os/amiga
gcc -c -I../../os/amiga -I../../include -m68040 -O2 -resident32 -mstackextend -Dfork=vfork -DNO_DBM_REWRITEMAP ../../apaci os.c
In file included from /gg/include/dos/dosextens.h:26,
from /gg/include/clib/dos_protos.h:18,
from /gg/include/proto/dos.h:11,
from ../../include/ap_config.h:285,
from ../../include/httpd.h:71,
from os.c:7:
/gg/include/devices/timer.h:25: redefinition of `struct timeval'
make[3]: *** [os.o] Error 1
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory /Tmp/apache_1.3.11/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory /Tmp/apache_1.3.11'
make: *** [build] Error 2
1.Tmp:apache_1.3.11>
A: This is a conflict between the unix and the AmigaOS definition
of "struct timeval". There used to be a patch, which fiddled around with the
AmigaOS include (bad idea), but I can't find it anymore. Anyway, the cleaner
way to do it is the following: In the file /gg/include/sys/time.h
,
replace the following code:
#ifndef DEVICES_TIMER_H
/* Use whatever was included first, standard or Amiga (devices/timer.h)
* includes (jch). */
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
#else
#define tv_sec tv_secs
#define tv_usec tv_micro
#endif
into the following lines:
/* Always use Amiga include */
#include <devices/timer.h>
#define tv_sec tv_secs
#define tv_usec tv_micro
And everything will be fine.