после этого guide, у меня есть Mailman 3 с Apache и mod_wsgi на сервере Debian.Перенаправление: mod_wsgi и django
.conf-файл моего виртуального хоста:
ErrorLog /var/log/mailman-web/mailman-web.log
CustomLog /var/log/mailman-web/mailman-web_access.log combined
WSGISocketPrefix run/wsgi
<VirtualHost *:80>
ServerName XXXXXXX
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Here, use the value of the STATIC_ROOT variable in your Django configuration file (production.py)
Alias /robots.txt /usr/local/mailman/mailman-bundler/var/mailman-web/static/hyperkitty/robots.txt
Alias /favicon.ico /usr/local/mailman/mailman-bundler/var/mailman-web/static/hyperkitty/favicon.ico
Alias /static /usr/local/mailman/mailman-bundler/var/mailman-web/static
<Directory "/usr/local/mailman/mailman-bundler/var/mailman-web/static">
Order deny,allow
Allow from all
Require all granted
</Directory>
WSGIScriptAlias//usr/local/mailman/mailman-bundler/bin/mailman-web.wsgi
WSGIDaemonProcess mailman-web display-name=mailman-web maximum-requests=1000 processes=1 threads=1 python-path=/usr/local/mailman/venv/lib/python2.7/site-packages
<Directory "/usr/local/mailman/mailman-bundler/bin">
<Files mailman-web.wsgi>
Order deny,allow
Allow from all
Require all granted
</Files>
WSGIProcessGroup mailman-web
</Directory>
</VirtualHost>
Проблема у меня с этой установкой, когда я иду в http://myhost/
сценарии WSGI перенаправляет мой браузер http://myhost/archives
. Я бы хотел, чтобы http://myhost/
был перенаправлен на http://myhost/mailman3
, а не http://myhost/archives
.
Попытка выяснить, где mailman решает возвратить подкаталог архивов, я заглянул в скрипт wsgi, определенный в файле apache .conf, но не так много происходит, а затем импортирует некоторые классы и вызывает другой скрипт. . После этого сценария я приземлилась в файле '/ яйца/Джанго-1.10.4-py2.7.egg/Джанго/ядро / обработчики/wsgi.py`, в частности, эта часть:
148 class WSGIHandler(base.BaseHandler):
149 request_class = WSGIRequest
150
151 def __init__(self, *args, **kwargs):
152 super(WSGIHandler, self).__init__(*args, **kwargs)
153 self.load_middleware()
154
155 def __call__(self, environ, start_response):
156 set_script_prefix(get_script_name(environ))
157 signals.request_started.send(sender=self.__class__, environ=environ)
158 try:
159 request = self.request_class(environ)
160 except UnicodeDecodeError:
161 logger.warning(
162 'Bad Request (UnicodeDecodeError)',
163 exc_info=sys.exc_info(),
164 extra={
165 'status_code': 400,
166 }
167 )
168 response = http.HttpResponseBadRequest()
169 else:
170 response = self.get_response(request)
171
172 response._handler_class = self.__class__
173
174 status = '%d %s' % (response.status_code, response.reason_phrase)
175 response_headers = [(str(k), str(v)) for k, v in response.items()]
176 for c in response.cookies.values():
177 response_headers.append((str('Set-Cookie'), str(c.output(header=''))))
178 start_response(force_str(status), response_headers)
179 if getattr(response, 'file_to_stream', None) is not None and environ.get('wsgi.file_wrapper'):
180 response = environ['wsgi.file_wrapper'](response.file_to_stream)
181 return response
Я думаю, что решение возвращенного подкаталога происходит где-то здесь, но я могу ошибаться, не уверен.
То, что я пытался до сих пор: В апач конф файл я добавил строку Redirect permanent/http://myhost/mailman3
, но это сделало апач идти в переназначения петлю, заканчивающийся в URL, как http://myhost/mailman3mailman3mailman3....
Я надеюсь, что кто-то может помочь мне с этой проблемой ,
Заранее благодарен!
Спасибо, это сработало! –
Удостоверьтесь, что вы задокументируете свои изменения, поэтому любой, кто должен поддерживать вашу установку, знает об этом, и, возможно, потребуется время, чтобы изучить «лучшие способы» (что означает чтение документации Django о том, как конкретно использовать модуль настроек для использования и т. Д.), Поскольку это будет упростите вашу настройку. –