Normales Thema CGI auf Webserver ausführbar machen (Gelesen: 76 mal)
Jopii
Forum Administrator
*****
Offline


I love YaBB 2.6.12!

Beiträge: 167
Standort: Land Of Confusion
Mitglied seit: 01.04.2024
Geschlecht: männlich
CGI auf Webserver ausführbar machen
29.01.2026 um 21:12:50
Beitrag drucken  
CGI auf Webserver ausführbar machen

Heute, am 22.07.2021, habe ich es endlich geschafft, im Browser ein cgi-Script aufzurufen.

Geholfen hat mir diese Webseite:

https://www.server-world.info/en/note?os=Debian_10&p=httpd&f=2

Ich bin mir nicht sicher, ob ich alles richtig verstanden habe. Eigentlich kenne ich das so, dass es auf dem Webserver (/var/www/html) einen Ordner /cgi-bin gibt.

Die Webseite arbeitet aber mit dem Ordner /cgi-enabled.

Alle meine Versuche hier auf dem Desktop-Rechner als auch auf dem Notebook haben ergeben, dass ich diesen Ordner /cgi-enabled nutzen muss. Der Ordner /cgi-bin funktioniert nicht.

Auch kann ich nicht meinen normalen User zur Anlage von Ordner und z.B. index.cgi nutzen. Die Ordner als auch die Dateien werden mit dem root erstellt und dann über chmod 705 entsprechen berechtigt.

Nur das funktioniert.

Wenn ich den Ordner /cgi-bin so in die Abläufe einbaue, wird später im Browser gezeigt, dass die URL nicht vorhanden ist.

Mit dem Ordner /cgi-enabled wird die Testseite angezeigt:



Ich werde noch weitersuchen und mal prüfen, ob ich das anders hätte hinbekommen können.

---

Das ist die Historie der BASH, aus der ich die wichtigen Befehlszeilen herausfiltern werde, um eine Dokumentation zu schreiben:

Spoiler:

>  480  cat > /usr/lib/cgi-bin/test_script <<'EOF' 
 481  #!/usr/bin/perl 
 482  print "Content-type: text/html\n\n"; 
 483  print "Hello CGI\n"; 
 484  EOF 
 485  ls -l 
 486  chmod 705 /usr/lib/cgi-bin/test_script 
 487  curl https://localhost/cgi-bin/test_script 
 488  a2enmod cgid 
 489  sudo a2enmod cgid 
 490  systemctl restart apache2 
 491  curl https://localhost/cgi-bin/test_script 
 492  nano vi /etc/apache2/conf-available/cgi-enabled.conf 
 493  nano /etc/apache2/conf-available/cgi-enabled.conf 
 494  sudo a2enconf cgi-bin 
 495  sudo a2enconf cgi-enabled 
 496  systemctl restart apache2 
 497  exit 
 498  cd .. 
 499  mkdir /media/django/webserver/cgi-enabled 
 500  a2enconf cgi-enabled 
 501  sudo a2enconf cgi-enabled 
 502  sudo a2disconf cgi-enabled 
 503  systemctl restart apache2 
 504  sudo a2enconf cgi-enabled 
 505  systemctl restart apache2 
 506  nano /media/django/webserver/cgi-enabled/index.cgi 
 507  chmod 705 /media/django/webserver/cgi-enabled/index.cgi 
 508  ls -l 
 509  cd cgi-enabled/ 
 510  ls -l 
 511  sudo a2disconf cgi-enabled 
 512  systemctl restart apache2 
 513  cd .. 
 514  mkdir cgi-bin 
 515  sudo a2enconf cgi-bin 
 516  systemctl restart apache2 
 517  cd cgi-bin/ 
 518  nano index.cgi 
 519  ls -l 
 520  chmod 705 index.cgi 
 521  ls -l 
 522  sudo a2enconf cgi-bin 
 523  systemctl restart apache2 
 524  sudo a2disconf cgi-bin 
 525  systemctl restart apache2 
 526  sudo a2enconf cgi-bin 
 527  systemctl restart apache2 
 528  sudo a2disconf cgi-bin 
 529  systemctl restart apache2 
 530  cd .. 
 531  ls -l 
 532  mkdir cgi-enabled 
 533  ls -l 
 534  sudo a2enconf cgi-enabled 
 535  systemctl restart apache2 
 536  cd cgi-enabled/ 
 537  nano index.cgi 
 538  chmod 705 index.cgi 
 539  ls -l 
 540  cp index.cgi index.pl 
 541  nano index.pl 
 542  cp index.pl index.py 
 543  nano index.py 
 544  ls  -l 
 545  sudo a2disconf cgi-enabled 
 546  systemctl restart apache2 
 547  sudo a2enconf cgi-enabled 
 548  systemctl restart apache2


Das eine ist nämlich die Verfügbarkeit von CGI auf dem System, das andere ist die Möglichkeit, um CGI auch auf dem Webserver ausführen zu können. Das sind zwei verschiedene Dinge.

In der Datei cgi-enabled.conf habe ich neben cgi und pl nun auch py eingetragen, um auch Pythonscripte im Browser möglich zu machen. Das funktioniert auch:



Damit CGI überhaupt machbar ist, ist dieser Ablauf wohl wichtig:



Warum und wieso das alles root-Rechten geschehen muss, habe ich noch nicht verstanden.

Die Sache mit dem Webserver kann dann aus dem folgenden Screener abgelesen werden:



So hat es auf dem Desktop-Rechner und auf dem Linux-Notebook funktioniert. Zumindest in Sachen CGI und Perl.
  

The Administrator - Cheffe von Ganzes
Zum Seitenanfang
IP gespeichert