Einführung
CGI (Common Gateway Interface) ist eine Schnittstelle zwischen dem Webclient und dem Webserver, der Ihr CGI-Skript/Programm ausführt. CGI ist ziemlich alt und wurde weitgehend von verschiedenen Programmiersprachen wie PHP usw. abgelöst. Es kann jedoch immer noch seinen Platz in den Händen von Linux-Systemadministratoren als schnelles Tool zur Systemüberwachung und -verwaltung über einen Webbrowser finden. Dieser Artikel beschreibt Schritt für Schritt, wie grundlegende CGI-Skripte mit verschiedenen Programmiersprachen und Skripten unter Verwendung des Apache-Webservers unter Ubuntu Linux ausgeführt werden.
Apache installieren
Zuerst müssen wir den Apache-Webserver installieren. Dies ist eine ziemlich einfache Aufgabe und kann mit apt-get erreicht werden Befehl:
$ sudo apt-get install apache2
Der obige Befehl installiert den Apache 2-Webserver mit einer Standard-Site unter:/etc/apache2/sites-available/default. Wenn Sie diese Standardkonfigurationsseite öffnen, sehen Sie, dass sie so konfiguriert ist, dass sie CGI-Skripte von /usr/lib/cgi-bin ausführt Verzeichnis mit dem URL-Alias /cgi-bin/ :
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
Optional können Sie Ihre DNS-Einstellungen so ändern, dass sie auf die IP-Adresse Ihres neuen Webservers verweisen, oder einfach Ihre lokale /etc/hosts-Datei bearbeiten. Zum Beispiel:
10.1.1.61 cgi-example.local
Wobei 10.1.1.61 eine IP Ihres Webservers ist, auf dem Apache läuft, und cgi-example.local ein willkürlicher Domänenname ist.
CGI-Skript erstellen
CGI funktioniert mit mehreren Sprachen, aber jetzt beginnen wir mit der Bash-Shell. Wir werden später Beispiele für einige andere Sprachen zeigen. Hier ist eine einfache Version des CGI-Bash-Beispiels:
#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash Example'
Kopieren Sie den obigen Code und fügen Sie ihn in eine neue Datei in /usr/lib/cgi-bin/ namens example-bash.sh ein. Wenn Sie fertig sind, machen Sie die Datei mit chmod ausführbar Befehl:
$ sudo chmod 755 /usr/lib/cgi-bin/example-bash.sh
CGI-Skript anzeigen
Alles, was bleibt, ist, mit Ihrem Browser zum Hostnamen oder zur IP-Adresse Ihres Webservers zu navigieren. In unserem Fall lautet die URL:http://cgi-example.local/cgi-bin/example-bash.sh
Sie können dieses Beispiel bearbeiten, um eine Festplattennutzung der Root-Partition „/“ des Servers anzuzeigen. Sie sind nur durch Ihre Vorstellungskraft begrenzt:
#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash example<br>'
echo `df -h / | grep -v Filesystem`
Der obige Code sucht nach freiem Speicherplatz für eine Root-Partition und erzeugt die folgende Seite:
Weitere CGI-Beispiele
Wie versprochen, hier sind weitere CGI-Beispiele für ein paar weitere Programmiersprachen, um Ihnen den Einstieg zu erleichtern.
Perl
Erstellen Sie die folgende /usr/lib/cgi-bin/example-perl.pl mit folgendem Inhalt und machen Sie sie ausführbar:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print <<htmlcode;
<html>
<head>
<title>CGI Perl Example</title>
</head>
<body>
<h1>CGI Perl Example</h1>
<p>CGI Perl Example</p>
</body>
htmlcode
Python
Erstellen Sie die folgende /usr/lib/cgi-bin/example-python.py mit folgendem Inhalt und machen Sie sie ausführbar:
<html>
<head>
<title>CGI Python Example</title>
</head>
<body>
<h1>CGI Python Example</h1>
<p>CGI Python Example</p>
</body></html>
"""
C
Damit C und C++ funktionieren, muss ein Compiler installiert sein. Installieren Sie zuerst den Compiler mit:
$ sudo apt-get install build-essential
Erstellen Sie nach der Installation eine Datei example-c.c mit dem folgenden Code:
#include <stdio.h>
int main(void)
{
printf("Content-Type: text/plain \n\n");
printf("CGI C Example \n");
}
Speichern Sie den Inhalt der Datei example-c.c und kompilieren Sie sie mit dem folgenden Linux-Befehl:
$ sudo gcc -o /usr/lib/cgi-bin/example-c example-c.c
Jetzt sollten Sie auf Ihr C-kompiliertes CGI-Skript zugreifen können mit:http://cgi-example.local/cgi-bin/example-c
C++
Damit C und C++ funktionieren, muss ein Compiler installiert sein. Installieren Sie zuerst den Compiler mit:
$ sudo apt-get install build-essential
Erstellen Sie nach der Installation eine Datei example-cpp.c mit folgendem Code:
#include <iostream>
using namespace std;
int main()
{
cout << "content-type: text/html" << endl << endl;
cout << "<h1>CGI C++ example</h1>" << endl;
return 0;
}
Speichern Sie den Inhalt der Datei example-cpp.c und kompilieren Sie sie mit dem folgenden Linux-Befehl:
$ sudo g++ -o /usr/lib/cgi-bin/example-cpp example-cpp.c
Jetzt sollten Sie auf Ihr C-kompiliertes CGI-Skript zugreifen können mit:http://cgi-example.local/cgi-bin/example-cpp
Schlussfolgerung
Wie bereits erwähnt, ist CGI ziemlich alt und wurde weitgehend durch verschiedene Programmiersprachen wie PHP usw. ersetzt. Wie Sie jedoch sehen können, ist es immer noch ein relativ einfaches Tool, mit dem Sie Ihre Linux-Verwaltungsaufgaben wie eine benutzerdefinierte Fernüberwachung automatisieren können Ihre Linux-Server mit einem Webbrowser.