2012-03-12 53 views
5

Có Apache 2 + mod_wsgi + Python 2.6 trên máy chủ.Chạy các tập lệnh Python như PHP

Tôi muốn chạy tập lệnh từ Python như tập lệnh PHP. Ý tưởng có vẻ ngớ ngẩn, nhưng tôi rất quen thuộc (ít nhất là lúc đầu học Python).

Ví dụ:

PHP - http://example.com/script.php

Python - http://example.com/script.py

T.B. Tôi biết về mod_rewrite và các thủ thuật tương tự khác có thể làm điều đó. Nhưng nó chỉ là một ngụy trang, và không phải là một hoạt động trực tiếp.

UPD: Tệp .htaccess của tôi. index.py hoạt động, nhưng các kịch bản python khác gặp lỗi 404.

<Files *.py> 
SetHandler wsgi-script 
Options ExecCGI FollowSymLinks 
</Files> 
DirectoryIndex index.py 

Trả lời

1

Điều đó không giống như mát mẻ như có một ứng dụng wsgi chạy, vì vậy tôi khuyên bạn nên sử dụng flask framework đó là đơn giản như có thể là một khuôn khổ lành mạnh.

Đây là liên kết mô tả install procedure on mod_wsgi.

Sau đó, bạn có thể muốn xem xét một khuôn khổ mát mẻ như Django, Pyramid, grok ...

Nếu bạn thực sự muốn sử dụng mod_wsgi thích mod_php kiểm tra câu trả lời tuyệt vời Graham Dumpleton của.

+0

Tôi đã viết ở đâu đó về mod_python? Tôi biết rằng anh ta đã lỗi thời ... WSGI chỉ có một điểm để chạy một kịch bản? – Ticksy

+0

Tôi đoán tôi đã đọc sai bài viết. Tôi không nghĩ rằng bạn có thể sử dụng WSGI để thực hiện một cấu hình [mod_python/php-like] (http://webpython.codepoint.net/mod_python_publisher_uri_traversal). Tôi đang thêm một liên kết có liên quan vào câu trả lời của tôi. – jpic

+1

Hoàn toàn sai khi nói 'Nó mong đợi kết nối với một tiến trình WSGI đang chạy thông qua một ổ cắm.'. Nó không hoạt động theo cách bạn nghĩ. –

2

Về mặt kỹ thuật những gì bạn đang làm nên làm việc, nhưng thấy phương pháp AddHandler để cấu hình mod_wsgi trong:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

Bằng cách đó bạn không cần phải fiddle với chỉ thị Files.

SetHandler thực hiện điều tương tự nhưng tất cả các tệp trong ngữ cảnh được coi là tệp tập lệnh WSGI ngay cả khi chúng có thể là tệp HTML hoặc PHP tĩnh. Bạn đã đi với nó bởi vì đủ điều kiện với tập tin, nhưng tốt hơn để chỉ sử dụng AddHandler.

Lưu ý rằng tải lại mã sẽ không hoạt động như bạn đã quen với PHP. Xem:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

+0

Chỉ hoạt động với index.py. Các tệp * .py khác hiển thị lỗi 404. – Ticksy

+0

Cách thức với WSGIScriptAlias ​​tôi không thích. – Ticksy

+0

WSGIScriptAlias ​​là cách thực tế mọi người sử dụng vì định mức là mọi người sử dụng một khuôn khổ của một số mô tả. Nó là rất khuyến khích rằng bạn viết các công cụ WSGI từ đầu vì nó là quá dễ dàng để làm cho nó sai. Nếu nó không hoạt động đối với các URL .py khác thì có khả năng có điều gì khác đang diễn ra trong phần còn lại của cấu hình Apache của bạn đang ảnh hưởng đến nó vì nó có thể thực hiện được. –

Các vấn đề liên quan