我按照以下步骤从亚马逊 ec2 实例 (Amazon Linux 2 AMI t2.micro) 获取了烧瓶应用程序
通过ssh登录ec2实例,运行以下命令:
01 sudo su
02 yum install python3-devel httpd-devel httpd gcc git
03 pip3 install mod_wsgi
04 mod_wsgi-express start-server
上述命令无效,但重启实例后有效
05 mod_wsgi-express module-config >> /etc/httpd/conf/httpd.conf
这又没用;即使我使用 sudo 运行,也会不断收到拒绝权限错误;所以我通过管道传输到一个临时文件,并将临时文件的内容复制到/etc/httpd/conf/httpd.conf
临时文件的内容应如下所示
LoadModule wsgi_module "/usr/local/lib64/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so"
WSGIPythonHome "/usr"
重启http服务并确保一切正常
06 systemctl restart httpd
现在用于设置烧瓶应用程序
07 pip3 install flask
08 car /var/www
09 git clone https://github.com/nshathish/flask-lab2.git
10 cd flask-lab2
11 nano flask-lab2.wsgi
在上述文件中输入以下内容
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, "/var/www/flask-lab2")
from app import app as application
12 sudo nano /etc/httpd/conf.d/flask-lab2.conf
现在将以下内容复制到上述文件中
<VirtualHost *:80>
ServerName flask-lab2.myserver.com
ServerAdmin root@nshathish.com1
WSGIScriptAlias / /var/www/flask-lab2/flask-lab2.wsgi
WSGIDaemonProcess flask-lab2
<Directory /var/www/flask-lab2>
WSGIProcessGroup flask-lab2
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/httpd/error.log
LogLevel warn
CustomLog /var/log/httpd/access.log combined
</VirtualHost>
最终检查
13 curl http://localhost
如果您为上述命令获得了Hello World,则一切正常
如果有人能解释为什么我不能运行第 5 步,那将非常有用;也非常欢迎对上述步骤进行任何改进