.htaccess 在共享主机服务器上使用Flask时出现问题

yrefmtwq  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(116)

我尝试在BlueHost共享主机服务器上部署Flask应用程序。我一直遵循this guide。我做了一个更改,那就是在.fcgi文件中。我没有使用flup。这是我的.fcgi文件(flask.fcgi):

#!/path/to/venv/bin/python
from wsgiref.handlers import CGIHandler
from server import app

CGIHandler().run(app)

我已经将该文件设置为可执行文件,当我从命令行(通过SSH)运行./flask.fcgi时,它将返回索引路由的HTML页面,这正是我所期望的。但是,如果我导航到mydomain.com/flask.fcgi,我将收到一个500 Internal Server错误。检查服务器日志,我可以看到以下消息:

/path/to/venv/bin/python: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

我以前在安装openssl时遇到过这个错误,并通过设置LD_LIBRARY_PATH环境变量以包含库安装位置的路径来纠正它。这是我的.htaccess文件:

# For Flask
PassEnv LD_LIBRARY_PATH
PassEnv REQUEST_METHOD
Options +ExecCGI
AddHandler fcgid-script .fcgi

RewriteEngine On

# For Flask
RewriteCond %{REQUEST_FILENAME} !=/path/to/public_html/flask.fcgi
RewriteRule ^(.*)$ flask.fcgi/$1 [QSA,L]

RewriteOptions inherit

您可以看到,我尝试传入LD_LIBRARY_PATH变量,但没有效果,我继续收到500个内部服务器错误,无论我是导航到mydomain.com/page还是直接导航到mydomain.com/flask.fcgi
我完全不知道从这里去哪里,任何帮助将不胜感激。

tjjdgumg

tjjdgumg1#

所以我发现了问题所在。在编译opensslpython之前,我需要设置LD_LIBRARY_PATHLD_RUN_PATH。我设置了路径,然后运行./Configuremake && make install来编译openssl,同样的方法编译python

相关问题