Erreur lors de la redirection d'une entrée phpmyadmin Avec un port personnalisé ssl

Sur le serveur est en cours d'exécution Ubuntu 10.10, Apache 2.2.16, PHP 5.3.3-1ubuntu9.3, phpMyAdmin 3.3.7deb5build0.10.10.1. Puisque le même serveur fonctionne aussi Zimbra Sur le port 443, J'ai mis en place apache pour le service SSL Sur le port 81. Pour le moment, j'ai un scénario CMS, Opérant avec succès sur cet hôte virtuel.

Cependant, quand j'ai accès à / phpmyadmin (configuré avec un alias par défaut) Sur mon port SSL réglable et envoyez le formulaire de connexion, je suis redirigé vers
http://vhost.domain.com:81/index.php?TOKEN=foo
(faire attention à http: // au lieu https: //, qui a été utilisé pour se connecter). Cela génère une erreur 400 Bad Request Avec une plainte sur "Transmettre un protocole HTTP ordinaire à un port de serveur avec support SSL». Alors je peux changer manuellement http: // sur https: // Dans l'URL et l'utilisation phpmyadmin, comme prévu.

J'étais assez ennuyé pour passer une heure, essayant de le réparer, et maintenant, il est encore plus agacé par je ne peux pas comprendre cela. J'ai essayé différentes choses, y compris:

Une addition

$ cfg ['PmaAbsoluteUri'] = '
https://vhost.domain.com:81/phpmyadmin/
';

déposer. /usr/share/phpmyadmin/config.inc.php, Mais cela n'a pas éliminé le problème (même si /usr/share/phpmyadmin/libraries/auth/cookie.auth.lib.php Il semble qu'il faut le garder et l'utiliser comme redirection).

Une addition

$ cfg ['ForceSSL'] = 1;

outre config.inc.php, Mais alors apache se transforme en une redirection infinie.

Une addition

réécrire une règle

déposer. vhost-ssl conf dans apache, Mais je ne pouvais pas déterminer la condition que vous devez utiliser lorsque http: // Présent avec le port SSL droit: 81.

Beaucoup de

Google

.

Voici les parties pertinentes de la configuration Apache:

/etc/apache2/ports.conf

<ifmodule mod_ssl.c="">
NameVirtualHost *:81
Listen 81
</ifmodule>

/ etc. / apache2 / Sites avec inclus / vhost-nonssl

<virtualhost *:80="">
ServerAdmin webmaster@localhost
ServerName vhost.domain.com
DocumentRoot /home/xxx/sites/vhost/html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) [url=https://%]https://%[/url]{HTTP_HOST}:81%{REQUEST_URI}
</virtualhost>

/ etc. / apache2 / Sites avec support / vhost-ssl

<virtualhost *:81="">
ServerAdmin webmaster@localhost
ServerName vhost.domain.com
DocumentRoot /home/xxx/sites/vhost/html
<directory></directory>
Options FollowSymLinks
AllowOverride None

AuthType Basic
AuthName "Restricted Vhost"
AuthUserFile /home/xxx/sites/vhost/.users
Require valid-user

<directory home="" html="" sites="" vhost="" xxx=""></directory>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

</virtualhost>

/etc/apache2/conf.d/phpmyadmin.conf

Alias /phpmyadmin /usr/share/phpmyadmin

(Le reste du fichier. .conf La valeur par défaut est tronquée.)

Il semble que tout soit dans la configuration apache fonctionne bien - écraser avec non-SSL sur ssl, Authentification HTTP, le problème ne se produit que lorsque j'envoie le formulaire d'entrée pour phpmyadmin de
https://vhost.domain.com:81/index.php
.

Autres configs:

Configuration phpmyadmin Entièrement par défaut, et dans php.ini Seuls quelques changements mineurs dans la mémoire et les délais d'attente sont faits. Ils semblent fonctionner normalement, comme déjà mentionné, un autre script php travaille sans problèmes, et phpmyadmin Cela fonctionne très bien lorsque j'introduit manuellement le régime correct après la connexion au système.

Je cherche soit un bandage que je peux ajouter pour me sauver du besoin d'entrer manuellement https: // Après être connecté au système, la correction réelle qui fera phpmyadmin Pour se comporter comme je pense, ou une compréhension plus profonde de la raison pour laquelle la configuration souhaitée est impossible.
Invité:

Giselle

Confirmation de:

Ancienne version phpmyadmin, que j'ai nourri, l'a dans /phpmyadmin/config.inc.php

$cfg['PmaAbsoluteUri'] = 'http://127.0.0.1/phpmyadmin';

Vous pouvez essayer de changer

http

à

https

(et d'autres valeurs respectivement) Et voir si cette valeur a.

Pour répondre aux questions, connectez-vous ou registre