国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在DreamHost的空間上安裝web.py

2024-07-21 02:30:26
字體:
來源:轉載
供稿:網友

最近在這個博客,我開始用這樣帶"/"的標題,原因是方便搜索.因為網上關于python的資料實在是少的可憐.能多做點貢獻就多做點貢獻吧,大家一起努力

話說前端時間藍色理想的一個朋友給了我一份dreamhost的空間,于是我的python就有用武之地了.結果...折騰了快一個星期,才把這個python搞定,現在大家看這個網址: http://181920.net  就是用web.py輸出的結果.
讓我們從頭開始,在dreamhost的空間上裝個web.py

前期準備

工欲善其事,必先利其器.要在dreamhost上裝個web.py得準備下列工具:

  • 運行shell命令和服務器端交互的軟件:這個我是用putty
  • 上傳文件用的ftp軟件:這個我用cuteftp
  • python腳本編輯軟件:這個我用idle

如何能操縱服務端

這個可以想象一下遠程連接是怎么回事.一般dreamhost的用戶會有一個帳號用來遠程登陸到服務端,然后就可以進行一些操作.下載需要的文件,安裝文件,配置apache服務器,配置mysql服務器等等等等.如果你要問你配置了你的,會不會影響到別人.我想應該是不會影響的.

關于putty

putty是dreamhost推薦使用的工具.用來輸入命令和服務端交互.稍微小白些的解釋,就是你通過putty和服務端連接,然后輸入一些命令行,可以操作服務端的文件什么的.類似于在本機用cmd打開的命令行提示符那樣的操作.
看這里的介紹: http://wiki.dreamhost.com/putty
可以在這里下載: http://www.chiark.greenend.org.uk/~sgtatham/putty/
安裝后打開putty,會讓你輸入服務器地址,這個地址是用戶名@主機名,選擇ssh登陸,完成后打開,會提示你輸入密碼.注意這個時候你開始在鍵盤敲你的密碼,但是在putty的界面上并不會顯示什么,直到你輸入完密碼,按回車.如果密碼正確,就會出來一個歡迎界面,否則putty就會提示密碼錯誤,要求再次輸入.還有一種情況是密碼正確了,但是putty自動關閉了.這是因為你的賬戶還沒有使用shell的權限,需要到用戶面板開通一下.
然后就是開始輸入命令了,一些常用的命令,比如dir顯示當前目錄,cd進入到某個目錄,mkdir新建文件夾,wget遠程下載,tar解壓縮...
基本明白了吧.
還有,如果要在里面粘貼文本,只要點擊一下右鍵就可以.

關于ftp和關于idle

省略了.

開始安裝web.py
基本上就是打開這個頁面 http://wiki.dreamhost.com/web.py 照著一步一步的來.
我在這里來個難點解說.

應該在哪個目錄下?
是在你的web主目錄下

我不用python2.4怎么辦?
改成#!/usr/bin/env python2.3 就可以.

怎么修改web.py's web/wsgi.py?
這個其實挺費了一番功夫,一開始沒看明白那些加加減減是什么意思,后來明白過來,就是打開wsgi.py這個文件,把runfcgi()里面的兩句替換一下.
import flup.server.fcgi as flups
return flups.wsgiserver(func, multiplexed=true, bindaddress=addr).run()
替換成
import fcgi as flups
return flups.wsgiserver(func, multiplexed=false, bindaddress=addr).run()
要注意不要有多余的空格.

怎么使用vim命令修改.htaccess?
首先是敲入vim .htaccess
然后復制那一段,貼上去.然后檢查下對不對.我復制粘貼的時候經常會把一開始options的字母"o"給弄丟了,仔細檢查下.沒問題后,摁鍵盤上的esc鍵,這個時候就進入命令模式,在輸入":x",這是保存退出的意思.這就可以了.
如果不放心,可以在使用vim .htaccess命令,這個時候一般會提示文件已經存在,讓你選擇打開的模式,用只讀模式看下有沒有問題吧.
大家可以看看這個文章,我覺得挺好的: http://man.lupaworld.com/content/manage/ringkee/vim.htm

關于fcgi和web.py

在dreamhost的web.py是這么運行的:
web請求->apache->fcgi->web.py->.cgi程序頁.
我不知道對不對,暫且這么理解吧.
但是如果你是和我一樣,在用windows,那就會覺得有這樣的問題:在本地如何編寫程序,然后傳到服務端看效果.因為我覺得是在本地在裝apache和fcgi會是非常麻煩的事情,不如直接雙擊.py文件就自動啟動一個web server簡單啊.
后來我發現其實是可以實現的.我們來對比下web.py的程序和web.py+fcgi的程序,不同的就是最后如何解析文件:
web.py:
if __name__=='__main__':
    web.run(urls,globals())

web.py+fcgi:
def runfcgi_apache(func):
    web.wsgi.runfcgi(func, none)
if __name__ == "__main__":
   web.wsgi.runwsgi = runfcgi_apache
   web.run(urls, globals())

所以,我們只管在本地寫我們的程序,最后上傳到服務端的時候,就把最后的webrun部分改一下就可以.

稍微麻煩了些,但是比較簡單快速的辦法

其他

另外,我現在還是運行python2.3,我已經裝了python2.5,但是還不清楚該怎么調用.需要再研究下.

暫時記得起來的問題就這么多,以后有需要了再補充.

|||

我們為您準備了這個文檔來幫助您快速的使用 web.py

你可以在windows平臺使用 putty , unix 則需要使用 ssh.
你的用戶需要有使用 shell 的權限,這個可以在用戶控制面板中進行設置
在評論頁可以看到更多的信息

目錄

1.架設 web.py
1.1 cgi
    1.1.1 0. 開始
    1.1.2 1. 安裝 web.py
    1.1.3 2. 安裝 flup
    1.1.4 3. 使用 apache 服務
    1.1.5 4. 檢查并發現錯誤
1.2 fcgi
     1.2.1 benchmarking
     1.2.2 重啟 fastcgi
     1.2.3 改進穩定性和加快啟動速度

架設 web.py

cgi
如果您按照我們的步驟來,那么架設cgi將是一件十分容易的事情.在下面的示例代碼中,將example.com替換成您自己映射在dreamhost的域名.

0. 開始

進入到您的web主目錄:
cd ~/example.com

1.安裝web.py

使用 subversion 命令行代碼工具來獲取最新的web.py

svn co http://webpy.org/svn/trunk/web/

按照如下方式來建立一個index.cgi,這將是您的第一個web.py網頁

#!/usr/bin/env python2.4
import web
urls = ('/', 'index')
class index:
   def get(self):
       print "hi web.py, finally we meet!"
def runfcgi_apache(func):
    web.wsgi.runfcgi(func, none)
if __name__ == "__main__":
   web.wsgi.runwsgi = runfcgi_apache
   web.run(urls, globals())

將該文件上傳到web主目錄后,使用如下的命令來使該文件可訪問

chmod +x index.cgi

2.安裝flup

使用wget命令來獲取最新的fcgi

wget http://svn.saddi.com/py-lib/trunk/fcgi.py

按照如下提示修改web/wsgi.py

--- wsgi.py     (revision 130)
+++ wsgi.py     (working copy)
@@ -13,8 +13,8 @@
   
def runfcgi(func, addr=('localhost', 8000)):
     """runs a wsgi function as a fastcgi server."""
-    import flup.server.fcgi as flups
-    return flups.wsgiserver(func, multiplexed=true, bindaddress=addr).run()
+    import fcgi as flups
+    return flups.wsgiserver(func, multiplexed=false, bindaddress=addr).run()

(譯者注:使用++的內容替換掉--的內容)

|||

3.使用apache的服務

編輯apache的.htaccess文件來啟用cgi

vim .htaccess

添加如下代碼

options +execcgi
addhandler cgi-script .py
<ifmodule mod_rewrite.c>
rewriteengine on
rewritebase /
rewritecond %{request_filename} !-f
rewriterule ^(.*)$ /index.cgi/$1  [l]
</ifmodule>

4.檢查并發現錯誤

現在,你的web主目錄應該是這個樣子

$ ls -f ~/example.com
fcgi.py  index.cgi*  web/

使用你的瀏覽器訪問http://example.com/(您自己映射在dreamhost的域名),應該就可以看到問候語.如果瀏覽器顯示"500內部錯誤",那就應該檢查下錯誤日志.

tail -n 30 ~/logs/example.com/http/error.log
(譯者注:上面的內容足夠成功運行web.py了,下面的內容我也還沒有進行,所以僅供參考)

fcgi

  1. 使用fastcgi架設您的域名或二級域名.假設您的域名是todo.dabase.com
  2. cd; rmdir ~/todo.dabase.com
  3. svn co http://svn.natalian.org/projects/todo/
  4. ln -s ~/todo ~/todo.dabase.com
  5. tweak ~/todo with your mysql db (see config.py) and email stuff for errors

并不建議您在shell下進行fcgi的測試開發,因為如果fastcgi的進程開始運行后,停止或重啟這個進程都是一件讓人頭痛的事情.您可以使用web.reloader在本地進行開發,這樣,您的任何改變將立即被反應到您的web程序.

benchmarking

ab is from the apache2-utils debian package.
從apache2-utils debian包中找到ab組件

/usr/sbin/ab -c 4 -n 300 http://todo.dabase.com/

4 concurrent connections pushing out 300 requests. if you find it too slow, considering running lighttpd on a dedicated server.
4個并發連接將產生300個請求.如果你發現它運行太慢,請考慮在一臺專用服務器上運行lighttpd.

重啟fastcgi進程

為了使新的代碼起作用,你需要重啟fcgi進程.
如下代碼將會起作用:

killall python2.4

改進穩定性和加快啟動速度

  1. 使用http://svn.saddi.com/py-lib/trunk/fcgi.py來代替較新的flup
  2. 按照如下方法修改wsgi.py :
    --- wsgi.py     (revision 130)
    +++ wsgi.py     (working copy)
    @@ -13,8 +13,8 @@
       
    def runfcgi(func, addr=('localhost', 8000)):
         """runs a wsgi function as a fastcgi server."""
    -    import flup.server.fcgi as flups
    -    return flups.wsgiserver(func, multiplexed=true, bindaddress=addr).run()
    +    import fcgi as flups
    +    return flups.wsgiserver(func, multiplexed=false, bindaddress=addr).run()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 象山县| 安泽县| 临沂市| 阿拉善盟| 湘西| 武冈市| 哈巴河县| 镇巴县| 鲜城| 札达县| 瓦房店市| 寻乌县| 唐山市| 吉林市| 汝州市| 兴城市| 扎囊县| 兴文县| 卫辉市| 兴化市| 门源| 吕梁市| 烟台市| 江口县| 辉南县| 大埔县| 玉林市| 班戈县| 繁峙县| 丽水市| 洛阳市| 如东县| 准格尔旗| 梨树县| 子洲县| 桃江县| 久治县| 临泉县| 丰县| 论坛| 安新县|