使用apache进行发布¶
该发布自己的应用了!
要实现真正的“云”,就要把自己的应用发布到因特网上!
正值小白打算建立自己的个人网站,就买了一个VPS
以下介绍在独立主机上debian系统配置的服务器上跑bottle
配置¶
小白打算把自己的应用保存在/var/www/myapp
于是,把整个mala.web拷贝到以上目录。然后把main.py改名为app.wsgi
在程序一开始添加:
#-*- coding:utf-8 -*-
import os,bottle,sys
os.chdir(os.path.dirname(__file__))
# 改变工作目录,以便在相对路径(和模板查找)中继续工作
sys.path.append(os.path.dirname(__file__))
不加这一段好像会让TextDB模块(也就是没安装的模块)无法使用的。
然后把bottle.run函数去掉,添加:
application = bottle.default_app()
配置apache¶
小白的apache是安装在etc/apache2/里。
于是设置/etc/apache2/httpd.conf里的内容:
<VirtualHost *>
ServerName example.com
#自己的域名,没有的话以localhost发布
WSGIDaemonProcess myapp user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias / /var/www/myapp/app.wsgi
<Directory /var/www/myapp>
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
哈哈,发布!
sudo /etc/init.d/apache2 restart
但是……
安装wsgi¶
小白尝试一下,出现错误:
小白研究了好久,甚至就要跳槽到使用nginx去的时候……突然发现配置文件中,没有导入mod_wsgi的语句!
于是,再修改,在开头加上一句:
LoadModule wsgi_module modules/mod_wsgi.so
再次尝试发布,仍然没有结果,那么就是mod_wsgi没有爱装,于是安装之:
sudo apt-get install libapache2-mod-wsgi
安装完毕之后,发布,哈哈,看到结果了。
权限问题¶
执行添加操作以后,显示没有权限:
怎么搞的? 改权限!
代码里面怎么搞都不对阿……
看来是权限问题
把data.tdb的所有者改为www-data
再把data.tdb的权限改为755.
OK啦!
小结¶
小白终于可以通过浏览器在异地看到自己的网站了!发布成功!