第一天:python学习准备

不想学python,只是想用python做网站。。。- -!

用的是ubuntu 11.04,本来想用windows的。。无奈自己太差劲。。连mysqldb都装不起来。。。

 

凭印象安装 :apt-get install apache2 mysql-server mysql-client mysql-common

不知道这个apache是什么版本的 – -!

配置文件被分开了。。。httpd.conf是空的,让我们自己恶搞。。*_*

默认:配置文件在:/etc/apache2/,网页在:/var/www, cgi在/usr/lib/cgi-bin【在sites-enabled里面的配置文件看到这个目录】

配置cgi。。网上都说在httpd.conf中加入【/var/cgi-bin是我自己想放cgi的目录】:

ScriptAlias /cgi-bin/ "/var/cgi-bin/"

<Directory /var/cgi-bin>
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
</Directory>

 

然后发现都不行。。。。

后来才发现/etc/sites-enabled/000-default文件。。。里面可以看到cgi的配置信息了。。忘记改了什么东西了。。最后就是。。

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                AddHandler cgi-script .cgi .py
                Allow from all
        </Directory>

意外收获是

ErrorLog ${APACHE_LOG_DIR}/error.log

原来,错误日志文件在这里啊。然后又不知道那个环境变量是多少。。哎,入门好难。。用locate error.log命令找吧。。速度好快。。。ubuntu用什么存这些文件信息的呢??hash??

日志文件在/var/log/apache2/error.log

然后,写个代码放到cgi目录中试试运行时候发现错。。。

#!/usr/bin/env python

import cgitb
cgitb.enable()

print "Content-Type: text/html"
print

print "Hello World!"

几番折腾。。发现没权限。。于是chmod 755 hello.py 或者 chmod +x hello.py

然后发现访问这个cgi变成下载了。。

额。。。原来代码中Content写成Context了。。。- -!

在折腾中偶然看到别人说用mod_python好。。。*—*

这是什么东西呢??不懂。。。但是听说mod_wsgi更好。。。

于是继续安装mod_wsgi

下载好mod_wsgi,然后看下README,原来是这么安装的啊。。>_<

进入目录./configure 提示 apxs:command not found,要安装apache的dev包

make的时候提示缺少python.h,readme里面说明,要安装python-dev。。ubuntu还是很方便的,缺什么,apt-get一下就是了。。

安装完之后mod_wsgi.so文件已经到apache2的modules目录了:/usr/lib/apache2/modules

在httpd.conf中加入

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIScriptAlias /test "/usr/lib/cgi-bin/test.wsgi"

然后编辑文件/usr/lib/cgi-bin/test.wsgi”,代码如下:

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

。。。。。这里是时间分割线。。。。。。。。

又纠结了好久。。果然对mod_wsgi还不是很理解。。。。。这种跳来跳去的学习方式果然很恶心。。。

等待某一天这些知识可以连贯起来。。。

 

参考资料【很多忘记记下来,所以就没有了】:

http://www.wsgi.org/wsgi/Learn_WSGI

mod_wsgi的配置:http://healich.iteye.com/blog/727620

http://lucumr.pocoo.org/2007/5/21/getting-started-with-wsgi/

 

转载请注明: 转载自http://jyd.me/

本文链接地址: 第一天:python学习准备

Tagged on: , , , , ,

2 thoughts on “第一天:python学习准备

发表评论

电子邮件地址不会被公开。 必填项已用*标注