RWPy4learner 11.3.30 documentation

Version: 11.3.30
[首页] HTML与CSS << 使用apache进行发布 (Source) >>推荐阅读

使用apache进行发布

该发布自己的应用了!

要实现真正的“云”,就要把自己的应用发布到因特网上!

正值小白打算建立自己的个人网站,就买了一个VPS

以下介绍在独立主机上debian系统配置的服务器上跑bottle

apache

但是,如何使用服务器呢?

一般情况下,linux服务器都安装了apache,可以通过apache来发布网站

配置

小白打算把自己的应用保存在/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

小白尝试一下,出现错误:

../_images/TryApache.png

小白研究了好久,甚至就要跳槽到使用nginx去的时候……突然发现配置文件中,没有导入mod_wsgi的语句!

于是,再修改,在开头加上一句:

LoadModule wsgi_module modules/mod_wsgi.so

再次尝试发布,仍然没有结果,那么就是mod_wsgi没有爱装,于是安装之:

sudo apt-get install libapache2-mod-wsgi

安装完毕之后,发布,哈哈,看到结果了。

../_images/apache_site.png

权限问题

执行添加操作以后,显示没有权限:

../_images/apache_error.png

怎么搞的? 改权限!

代码里面怎么搞都不对阿……

看来是权限问题

把data.tdb的所有者改为www-data

../_images/www_data.png

再把data.tdb的权限改为755.

OK啦!

小结

小白终于可以通过浏览器在异地看到自己的网站了!发布成功!