学习记录:(二)在AWS的EC2上搭建apache+bottle

昨天成功在aws上搭建了apache + django,然后又想再部署一个bottle,因为配置好了mod_wsgi,所以搭建多个python框架就容易多了,但是在虚拟主机配置上也折腾了一段时间。
首先在主配置文件(httpd.conf)里配置apache支持多虚拟站点。
第一步先激活主配置文件中的相关选项:

LoadModule vhost_alias_module modules/mod_vhost_alias.so
Include conf/extra/httpd-vhosts.conf 

因为打算根据端口来访问各个网站,所以删除掉Listen 80这句,然后把昨天配置的内容:

#保留
LoadFile "c:/program files/python/python36/python36.dll"
LoadModule wsgi_module "D:/Program Files/Python/Python36/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "D:/Program Files/Python/Python36"

#删掉这句
WSGIPythonPath H:/pythonspace

#剪切到虚拟站点配置文件(httpd-vhosts.conf)里并进行相应的修改
WSGIScriptAlias / C:/pythonspace/mysite/mysite/wsgi.py


Require all granted


接下来就是配置虚拟站点文件(httpd-vhosts.conf)了,配置好后是这样的:

Listen 8888

ServerName 访问地址:8888
DocumentRoot "H:/pythonspace/mybottle"
WSGIScriptAlias / H:/pythonspace/mybottle/app.wsgi



Require all granted


#这部分是配置静态文件访问
Alias /static/ H:/pythonspace/mybottle/static/

Require all granted


这样配置好后apache可以顺利启动了,但是!打开网址进行访问时会发现访问出错,查看apache错误日志:
ImportError: No module named ****.settings
网上搜索问题说是找不到项目的路径,要修改项目的wsgi文件,这里不理解,但是照着做,打开app.wsgi文件,添加:

import sys  
sys.path.append('H:/pythonspace/mybottle/')  

保存,重启apache,成功!
app.wsgi文件全部内容为:

import os
import sys

sys.path.append('H:/pythonspace/mybottle')
os.chdir(os.path.dirname(__file__))

import bottle
import hello  #这个就是网站的文件
application = bottle.default_app()

hello.py文件内容为:

from bottle import route

@route('/')   
def show():  
    return "hello world!"

同样的再在文件中添加新的端口指向昨天设置的django站点,这样就能通过端口来访问django或者bottle网站了。

Listen 8889

DocumentRoot "C:/web/mysite"
ServerName 访问地址:8889
WSGIScriptAlias / c:/web/mysite/mysite/wsgi.py



Require all granted



注意要在wsgi.py文件里添加上项目路径!

你可能感兴趣的:(学习记录:(二)在AWS的EC2上搭建apache+bottle)