Linux: How to statically link against system libs?
Nick Sabalausky
a at a.a
Sun May 8 12:32:26 PDT 2011
"Adam D. Ruppe" <destructionator at gmail.com> wrote in message
news:iq6osh$25di$1 at digitalmars.com...
> Nick Sabalausky wrote:
>> Actually, I did have to remove the HTTP status code output from my
>> little hello world cgi test in forder for Apache to not throw up a
>> 500.
>
> HTTP status is normally done with a Status: header in cgi. (Actually
> writing the line works too but only with certain settings.)
>
> writefln("Status: 200 OK"); // note: optional; 200 OK is assumed
> writefln("Content-Type: text/plain");
> writefln(); // blank line ends headers
> writefln("Hello, world!");
>
Ahh, sweet. Didn't know about that "Status:" thing. Or maybe I did and
forgot... ;)
BTW, another thing I just learned (posting here in case anyone reads this
and has similar problems) is that on some servers, like mine, the
permissions on the executable have to be set to *not* be writable by group
or world, or Apache will just throw a 500. Apperently there's a whole list
of conditions that have to be met here:
http://httpd.apache.org/docs/current/suexec.html
When I first compiled the app on my local CentOS VM, gcc set the binary's
permissions to 775, which were preserved by ftp, and then I could run it on
the server through ssh, but not through Apache/HTTP. Changing them to 755
fixed it.
> I just saw this thread, but when I do my cgi apps, I actually
> recompile them right on the live server. If that's an option
> for you, it's a bit of a pain to set up, but it's less painful
> than dealing with Linux's generally retarded library/bits situation.
Yea, that would definitely a better way to go. Unfortunately I normally have
to deal with shared hosts, so the stuff I can actually do on the server is
usually very limited. On this particular server, I know I can't run gcc. (At
least not the system's gcc anyway. Maybe there's some way to have a portable
install of gcc? But knowing gcc, if there is a way, I'm sure it would be a
royal pain.) DMD *is* a portable install, which is nice, but on linux it
still needs gcc to link. And then on the other server I need to use, I don't
think ssh is even available.
More information about the Digitalmars-d-learn
mailing list