настройка apache + wsgi.py
подскажите, пожалуйста, как настроить связку apache + wsgi.py ? хотелось бы именно через apache, а не встроенным сервером (работает отлично).
запускается, но только главная страница. остальное не отображается (403 Forbidden), по ссылкам тоже не переходит.
искал решение самостоятельно, но не нашел или не понял как. не специалист в настройке, к сожалению. возможно, что решение на поверхности.
Ubuntu Linux 16.04.1
Питон 3
Остальное, как по мануала поставлено.
Из соседнего топика попробовал прописать другой static, но все равно пооучаю ошибку доступа:
"Forbidden
You don't have permission to access /opds/admin/ on this server"
Такое ощущение, что что-то со ссылками на каталоги.
настройка хоста:
WSGIPythonPath /opt/sopds-master/
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/домен/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/домен/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
#(opds begin
Alias /static/ /opt/sopds-master/static
<Directory /opt/sopds-master/static>
Require all granted
</Directory>
WSGIScriptAlias /opds/ /opt/sopds-master/sopds/wsgi.py
<Directory /opt/sopds-master/sopds/>
<Files wsgi.py>
Require all granted
</Files>
Options Indexes FollowSymLinks
</Directory>
#opds end)
</VirtualHost>
</IfModule>
Please Войти or Create an account to join the conversation.
- LAD75
-
Topic Author
- Offline
- Новый участник
-
- Posts: 5
Internal Server Error: /opds/download/15210/0/
Traceback (most recent call last):
File "/home/valera/.local/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/home/valera/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
response = self._get_response(request)
File "/home/valera/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/valera/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/sopds-master/opds_catalog/dl.py", line 20, in Download
bookshelf.objects.get_or_create(user=request.user, book=book)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/query.py", line 473, in get_or_create
return self.get(**lookup), False
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/query.py", line 376, in get
clone = self.filter(*args, **kwargs)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/query.py", line 796, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/query.py", line 814, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1227, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1253, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1158, in build_filter
self.check_related_objects(field, value, opts)
File "/home/valera/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1057, in check_related_objects
for v in value:
File "/home/valera/.local/lib/python3.5/site-packages/django/utils/functional.py", line 235, in inner
return func(self._wrapped, *args)
TypeError: 'AnonymousUser' object is not iterable
Please Войти or Create an account to join the conversation.
- LAD75
-
Topic Author
- Offline
- Новый участник
-
- Posts: 5
И по какой ссылке вы заходите на сервер? (пример: SITE.RU/opds )
У меня конструкция "Require all granted" не работает (хотя и апач 24)
а работает:
"Order deny,allow
Allow from al"l
Please Войти or Create an account to join the conversation.
- jdf
-
- Offline
- Новый участник
-
- Posts: 10
WSGIPassAuthorization On
Please Войти or Create an account to join the conversation.
- mitshel
-
- Offline
- Администратор
-
- Posts: 297
- Karma: 8