Вход | Регистрация

Python3.0 и lighttpd

  • Някой успявал ли е да подкара lighttpd с fastcgi за python3.0? Аз от известно време се опитвам, но засега без успех...

    03.06.2009
  • Препоръчвам ти Simple CGI (SCGI).

    04.06.2009
  • Аз не бих го слушал...

    05.06.2009
  • (Sorry за късния отговор, но тази седмица нямах време да гледам форума)

    Някой успявал ли е да подкара lighttpd с fastcgi за python3.0? Аз от известно време се опитвам, но засега без успех...

    Абе хора научете се как се задава въпрос, когато нещо гърми:

    Няколко реда какво се опитваш да направиш - може lighttpd да не е добро решение...
    Какъв е проблема..
    
    OS -v
    python3.0 -v # installed how/where
    lighttpd -v # installed how/where
    cat /etc/lighttpd/lighttpd.conf # може не целия
    ls -la /tmp/py.fcgi
    cat /tmp/py.fcgi
    
    cat /var/log/lighttpd/error.log
    
    # какви tutorial-и си ползвал (основно)

    Както и да е - аз съм подкарвал fastcgi за python3, не бях под lighttpd, но сега и под него пробвах и си бачка.

    OS

    Ubuntu 8.04 32bit

    lighttpd

    1.4.19-0ubuntu3.1 

    python

    Python 3.0.1 (r301:69556, Mar  3 2009, 22:39:11) 
    [GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
    builded from tar.gz with root /home/rattus/programs/python3.0/
    
    with flup from http://hg.saddi.com/flup-py3.0/ (sorry don't remember revision)

    lighttpd.conf:

    ...
    
    server.modules              = ( 
                "mod_access",
                "mod_alias",
                "mod_accesslog",
                "mod_compress",
                "mod_fastcgi",
    )
    ...
    url.rewrite-once = ("^(/.*)$" => "/py3_test.fcgi$1")
    fastcgi.server = ("/py3_test.fcgi" =>
        ("main" =>
            (
             "max-procs" => 1,
             "socket" => "/tmp/py3_test.sock",
             "bin-path" => "/tmp/py3_test.py",
             "check-local" => "disable"
             )
        ),
    )
    
    fastcgi.debug = 1

    cat /tmp/py3_test.py

    #!/home/rattus/programs/python3.0/bin/python3.0
    
    import sys, os
    from cgi import escape
    from flup.server.fcgi import WSGIServer
    
    def app(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])
    
        yield 'TEST'
    
    if __name__=='__main__':
        WSGIServer(app).run()
    ls -la /tmp/py3_test.py 
    -rwxr-xr-x 1 rattus rattus 303 2009-06-06 19:01 /tmp/py3_test.py

    Друг е въпроса защо точно искаш lighttpd - apache, nginx, cherokee

    Мен ме дразни, че публикуват подвеждаща реклама на site-a си (от изброените сайтове (YouTube, wikipedia and meebo), които "използват" lighttpd само за meebo е вярно).

    06.06.2009 (променeно 06.06.2009)
  • Всъщност го ползват, но само за статично съдържание, или поне така е било 2006: http://blog.lighttpd.net/...op-250-sites

    07.06.2009
  • Всъщност го ползват, но само за статично съдържание, или поне така е било 2006

    Ами да напишат в минало време, то действително имаше време когато youtube го ползваха, но после почна да не им върши работа...

    Иначе в момента:

    rattus@rattus-laptop:/tmp$ wget -S http://en.wikipedia.org/favicon.ico
    --14:39:52--  http://en.wikipedia.org/favicon.ico
               => `favicon.ico'
    Resolving en.wikipedia.org... 91.198.174.2
    Connecting to en.wikipedia.org|91.198.174.2|:80... connected.
    HTTP request sent, awaiting response... 
      HTTP/1.0 200 OK
      Date: Sun, 07 Jun 2009 11:37:58 GMT
      Server: Apache
      Last-Modified: Fri, 21 Apr 2006 01:04:14 GMT
      ETag: "13e-411e677a07f80"
      Accept-Ranges: bytes
      Content-Length: 318
      Content-Type: image/x-icon
      X-Cache: MISS from sq25.wikimedia.org
      X-Cache-Lookup: HIT from sq25.wikimedia.org:3128
      X-Cache: MISS from knsq26.knams.wikimedia.org
      X-Cache-Lookup: HIT from knsq26.knams.wikimedia.org:3128
      X-Cache: HIT from knsq29.knams.wikimedia.org
      X-Cache-Lookup: HIT from knsq29.knams.wikimedia.org:80
      Via: 1.1 sq25.wikimedia.org:3128 (squid/2.7.STABLE6), 1.0 knsq26.knams.wikimedia.org:3128 (squid/2.7.STABLE6), 1.0 knsq29.knams.wikimedia.org:80 (squid/2.7.STABLE6)
      Connection: keep-alive
    Length: 318 [image/x-icon]
    
    100%[=================================================================================================================>] 318           --.--K/s             
    
    14:39:52 (51.69 MB/s) - `favicon.ico' saved [318/318]
    
    
    
    
    rattus@rattus-laptop:/tmp$ wget -S http://youtube.com/favicon.ico
    --14:40:05--  http://youtube.com/favicon.ico
               => `favicon.ico.1'
    Resolving youtube.com... 208.117.236.69, 208.65.153.238
    Connecting to youtube.com|208.117.236.69|:80... 
    rattus@rattus-laptop:/tmp$ wget -S http://www.youtube.com/favicon.ico
    --14:40:16--  http://www.youtube.com/favicon.ico
               => `favicon.ico.1'
    Resolving www.youtube.com... 72.14.221.101, 72.14.221.102, 72.14.221.113, ...
    Connecting to www.youtube.com|72.14.221.101|:80... connected.
    HTTP request sent, awaiting response... 
      HTTP/1.0 200 OK
      Age: 2879
      Date: Sun, 07 Jun 2009 10:57:47 GMT
      Connection: Keep-Alive
      Via: NS-CACHE
      ETag: "13e-4660c45b56880"
      Server: Apache
      Last-Modified: Thu, 26 Mar 2009 21:26:42 GMT
      Accept-Ranges: bytes
      Content-Length: 318
      Content-Type: image/x-icon
    Length: 318 [image/x-icon]
    
    100%[=================================================================================================================>] 318           --.--K/s             
    
    14:40:16 (17.44 MB/s) - `favicon.ico.1' saved [318/318]
    07.06.2009
  • OS: Gentoo, x86_64

    В момента ползвам lighttpd с PHP. Преди бях с Apache, но ми бавеше компютъра и един приятел ми предложи да мина на lighttpd. Предполагам е ненужно да обяснявам защо не искам да ползвам PHP.

    lighttpd: 1.4.20

    Имам Python инсталиран от sources:

    Python 3.0 (r30:67503, Mar 16 2009, 19:26:09) 
    [GCC 4.1.2 (Gentoo 4.1.2 p1.3)] on linux2

    Пробвах това, което Точо ми писа. Засега не мога да накарам flup да проработи с Python 3.

    Инсталационният скрипт на flup не тръгва с Python 3. С други версии работи, но инсталира flup за съответната версия. Рових се по инсталационните аргументи. Пробвах това:

    # python2.6 setup.py easy_install --install-dir /usr/local/lib64/python3.0/
    running easy_install
    Checking .pth file support in /usr/local/lib64/python3.0/
    /usr/bin/python2.6 -E -c pass
    TEST FAILED: /usr/local/lib64/python3.0/ does NOT support .pth files
    error: bad install directory or PYTHONPATH
    
    You are attempting to install a package to a directory that is not
    on PYTHONPATH and which Python does not read ".pth" files from.  The
    installation directory you specified (via --install-dir, --prefix, or
    the distutils default setting) was:
    
        /usr/local/lib64/python3.0/
    
    and your PYTHONPATH environment variable currently contains:
    
        ''

    Не мога да разбера как да оправя проблема с тези pth файлове.

    08.06.2009 (променeно 08.06.2009)
  • Защо го намесваш python2.6 - той няма нищо общо, него не можеш да го използваш за инсталация на python3 неща...

    В общия случай ти трябва pythonX.X setup.py install (със съответните права)

    Но flup setup-a още не е port-нат за python3.0 (защо не знам)...

    Пробвай:

    hg clone http://hg.saddi.com/flup-py3.0/ # (сега тествах и теста върви)
    cp -r flup-py3.0/flup /usr/local/lib64/python3.0/site-packages/
    
    # test "from flup.server.fcgi import WSGIServer"

    lib/pythonX.X/site-packages/ е мястото, където pythonX.X си държи инсталираните пакети (за новите версии на python има и per user http://www.python.org/...ps/pep-0370/ )

    Де факто нещата, които са в тази директория можеш да си ги import-ваш без допълнителни hack-ове.

    Сега това, което трябва да се отбележи при такъв тип "install" (cp-то) е че не създава .pyc файлове, но след като провериш че бачка можеш да си ги направиш...

    P.S. от любопитство - за какво ти е това, в смисъл с цел да подкараш cgi скриптове или някой framework просто ей така, или ще мериш бързодействие?

    08.06.2009 (променeно 09.06.2009)
  • Направих го. Благодаря!

    Писна ми от PHP и искам да пробвам как Python се справя с такива задачи. Бързодействието не ми е основна цел, но би трябвало така да е по-добре от PHP. Иначе дали ще ползвам готов framework - още не съм решил.

    12.06.2009
  • Писна ми от PHP и искам да пробвам как Python се справя с такива задачи. Бързодействието не ми е основна цел, но би трябвало така да е по-добре от PHP. Иначе дали ще ползвам готов framework - още не съм решил.

    Ако ще го ползваш без framework като отделни cgi-ки, в които просто принтиш няма да те накефи... Поне ползвай някой template engine ( http://wiki.python.org/moin/Templating ).

    Предполагам вече си хвърлил око на http://wiki.python.org/...ebFrameworks .

    Препоръчвам ти да пробваш Django / Pylons / web2py , django е най-лесен...

    За съжаление stable-ите са им за python < 3.0 :( - портването не е лесно. Като цяло ако го искаш за работа (web) сега, а не за fun - python2 .

    P.S. от template engine-ите - Mako

    12.06.2009 (променeно 12.06.2009)
  • Jinja-та също не е лоша. А за фреймуорк http://glashammer.org/ също ми се стори интересен.

    12.06.2009 (променeно 12.06.2009)