michael-lazar / pygopherd

Multiprotocol Gopher/Web Server [Python 3]
https://michael-lazar.github.io/pygopherd/doc/pygopherd.html
GNU General Public License v2.0
33 stars 8 forks source link

scriptexec always returns not found #1

Closed awshidahak closed 2 years ago

awshidahak commented 2 years ago

I have scriptexec enabled on my server. I have scripts that work using the python2 version of pygopherd, but no script seems to work on this python3 version. Whenever I call a script from either a web browser or gopher client, I get a not found output. On the web browser version, it renders an html error as text with http headers like so:

HTTP/1.0 404 Not Found Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <HTML><HEAD><TITLE>Selector Not Found</TITLE> <H1>Selector Not Found</H1> <TT>No such file or directory</TT><HR>Pygopherd</BODY></HTML>

I have pygopherd installed into the system as root, and running with the gopher user. Plain text documents serve just fine.

michael-lazar commented 2 years ago

It's tough to diagnose without seeing your filesystem and server configuration, but I've had this happen before too and it ended up being a file permission issue. The file does need to be globally executable (S_IXOTH) which is kind of a gotcha, but this was also the behavior in python2.

awshidahak commented 2 years ago

A file permission issue. Yes, the executable bit is set on the file. ls -l /var/gopher/qotwtxt will tell us this:

-rwxr-xr-x 1 gopher gopher 554 Sep 21 03:59 /var/gopher/qotwtxt

I can give you my full /etc/pygopherd/pygopherd.conf if that's what you mean by server configuration.

pygopherd.conf.txt

Renamed it to .txt for the upload. Is there anything else I can show you?

awshidahak commented 2 years ago

I fixed it by changing usechroot to no.