У меня есть веб-сайт TurboGears (v2.2.1 или v2.3.1), работающий по HTTP под Apache. Веб-сайт HTTP работает отлично, но я пытаюсь переместить его на HTTPS и нажимаю на стену. У меня есть два файла .conf и попытался скопировать блок конфигурации из текущей конфигурации HTTP в конфигурацию HTTPS.Перемещение развернутого сайта TurboGears с HTTP на HTTPS под Apache на Ubuntu 13.10
установкаАпач выглядит следующим образом:
/etc/apache2/sites-enabled/000-default.conf -> /etc/sites-available/000-default.conf
/etc/apache2/sites-enabled/default-ssl.conf -> /etc/sites-available/default-ssl.conf
Моя конфигурация с сайтом работает на HTTP является:
/etc/apache2/sites-available/000-default.conf:
WSGIPythonHome /usr/local/pythonenv/BASELINE
WSGIPythonPath /usr/local/pythonenv/myapp/lib/python2.7/site-packages
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName myhost.mydomain.com
DocumentRoot /var/www
<Directory />
...
</Directory>
<Directory /var/www/>
...
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
...
</Directory>
# Start website configuration
Alias /myapp/img /usr/local/turbogears/myapp/myapp/public/img
Alias /myapp/css /usr/local/turbogears/myapp/myapp/public/css
Alias /myapp/javascript /usr/local/turbogears/myapp/myapp/public/javascript
WSGIDaemonProcess myapp threads=10 processes=3
WSGIProcessGroup myapp
WSGIScriptAlias /myapp /usr/local/turbogears/myapp/apache/myapp.wsgi
# Directory Permissions.
<Directory /usr/local/turbogears/myapp/apache>
Order deny,allow
allow from ...
deny from all
</Directory>
# End website configuration
... #more entries for Trac and Doxygen websites
</VirtualHost>
/etc/apache2/sites-available/default-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
SSLEngine On
DocumentRoot /var/www/ssl
# THIS IS WHERE I TRY CUT/PASTING THE CONFIGURATION BLOCK FROM THE HTTP WEBSITE
<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
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
ports.conf:
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
SSLCertificateFile /admin/webcerts/mycert.cer
SSLCertificateKeyFile /admin/webcerts/myprivate.key
В apache2.conf:
...
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include ports.conf
Include sites-enabled/
Include /etc/phpmyadmin/apache.conf
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.5
PassengerDefaultRuby /usr/bin/ruby1.9.1
...
Чтобы развернуть сайт на HTTPS, я переместил блок конфигурации веб-сайта от 000- default.conf по умолчанию -ssl.conf и перезапустить apache, но я получаю ошибку 404:
Not Found
The requested URL /myapp was not found on this server.
Я попытался переместить глобальные директивы WSGIPythonHome и WSGIPythonPath в default-ssl.conf в случае, если сначала был прочитан файл (это не так, как я знаю), но это не помогло. Файлы журнала не содержат никакой полезной информации, которую я вижу.
У меня мало опыта Apache, но из других потоков SO, похоже, некоторые вещи, которые изменились с Ubuntu 13. Например, директива DocumentRoot в default-ssl.conf не работает для меня, что может быть важно. Добавление глобального значения DocumentRoot в /etc/apache2/apache2.conf работает, но проблема в том, что он глобальный.
404 страница на порт 443 перечислены эти как модули, которые Apache загружен:
Apache/2.4.6 (Ubuntu)
PHP/5.5.3-1ubuntu2
mod_python/3.3.1
Python/2.7.5+
OpenSSL/1.0.1e
mod_wsgi/3.4
Phusion_Passenger/4.0.5
Любая помощь будет оценена в то время как я до сих пор некоторые волосы осталось!