01/10/2018, 01:04

E đang gặp về đề với CGI: The system cannot find the file specified. : couldn't spawn child process

tình hình là e đang cố cấu hình để chạy CGI trên IIS aptech2 trên win và cả trên linux nhưng đều bị báo lỗi


kiểm tra log thì nó báo ko tìm đc file chỉ định
[Tue Dec 20 00:04:01 2016] [error] [client 127.0.0.1] (OS 2)The system cannot find the file specified. : couldn’t spawn child process: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin/hello.py
các anh biết fix lỗi hoặc biết các cài đặt để CGI chạy trên win và linux hướng dẫn e với.
e cảm ơn nhiều.

Phan Hoàng viết 03:16 ngày 01/10/2018

Bạn config thế nào? Bạn thử copy alias command và cấu hình apache listen cái CGI này cho mình ngó qua xem nào?

Hướng dẫn thì ở đây nhé:
http://httpd.apache.org/docs/2.0/howto/cgi.html

Bạn có 2 việc:

  • Khai báo một command alias.
  • Add handler là lệnh alias đó và chạy các đuôi tương ứng. Nếu chưa bật alias, thì bạn dùng full đường dẫn là được (bỏ qua bước 1)

Theo như hình vẽ của bạn thì bạn copy file vào cgi-bin thì làm sao nó gọi được python execute cái script của bạn? ^^

Trân viết 03:19 ngày 01/10/2018

tiếng anh của e thì không đc pro lắm, e để cấu hình CGI mặc định hoặc là đã add thêm theo hướng dẫn nhưng vẫn lỗi, nếu đi théo đường dẫn http://10.0.0.71/cgi-bin/ thì báo lỗi "
Forbidden

You don’t have permission to access /cgi-bin/ on this server."
còn đi theo đường dẫn http://10.0.0.71/cgi-bin/index.cgi. thì báo lỗi nhưng hình topic

đây là file em httpd.conf e đã cấu hình.

nếu có thể anh cho e xin cái face, e nhờ anh cấu hình trực tiếp đc ko ạ. e cảm ơn.

Phan Hoàng viết 03:12 ngày 01/10/2018

Trời, cái này chỉ là ví dụ thôi, chứ cái alias của bạn /cgi-bin trỏ tới file parser python đâu mà nó hiểu được bạn (bạn trỏ vào cái /usr.local/apache2/cgi-bin/ là thư mục mà nhỉ. Cả cái thư mục phía dưới nữa, cũng chỉ là ví dụ, bạn phải thay bằng đường dẫn tới thư mục thật chứ.

Facebook mình là phantichhoang, nhưng ping mình tối thôi nhé, vì sáng nhiều khi mình bận khó teamviewer được.
Ví dụ về config fast-cgi chạy cho PHP

AddHandler php5.fcgi .php 
Action php5.fcgi /php5.fcgi 
Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi 
FastCgiExternalServer /php5.fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600 

Bạn tham khảo thêm cài đặt mod_wsgi (fastcgi) nhé:
https://www.electricmonk.nl/docs/apache_fastcgi_python/apache_fastcgi_python.html

Trân viết 03:17 ngày 01/10/2018

chắc lúc nào anh rảnh nhờ anh làm giúp, em thử nhiều cách lắm rồi mà nó báo

Forbidden

You don’t have permission to access /cgi-bin/ on this server.

dù e đang thử để full quyền 777 rồi

Phan Hoàng viết 03:11 ngày 01/10/2018

OK bạn. Vụ set permission 777 chỉ là cấp quyền của OS cho apache mà thôi. Mà cũng đừng nên set 777, lỗi security đó, cấp đủ quyền đọc là được rồi mà.

Bạn phải cấp quyền đọc, ghi của Apache cho directory nữa ^^

Nếu là 2.4:

<Location "/dir/">
    Require all granted //cho phép đọc từ bất cứ IP nào, hoặc bạn set dải IP của bạn
</Location>

Nếu là 2.2

<Location "/dir/">
   Order allow,deny //quyền allow cao hơn deny. Tức là nếu có 2 rule, 1 rule set deny, 1 rule set allow thì sẽ lấy allow
   Allow from all //cho phép từ bất cứ IP nào
</Location>

Mà bạn đã làm theo cái hướng dẫn cài mod_wsgi để chạy Django chưa?
https://www.electricmonk.nl/docs/apache_fastcgi_python/apache_fastcgi_python.html

Bài liên quan
0