Subject: Re: [[email protected]] Permission to enable CGI Scripts
to do an I/O on the file system
> So, there's no way of creating a log file in the default directory or some special directory ?
Apache usually logs stderr of CGI scripts to its error log, you can use this. If you give any file or directory the permissions you observe on your /tmp file (something like writeable by group www-data), it might work for debugging, or not if SELinux or apparmor gets in the way.
Better solution for debugging Python scripts is cgitb: it will show everything but syntax errors in browser window, and syntax errors will still be visible in Apache logs. In production you can configure cgitb to create tracefiles in a predefined directory.
(Also, typical initial problem with CGI scripts is forgetting to write HTTP headers.)
With Best Regards,
On August 11, 2017 9:20:19 PM GMT+03:00, Kiorp Pilu <[email protected]
Thanks for the comment. Yes, I am in the linux environment on a cluster. Tested your idea.
1. The script works, but no output file is written on the cluster i.e. earlier I can't see anything in the console of my browser, now I see that the script executes successfully read off from the console. [ <open file '/tmp/output.txt', mode 'a' at 0x7f1de42e4660> ]
2. So, there's no way of creating a log file in the default directory or some special directory ?
However, I have set it up in Xampp and it works great, just worked out of the box.
On Fri, Aug 11, 2017 at 12:59 AM, Marat Khalili <[email protected]
You didn't specify system, so I assume it's a standard Linux
installation. CGI scripts by default run with permissions of the
web server, which are intentionally limited. However, you can
create new files and directories in /tmp, possibly using tempfile
module. If you want more than just a temporary file then you
should consider using database...
since writing arbitrary files from
CGI scripts would otherwise cause concurrency and security
With Best Regards,
On 11/08/17 00:29, Kiorp Pilu wrote:
I have written a python script that will spit out a log
file. This python script will be executed as a CGI script.
I am able to run the python program, but not able to make
it write to an output file. How can I enable Apache web server
to do so ?