Làm cách nào để chạy tập lệnh CGI perl của tôi mà không cần apache? Điều này là dành cho mục đích thử nghiệm, vì vậy một số loại máy chủ xử lý đơn chỉ xử lý một yêu cầu đúng lúc là đủ cho tôi.Làm cách nào để chạy tập lệnh CGI perl của tôi mà không cần apache?
Trả lời
Script shoud được chạy với tư cách người dùng cụ thể và hiện tại tôi không muốn thiết lập
suexec
khi thử nghiệmapache
.
Không có gì ngăn cản bạn sao chép cấu hình Apache cần thiết, ngoại trừ cho người sử dụng, theo đó httpd
sẽ được chạy, giao diện/cổng để ràng buộc vào và có thể là cgi-bin
thư mục và chạy một bản sao riêng của httpd
(với tùy chọn -f
). Đó sẽ là cách an toàn nhất để kiểm tra ứng dụng trong môi trường mà nó được cho là chạy.
Xem Starting Apache:
người ta có thể xác định vị trí của nó tại thời gian chạy bằng cách sử dụng tùy chọn
-f
dòng lệnh như trong/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf
Plack::App::WrapCGI hoặc Plack::App::CGIBin đại diện cho một trong những cách để làm điều này (cùng với plackup
và máy chủ HTTP Plack đơn luồng mặc định) nhưng nó không chạy CGI trong bối cảnh họ thực sự mong muốn được chạy trong (một quá trình độc lập) vì vậy nó không hoàn toàn đẹp (cùng một điều kiện áp dụng như sử dụng modperl registry, nhiều hay ít). Tôi không nhận thức được một máy chủ web tinh khiết perl mà thực sự dĩa và chạy CGI như CGI (cũng không phải là một perl không CGI và yêu cầu không cấu hình, mặc dù lighttpd đến gần).
Lý do tại sao "bạn đang sử dụng CGI.pm" là một câu hỏi có liên quan là bởi vì nếu bạn chưa bắt đầu ứng dụng mà bạn có thể muốn xem xét viết chống lại khá nhiều bất cứ điều gì khác, ví dụ
(theo thứ tự ngẫu nhiên để che giấu sự thiên vị rõ ràng của tôi) một nd có khả năng dễ dàng chạy cùng một ứng dụng như một máy chủ HTTP độc lập, FastCGI, ứng dụng mod_perl, hoặc CGI đơn giản nếu push đến xô, và không có trở kháng không khớp mà bạn nhận được khi ghi vào giao diện CGI.pm
Ok, có lẽ tôi sẽ thử Web :: Đơn giản cho kịch bản đó (nó khá đơn giản, vì vậy tôi không nghĩ rằng khung công cụ cụ thể sẽ giúp tôi nhiều). Dù sao, tôi đã tìm thấy giải pháp đơn giản cho vấn đề ban đầu - "python -m CGIHTTPServer 8080" sẽ phục vụ các tập lệnh trong thư mục con 'cgi-bin' như CGI. –
bạn đã đề cập trong các ý kiến rằng bạn đang sử dụng CGI.pm, lưu ý rằng CGI.pm cung cấp một loạt các tùy chọn để chạy các script CGI từ dòng lệnh. Xem http://perldoc.perl.org/CGI.html#DEBUGGING. Ngay cả khi không có CGI.pm, bạn luôn có thể giả mạo các biến môi trường cần thiết và đường ống trong tệp của bạn. Về cơ bản tất cả các bạn cần làm để chạy một CGI từ dòng lệnh là để thiết lập
QUERY_STRING = blah=x&fu=bar
cho các phương pháp GET, hoặc
CONTENT_LENGTH = length of your file
cho các phương pháp POST.
Trừ khi, bạn biết, bạn muốn sử dụng trình duyệt web ... – hobbs
Gút đầu ra thành một tệp và mở tệp bằng trình duyệt web. –
Bạn cũng cần đặt 'REQUEST_METHOD' (= GET/POST), ít nhất CGI.pm của tôi không hiểu yêu cầu mà không có nó. – Dallaylaen
Có được cho mình một máy ảo và làm bất cứ điều gì bạn như với nó, bao gồm cả chạy apache. Sao chép nhiều như thiết lập mục tiêu của bạn nhất có thể.
- 1. Làm cách nào để tránh zombie trong các tập lệnh Perl CGI chạy dưới Apache 1.3?
- 2. chạy tập lệnh python như máy chủ cgi apache
- 3. Làm cách nào để chạy tập lệnh Perl từ bên trong tập lệnh Perl?
- 4. Làm cách nào để biết tập lệnh Perl của tôi có đang chạy trong Windows không?
- 5. Làm cách nào để phân phối nội dung không bị chặn của CGI từ Apache 2?
- 6. Làm cách nào để chạy tập lệnh Perl bằng ActivePerl?
- 7. Tôi làm cách nào để gỡ lỗi tập lệnh Perl?
- 8. Chạy tập lệnh perl trên windows mà không cần mở rộng
- 9. Tôi làm cách nào để chạy tập lệnh 'R' mà không làm giảm đầu ra?
- 10. Làm cách nào để tôi có thể đóng gói tập lệnh Perl của mình để chạy trên máy mà không có Perl?
- 11. Làm cách nào để có được đường dẫn của tập lệnh Python mà tôi đang chạy?
- 12. Sử dụng cả ARGV và CGI trong tập lệnh Perl
- 13. Trong Perl, làm cách nào tôi có thể tắt CGI :: Cá chép được tải trong tập lệnh được yêu cầu?
- 14. Làm cách nào để chạy các tập lệnh Perl bằng FastCGI trên Nginx?
- 15. Làm cách nào để chạy tập lệnh Python trên máy chủ web của tôi?
- 16. Làm cách nào để sao chép văn bản từ xterm của tôi mà không cần chuột?
- 17. Tôi cần gì để chạy tập lệnh node.js trên máy chủ của mình?
- 18. Làm cách nào để lấy thư mục của tập lệnh PowerShell mà tôi thực thi?
- 19. Làm cách nào để tránh tập lệnh R của tôi được in mỗi khi tôi chạy?
- 20. Làm thế nào để chạy makecert.exe mà không cần GUI?
- 21. Có thể chạy tập lệnh Selenium mà không cần chạy máy chủ X không?
- 22. Làm cách nào để lên lịch các tác vụ một lần từ ứng dụng Perl CGI?
- 23. Khi chạy pdb của Python dưới dạng tập lệnh, làm cách nào để tự động khởi chạy tập lệnh?
- 24. Làm cách nào để truy cập vào Tiêu đề HTTP của yêu cầu trong tập lệnh CGI?
- 25. Làm cách nào để chạy tập lệnh Perl trên Mac OS X?
- 26. Làm cách nào để chạy tập lệnh shell bằng Spotlight?
- 27. Làm cách nào tôi có thể biết liệu một tập lệnh Perl có đang thực thi trong ngữ cảnh CGI không?
- 28. Tôi làm cách nào để gọi một tập lệnh Perl từ PHP?
- 29. Tại sao tập lệnh Perl của tôi thoát với 137?
- 30. Làm cách nào để sửa đổi tập lệnh perl của tôi để sử dụng nhiều bộ xử lý?
Bạn có sử dụng CGI.pm không? –
Tại sao bạn không muốn sử dụng Apache? Nó có vẻ kỳ lạ để không kiểm tra trong một môi trường tương tự như môi trường sản xuất dự định. –
Kịch bản shoud được chạy như người dùng cụ thể và hiện tại tôi không muốn thiết lập suexec về thử nghiệm apache. –