Le support Python 2 de Mercurial est susceptible de chuter dans un avenir pas trop lointain, donc lorsque j'ai migré vers Python 3.8 lors de sa construction, il a cessé de fonctionner avec brio.
L'index.cgi d'origine ressemble à ceci, et si je réécris ce python en python3, 500: Erreur de serveur interne.
#!/home/xxxx/local/bin/python
from mercurial import hgweb
from cgitb import enable
enable()
hgweb.hgweb("/home/xxxx/hg", "xxxx-hg").run()
En regardant le journal des erreurs Apache, Nom de l'en-tête de réponse '<! -' Contient des caractères non valides, demande d'abandon
. Il semble que cgitb fait quelque chose de mal, donc si vous le supprimez, une trace de pile sera sortie dans le journal des erreurs Apache. Le message d'erreur de Mercurial ne prend en charge que les chaînes codées
devient hmm, et hgweb.hgweb (" / home / xxxx / hg ".encode ('utf-8')," xxxx-hg " Réécrivez dans ".encode ('utf-8')). Run ()
et vérifiez l'opération.
Si vous y réfléchissez, vous n'avez pas besoin d'encoder, et le code source final est réglé ci-dessous.
#!/home/xxxx/local/bin/python3
from mercurial.hgweb import hgweb
hgweb(b"/home/xxxx/hg", b"xxxx-hg").run()
Connexes: Version erronée de Python 3 sur le serveur de location de Sakura (Remarque)
Recommended Posts