I already created a ticket: https://issues.mediagoblin.org/ticket/5560
The problem:

 Setup:
Debian 9.3 ARMv7
I have followed the documentation in installing with python3. The documentation is hard to understand since so this issue may just be a misconfiguration. No one is online on the IRC channel. I have successfully run ./gmg/dbupdate. Then tested using lazyserver all ok. But when I upload files using the apache wsgi interface based on the wiki it fails to work. The /var/lib/mediagoblin I changed to my partition of var custom. Here are what I did:

$ sudo useradd -c "GNU Mediagoblin..." -d /mnt/myvar/mediagoblin -m -r -g www-data mediagoblin $ sugo groupadd mediagoblin && sudo usermod --append -G mediagoblin mediagoblin
$ sudo usermod --append -G myvargroup mediagoblin
$ sudo mkdir -p /srv/mediagoblin && sudo chown -hR mediagoblin:www-data /srv/mediagoblin
$ sudo su mediagoblin -s /bin/bash && cd /srv/mediagoblin
$ git clone ​git://git.savannah.gnu.org/mediagoblin.git -b stable
$ cd mediagoblin
$ pwd
$ /srv/mediagoblin/mediagoblin
$ git submodule init && git submodule update
$ ./bootstrap.sh
$ ./configure --with-python3
$ make
$ mkdir user_dev && chmod 750 user_dev
$ ./bin/easy_install flup
$ cp -av mediagoblin.ini mediagoblin_local.ini && cp -av paste.ini paste_local.ini

---
the file mediagoblin_local.ini here are the contents:
[DEFAULT]
data_basedir = "/mnt/myvar/mediagoblin"

[mediagoblin]
direct_remote_path = /mgoblin_static/
email_sender_address = "postmaster@…"

## Uncomment and change to your DB's appropiate setting.
## Default is a local sqlite db "mediagoblin.db".
## Don't forget to run ./bin/gmg dbupdate after having changed it.
# sql_engine = postgresql:///mediagoblin

# Set to false to enable sending notices
email_debug_mode = false

# Set to false to disable registrations
allow_registration = false

# Set to false to disable the ability for users to report offensive content
## Uncomment this to put some user-overriding templates here
# local_templates = %(data_basedir)s/templates/

## You can set your theme by specifying this (not specifying it will
## use the default theme). Run gmg assetlink to apply the change.
## The airy and sandyseventiesspeedboat theme comes with GMG; please
## see the theming docs on how to install other themes.
# theme = airy

## If you want the terms of service displayed, you can uncomment this
# show_tos = true

user_privilege_scheme = "uploader,commenter,reporter"
[storage:queuestore]
base_dir = %(data_basedir)s/media/queue

[storage:publicstore]
base_dir = %(data_basedir)s/media/public
base_url = /mgoblin_media/

[celery]
# Put celery stuff here

# Place plugins here, each in their own subsection of [plugins].
# See ​http://docs.mediagoblin.org/siteadmin/plugins.html for details.
[plugins]
mediagoblin.plugins.geolocation?
mediagoblin.plugins.basic_auth?
mediagoblin.plugins.processing_info?
mediagoblin.media_types.image?

---
I did not modified the paste_local.ini.
The wsgi.py:

#!/srv/mediagoblin/mediagoblin/bin/python

.

.
.

import site
# Replace the python version with the correct one in the line below (eg 2.x -> 2.7)
site.addsitedir('/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages')


from paste.deploy import loadapp

CONFIG_PATH = '/srv/mediagoblin/mediagoblin/paste.ini'

## Uncomment this to run celery in "always eager" mode... ie, you don't have ## to run a separate process, but submissions wait till processing finishes

import os
os.environCELERY_ALWAYS_EAGER? = 'true'

application = loadapp('config:' + CONFIG_PATH)

---

THe apache sites-enabled/mediagoblin.conf:

...



    Order deny,allow
    Allow from all
    Require all granted




    Alias /mgoblin_static/ /srv/mediagoblin/mediagoblin/mediagoblin/static/
    Alias /mgoblin_media/ /srv/mediagoblin/mediagoblin/user_dev/media/public/

    WSGIScriptAlias / /srv/mediagoblin/mediagoblin/wsgi.py
# Set user and group to whatever user you used to install mediagoblin (if you used a system account, # it may have the group 'nogroup' assigned, in that case you can remove the group parameter)
    # Remember to change python-path too!
# Replace the python version in the 'python-path' below with the correct one (eg 2.x -> 2.7) 3.5
    WSGIPassAuthorization On
WSGIDaemonProcess gmg user=mediagoblin group=mediagoblin processes=2 threads=10 \

        umask=0007 inactivity-timeout=900 maximum-requests=1000 \

python-path=/srv/mediagoblin/mediagoblin/:/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/

    WSGIProcessGroup gmg
    WSGIApplicationGroup %{GLOBAL}



            Order allow,deny

        Allow from all

            Require all granted




            Order allow,deny
            Allow from all
            Require all granted





---

$ ./bin/gmg dbupdate
$ ./lazyserver.sh --server-name=broadcast
$ Ctrl+c, exit
Enable apache2 site. a2ensite, and allow port 443
Visit the site then login and upload somethins and it shows 500 Internal server error. The error log is below:

Apache2 error log:

[Sat Feb 10 14:52:11.462655 2018] [:warn] [pid 5436] mod_qos(009): mod_unique_id not available (mod_qos generates simple request id if required) [Sat Feb 10 14:52:11.651504 2018] [mpm_prefork:notice] [pid 5436] AH00163: Apache/2.4.25 (Raspbian) mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_fcgid/2.3.9 OpenSSL/1.0.2l mod_qos/11.36 mod_wsgi/4.5.11 Python/3.5 mod_gnutls/0.8.2 GnuTLS/3.5.8 configured -- resuming normal operations [Sat Feb 10 14:52:11.651880 2018] [core:notice] [pid 5436] AH00094: Command line: '/usr/sbin/apache2' [Sat Feb 10 14:54:23.953544 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] mod_wsgi (pid=24134): Exception occurred processing WSGI script '/srv/mediagoblin/mediagoblin/wsgi.py'. [Sat Feb 10 14:54:24.104184 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] Traceback (most recent call last): [Sat Feb 10 14:54:24.106037 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 110, in wrapper [Sat Feb 10 14:54:24.106241 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return f(self, stream, *args, kwargs) [Sat Feb 10 14:54:24.106581 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 222, in _parse_multipart [Sat Feb 10 14:54:24.106703 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] form, files = parser.parse(stream, boundary, content_length) [Sat Feb 10 14:54:24.106917 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 531, in parse [Sat Feb 10 14:54:24.107046 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return self.cls(form), self.cls(files) [Sat Feb 10 14:54:24.107260 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/datastructures.py", line 409, in init [Sat Feb 10 14:54:24.107592 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] for key, value in mapping or (): [Sat Feb 10 14:54:24.107805 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 529, in [Sat Feb 10 14:54:24.107903 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] form = (p[1] for p in formstream if p[0] == 'form') [Sat Feb 10 14:54:24.108088 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 488, in parse_parts [Sat Feb 10 14:54:24.108314 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] for ellt, ell in self.parse_lines(file, boundary, content_length): [Sat Feb 10 14:54:24.108751 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 400, in parse_lines [Sat Feb 10 14:54:24.108907 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] terminator = self._find_terminator(iterator) [Sat Feb 10 14:54:24.109126 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 328, in _find_terminator [Sat Feb 10 14:54:24.109240 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] for line in iterator: [Sat Feb 10 14:54:24.109481 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1086, in make_line_iter [Sat Feb 10 14:54:24.109804 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] first_item = next(_iter, ) [Sat Feb 10 14:54:24.109985 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1045, in _make_chunk_iter [Sat Feb 10 14:54:24.110051 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] item = _read(buffer_size) [Sat Feb 10 14:54:24.110174 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1307, in read [Sat Feb 10 14:54:24.110240 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return self.on_disconnect() [Sat Feb 10 14:54:24.110391 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1275, in on_disconnect [Sat Feb 10 14:54:24.110457 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] raise ClientDisconnected() [Sat Feb 10 14:54:24.110817 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] werkzeug.exceptions.ClientDisconnected: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. [Sat Feb 10 14:54:24.111038 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] [Sat Feb 10 14:54:24.111104 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] During handling of the above exception, another exception occurred: [Sat Feb 10 14:54:24.111150 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] [Sat Feb 10 14:54:24.111266 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] Traceback (most recent call last): [Sat Feb 10 14:54:24.112589 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/app.py", line 342, in call [Sat Feb 10 14:54:24.112740 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return self.call_backend(environ, start_response) [Sat Feb 10 14:54:24.112899 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 766, in call [Sat Feb 10 14:54:24.112977 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return self.app(environ, start_response) [Sat Feb 10 14:54:24.113104 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/app.py", line 275, in call_backend [Sat Feb 10 14:54:24.113169 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] with self.gen_context(request) as request: [Sat Feb 10 14:54:24.113285 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/usr/lib/python3.5/contextlib.py", line 59, in enter [Sat Feb 10 14:54:24.113473 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return next(self.gen) [Sat Feb 10 14:54:24.113849 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/app.py", line 189, in gen_context [Sat Feb 10 14:54:24.113941 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] yield self._gen_context(self.db, ctx) [Sat Feb 10 14:54:24.114074 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/app.py", line 213, in _gen_context [Sat Feb 10 14:54:24.114141 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] ctx = self._request_only_gen_context(ctx) [Sat Feb 10 14:54:24.114306 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/app.py", line 225, in _request_only_gen_context [Sat Feb 10 14:54:24.114419 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] request.locale = translate.get_locale_from_request(request) [Sat Feb 10 14:54:24.114631 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/mediagoblin/tools/translate.py", line 97, in get_locale_from_request [Sat Feb 10 14:54:24.114711 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] request_args = (request.args, request.form)[request.method=='POST'] [Sat Feb 10 14:54:24.114831 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/utils.py", line 73, in get [Sat Feb 10 14:54:24.114890 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] value = self.func(obj) [Sat Feb 10 14:54:24.115003 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wrappers.py", line 537, in form [Sat Feb 10 14:54:24.115063 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] self._load_form_data() [Sat Feb 10 14:54:24.115174 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wrappers.py", line 385, in _load_form_data [Sat Feb 10 14:54:24.115234 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] mimetype, content_length, options) [Sat Feb 10 14:54:24.115520 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 205, in parse [Sat Feb 10 14:54:24.115600 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] content_length, options) [Sat Feb 10 14:54:24.115731 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/formparser.py", line 114, in wrapper [Sat Feb 10 14:54:24.115797 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] exhaust() [Sat Feb 10 14:54:24.115917 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1289, in exhaust [Sat Feb 10 14:54:24.115975 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] self.read(chunk) [Sat Feb 10 14:54:24.116082 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1307, in read [Sat Feb 10 14:54:24.116141 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] return self.on_disconnect() [Sat Feb 10 14:54:24.116247 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] File "/srv/mediagoblin/mediagoblin/lib/python3.5/site-packages/Werkzeug-0.14.1-py3.5.egg/werkzeug/wsgi.py", line 1275, in on_disconnect [Sat Feb 10 14:54:24.116309 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] raise ClientDisconnected() [Sat Feb 10 14:54:24.116745 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58802] werkzeug.exceptions.ClientDisconnected: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. [Sat Feb 10 14:56:07.836569 2018] [wsgi:error] [pid 24134] [remote XXX.XXX.X:58850] WARNING:mediagoblin.auth.tools:Wrong password for 'username'

Reply via email to