lainsafe/doc/lainsafe.md

1.7 KiB

NAME

lainsafe - Simple file upload

DESCRIPTION

lainsafe is a simple file upload server written in Perl + CGI.

It runs in a Web server (i.e. nginx) with a CGI handler (i.e. fcgiwrap)

You also have to install the dependencies, in Debian:

apt install nginx libcgi-pm-perl fcgiwrap

INSTALLATION

You can use any web server for running lainsafe. However, nginx is recommended. The following configuration should work for nginx:

/etc/nginx/sites-enabled/lainsafe.conf

server
{
	server_name lainsafe.foo.tld;

	listen 80;
	listen [::]:80;
	client_max_body_size 100m; # max size 100MBs, change 10 to 100
				   # in upload.cgi in line 30
	root /var/www/lainsafe;

	location ~ .cgi$ {
		gzip off;
		include /etc/nginx/fastcgi_params;
		fastcgi_pass unix:/var/run/fcgiwrap.socket;
		fastcgi_index index.cgi;
		fastcgi_param SCRIPT_FILENAME /var/www/lainsafe/$fastcgi_script_name;
	}
}

The document root will be /var/www/lainsafe (be sure to change it in root and fastcgi_param SCRIPT_FILENAME if you're going to use another directory

You also have to give the .cgi files +x permissions:

chmod +x *.cgi

And also, create the "files" directory manually, and give it permissions so the user that is running nginx (usually) www-data can write on it.

chown www-data:www-data files

TROUBLESHOOTING

502 Bad Gateway

Probably you're missing the CGI dependence, so install it with CPAN or apt

cpan -i CGI
apt install libcgi-pm-perl

If you still get this problem, run

perl <file>.cgi

so perl can help you debug the problem.

403 is returned

You probably forgot to give the files execution permissions.